编组时包括CDATA包装器

时间:2011-07-09 17:57:41

标签: java xml xsd xml-serialization xmlbeans

我正在使用XMLBeans生成xml。 有没有办法自动包含CDATA Wrapper输出xml文档中的必需元素。 例如,我的输出xml应如下所示:

<employee>
<name><![CDATA[NAME]]></name>
<address><![CDATA[ADDRESS]]></address>
</employee>

1)我们能否以这样的方式编写XSD,每当我使用XMLBeans为我的程序中的<name>元素设置值时,输出xml应该包含如下名称元素:<name><![CDATA[NAME]]></name>而不是{ {1}}

2)XMLBeans中是否有办法为特定元素生成CDATA Wrapper。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

this thread。简而言之:

node.setFoo("ABCDE12345"); 
XmlCursor c = node.xgetFoo().newCursor(); 
c.toFirstContentToken(); 
c.setBookmark(CDataBookmark.CDATA_BOOKMARK);

然后当您去“保存”文档时,请务必传入XmlOptions,如:

XmlOptions opts = new XmlOptions().setUseCDataBookmarks(); 
node.xmlText(opts);

答案 1 :(得分:1)

只是阅读文档 - 我不是XMLBeans用户。如果有经验的人写得不一样 - 相信他们,而不是我。

请参阅CDataBookmarkXmlOptions。setCDATAEntityCountThreshold,setUseCDataBookmarks,setSaveCDataLengthThreshold。

有关如何在文本中设置CDataBookmark的文档不清楚。请参阅this bit from Nabble