簡體   English   中英

如何直接調用JAXB XMLAdapter

[英]How to invoke JAXB XMLAdapter directly

當我試圖直接解組根對象而不是另一個對象中的字段時,我違反了jaxb的XMLAdapters的限制,因此繞過了@XmlJavaTypeAdapter

我寧願不包裝我的對象,因為這將改變將在我們的數據庫中序列化的xml。 聽起來有可能直接調用XMLAdapter,在其他地方通過這些答案:

[1] http://www.coderanch.com/t/505457/XML/jaxb-xmladapter-rootElement [2] http://markmail.org/message/etvbyzn3e3idpa7q#query:+page:1+mid:cetzvq37nifr6tk6+ state:results [3] JaxB繼承編組抽象類

但我不明白你會怎么做:(

我猜想它會是這樣的

AdaptedFoo adaptedFoo = (new MyAdapter()).unmarshall(fooXml)

但這不是XMLAdapter unmarshal方法的接口。 在我的情況下,xml需要轉換為AdaptedFoo對象才能被解組。

eg.  public BackgroundJob unmarshal(AdaptedFoo adaptedFoo)

我是否需要一個額外的解組步驟來將myXml轉換為AdaptedFoo對象,然后調用我的XMLAdapter將其轉換為預期的子類? 還是有更優雅的方式?

什么是推薦的過程?

對於根對象,您需要執行以下操作:

XmlAdapter<AdaptedFoo, Foo> xmlAdapter = new FooAdapter();
AdaptedFoo adaptedFoo = (AdaptedFoo) unmarshaller.unmarshal(xml);
Foo foo = xmlAdapter.unmarshal(adaptedFoo);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM