[英]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.