我有一个包含以下内容的XML文件:
<example>
<firstNode>
<someInfo>Hello</someInfo>
</firstNode>
<secondNode>
<myFlagColors>
<using>RED</using>
<using>WHITE</using>
<using>BLUE</using>
</myFlagColors>
</secondNode>
</example>
我必须检查每个节点<using>XYZ</using>
是否有来自另一个XML的值(如XYZ),如下所示:
<colorCatalog>
<color>WHITE</color>
<color>BLACK</color>
<color>RED</color>
<color>GREEN</color>
<color>BLUE</color>
<color>YELLOW</color>
<color>PINK</color>
<color>ORANGE</color>
<color>CYAN</color>
</colorCatalog>
我不喜欢我目前用java做的实现: 转换java Bean中的每个XML(使用jaxb),然后使用迭代器 检查第二个对象的值数组中第一个bean中的值是否为。
我的问题:是否可以通过使用xsd文件来执行此操作?或者比纯编程简单的任何其他方式?
答案 0 :(得分:1)
XML架构方法
如果您可以组合XML文档,那么您可以创建一个在2个元素之间具有keyRef关系的XSD。
根据模式验证文档会突出显示任何错误。
如果您无法轻松组合XML文件,则可以使用xinclude(只要您的XSD解析器支持它)。例如Xerces支持它。