根据其他xml中的值目录验证XML

时间:2017-02-09 03:18:30

标签: java xml validation xsd catalog

我有一个包含以下内容的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文件来执行此操作?或者比纯编程简单的任何其他方式?

1 个答案:

答案 0 :(得分:1)

XML架构方法

如果您可以组合XML文档,那么您可以创建一个在2个元素之间具有keyRef关系的XSD。

根据模式验证文档会突出显示任何错误。

如果您无法轻松组合XML文件,则可以使用xinclude(只要您的XSD解析器支持它)。例如Xerces支持它。