如何验证一个 XSD 架构是另一个 XSD 架构的子集?
我们正在使用一组“蓝图”XSD 模式(定义子组件可用的所有可能输入或输出)来创建一个系统系统应用程序。正在实现许多子组件,这些子组件使用 XML 文件在它们之间传递数据。每个子组件创建相关蓝图 XSD 模式的子集(以指示它选择实现的可能输入或输出)。针对子集 XSD 架构验证的任何 XML 数据文件也必须针对蓝图 XSD 架构进行验证,但反之则不正确(因为子集 XSD 架构可能不包含来自蓝图 XSD 架构的所有“可选”或“选择”XML 元素,并且它可以选择进一步限制现有 XML 标记上允许的数据值)。
在测试期间,我们打算验证每个子组件的子集 XSD 模式确实是关联蓝图 XSD 模式的子集,但我们没有自动执行此验证的方法。这些 XSD 架构相当大且丑陋,需要手动进行此测试。如果有一种“针对 XSD 文件 2 验证 XSD 文件 1”命令会很不错,类似于 Java 如何针对 XSD 模式执行 XML 文件的验证。我们想要确认每个子组件的子集 XSD 架构将不允许任何违反蓝图 XSD 架构的 XML 输入/输出组合。有了这种模式到模式的能力,
有用信息:此应用程序是作为 OSGi 包实现并使用 Maven 2.2.1 编译/执行的 Java 6 应用程序的集合。没有使用任何特定开发 IDE 的要求。该系统正在 Microsoft Windows XP 环境中进行测试,但也计划在其他环境中执行该系统(因此首选跨平台解决方案)。