【发布时间】:2009-06-05 15:29:05
【问题描述】:
我正在连接到具有以下格式的服务定义的网络服务
<main>
<header>
<data>xyz</data>
</header>
<test>
<![CDATA[<xml><a></a><b></b></xml>]]>
</test>
</main>
如何使用 jaxb 为 cdata 结构创建类文件
【问题讨论】:
我正在连接到具有以下格式的服务定义的网络服务
<main>
<header>
<data>xyz</data>
</header>
<test>
<![CDATA[<xml><a></a><b></b></xml>]]>
</test>
</main>
如何使用 jaxb 为 cdata 结构创建类文件
【问题讨论】:
首先使用 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。
希望对你有帮助
【讨论】:
JAXB 将无法解析包含在 CDATA 声明中的任何内容:XML 解析器将始终报告该字符串。
如果你想解析这个,你需要做以下事情:
在原始模式上运行 JAXB,这会将“test”的内容指定为字符串或“any”(必须如此,否则它不能包含 CDATA 声明!)
在二级模式上运行 JAXB,它定义了“test”元素的内容。
在运行时,您需要使用 JAXB 解析 XML 文档,然后导航到“test”元素并再次使用 JAXB 解析该元素。不会有别的办法。
希望这会有所帮助。
【讨论】: