对其他XML目录值
问题描述:
我有以下内容的XML文件验证XML:从另一个XML来对其他XML目录值
<example>
<firstNode>
<someInfo>Hello</someInfo>
</firstNode>
<secondNode>
<myFlagColors>
<using>RED</using>
<using>WHITE</using>
<using>BLUE</using>
</myFlagColors>
</secondNode>
</example>
我需要检查每一个节点<using>XYZ</using>
有一个值(如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(使用JAXB),然后使用迭代器 每个XML检查,如果在第一个bean的价值在seco的值列表中nd对象。
我的问题:是否可以通过使用xsd文件来做到这一点?或者比纯编程简单吗?
答
XML Schema的方法
如果能结合XML文档,那么你可以创建一个具有2个元素之间的关系keyRef的XSD。
根据模式验证文档会突出显示所有错误。
如果您不能轻松地将XML文件组合起来,那么您可以使用xinclude(只要您的XSD解析器支持它)。例如Xerces支持它。