对其他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支持它。