簡體   English   中英

如何將JAXB對象封送到XOM?

[英]How do I marshal a JAXB object to XOM?

我正在試圖弄清楚我需要將哪些位插在一起以將JAXB POJO封送到XOM文檔,反之亦然。

JAXB Marshaller接口的marshal方法采用各種目標,例如Result ,但它們都沒有XOM適配器。 XOMResult是,XOM API確實有一個XOMResult實現,但是它受到包保護,並且只在內部使用。

有沒有其他方法可以在不使用String或字節緩沖區的情況下編組到XOM或從XOM編組?

我不確定你是否對使用DOM來實現這一目標不利,因為你可能正在使用XOM來避免使用DOM! 無論如何,使用這里描述的JAXB Binder和XOM的DOMConverter ,您可以從JAXB到DOM再到XOM而不使用String或字節緩沖區。

由於JAXB還支持對該對象的實例進行編組,因此XOM沒有實用程序從SAX ContentHandler創建XOM文檔太糟糕了。 XOM有一個SAXConverter可以從Document創建ContentHandler,但不是相反。

這是一個與XOM興趣郵件列表相關的線程。

我發現舊項目nux

http://acs.lbl.gov/software/nux//api/nux/xom/pool/XOMUtil.html

jaxbMarshal / jaxbUnmarshal使用DOMConverter ;-(

http://acs.lbl.gov/software/nux/api/nux/xom/io/StaxUtil.html ...還包括一個使用StAX解析器而不是SAX解析器的XOM Builder實現; 加上從底層XOM文檔或片段讀取的XMLStreamReader實現; 加上其他工具。

StaxUtil.createXMLStreamReader(Node root)構造並返回從底層XOM節點讀取的StAX XMLStreamReader拉解析器實現; 通常是文檔或片段(子樹); 非常適合將XOM樹高效轉換為SOAP / AXIOM,JAXB 2,JiBX或XMLBeans,例如,通過Unmarshaller逐步轉換XQuery結果時,可能與StreamingPathFilter結合使用。

可能這可以幫忙嗎?

JAXB元帥套裝<object><div id="text_translate"><p>我有一個類似於此的 object:</p><pre class="lang-java prettyprint-override"> public class Obj { @XmlElement(name="value") public Set&lt;Object&gt; values; }</pre><p> 編組時,這會生成 xml ,如:</p><pre class="lang-xml prettyprint-override"> &lt;Obj&gt; &lt;value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;2009-02-14T00:31:30.001+01:00&lt;/value&gt; &lt;value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;test&lt;/value&gt; &lt;/Obj&gt;</pre><p> 但是,我想更改其中一些值(例如用於序列化Date和Timestamp對象的日期格式),並擺脫煩人的xsi屬性(但這並不是真正的要求,我可以接受)</p><p> 我嘗試將@XmlJavaTypeAdapter添加到values ,但在適配器中我得到了完整的Set&lt;Object&gt;來適應,而不是單個元素。 我也嘗試過使用 package 適配器,但是,由於我的Set是用於Object ,所以我不能放置@XmlJavaTypeAdapter(type)屬性。</p><p> 另外,我嘗試使用@XmlJavaTypeAdapter(value=MyAdapter.class, type=Timestamp.class)來獲取我想要的 Object 中的值的適配器。</p><p> 所以問題是,有人知道讓適配器為此工作的方法嗎? 或者,每次序列化Date或Timestamp object 時更改日期格式?</p><p> 提前致謝!</p></div></object>

[英]JAXB marshal Set<Object>

暫無
暫無

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

相關問題 JAXB-如何封送沒有標題的Java對象 JAXB元帥套裝<object><div id="text_translate"><p>我有一個類似於此的 object:</p><pre class="lang-java prettyprint-override"> public class Obj { @XmlElement(name="value") public Set&lt;Object&gt; values; }</pre><p> 編組時,這會生成 xml ,如:</p><pre class="lang-xml prettyprint-override"> &lt;Obj&gt; &lt;value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;2009-02-14T00:31:30.001+01:00&lt;/value&gt; &lt;value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;test&lt;/value&gt; &lt;/Obj&gt;</pre><p> 但是,我想更改其中一些值(例如用於序列化Date和Timestamp對象的日期格式),並擺脫煩人的xsi屬性(但這並不是真正的要求,我可以接受)</p><p> 我嘗試將@XmlJavaTypeAdapter添加到values ,但在適配器中我得到了完整的Set&lt;Object&gt;來適應,而不是單個元素。 我也嘗試過使用 package 適配器,但是,由於我的Set是用於Object ,所以我不能放置@XmlJavaTypeAdapter(type)屬性。</p><p> 另外,我嘗試使用@XmlJavaTypeAdapter(value=MyAdapter.class, type=Timestamp.class)來獲取我想要的 Object 中的值的適配器。</p><p> 所以問題是,有人知道讓適配器為此工作的方法嗎? 或者,每次序列化Date或Timestamp object 時更改日期格式?</p><p> 提前致謝!</p></div></object> JAXB:當返回類型是接口時,如何使用字段名進行編組? 使用JAXB編寫對象的迭代器 如何將JAXB對象封送到org.w3c.dom.Document? 如何在沒有任何相關信息的情況下通過JAXB封送對象? 如何克隆JAXB對象 如何在JAXB中封送具有不同值的多組對象? JAXB:我應該如何編組復雜的嵌套數據結構? 使用JAXB的元組對象的標簽名稱不正確
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM