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

标签 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 实现的: 将每个 XML 转换为 java Bean(使用 jaxb),然后使用迭代器 检查第一个 bean 中的值是否在第二个对象的值数组中。

我的问题:是否可以仅使用 xsd 文件来做到这一点?或者比纯编程更简单的任何其他方式?

最佳答案

XML 模式方法

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

根据架构验证文档将突出显示任何错误。

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

关于java - 根据其他 xml 中的值目录验证 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127630/

相关文章:

java - Spring AOP 介绍中丢失了原有的接口(interface)

java - 无法访问外部类修饰符(java)

java - Swing 线程回调

java - 为什么 IDEA 忽略我的 testng 测试?

c++ - 如何让mini xml数据的呈现更具可读性?

java - hadoop map reduce程序中的InstantiationException

java - 以字符串形式返回的 XML 需要转换为 java bean

javascript - 如何在 JavaScript 中验证时间戳

jQuery 验证,改变单独标签的颜色

javascript - 如何验证数组(矩阵)格式?