我正在连接到具有以下格式的服务定义的web服务
<main>
<header>
<data>xyz</data>
</header>
<test>
<![CDATA[<xml><a></a><b></b></xml>]]>
</test>
</main>
如何使用jaxb为cdata结构创建类文件
答案 0 :(得分:1)
首先使用xml-schema格式(XSD)定义模式,然后运行xjc编译器(xsd java编译器)以生成类。生成类后,可以使用@WebService批注创建Web服务。几个月前我在我的博客上发布了一些示例:http://plindenbaum.blogspot.com/2006/12/java-16-mustang-jaxb-and.html和http://plindenbaum.blogspot.com/2008/11/web-service-for-onsolubility.html。
希望有所帮助
答案 1 :(得分:0)
JAXB将无法解析CDATA声明中包含的任何内容:XML解析器将始终报告字符串。
如果要解析此问题,则需要执行以下操作:
在原始模式上运行JAXB,它将“test”的内容指定为字符串或“any”(它必须,否则它不能包含CDATA声明!)
在辅助模式上运行JAXB,该模式定义“test”元素的内容。
在运行时,您需要使用JAXB解析XML文档,然后导航到“test”元素并使用JAXB再次解析该元素 。不会有另一种方式。
希望这有帮助。