使用 XSLT/XSD 验证 XML

Validate an XML using XSLT/XSD

我想“动态地”验证可以基于 A.xsd 或 B.xsd 的 XML 文件。我正在考虑使用 XSLT,即使用程序中的输入 XML 调用 XSLT,XSLT 查看 XML 中的某些元素,如果它们存在,则验证 A.xsd 否则使用 B.xsd 进行验证。

不确定该怎么做,尝试在 SO 上查找解决方案,但找不到解决我问题的解决方案。非常感谢任何帮助!

提前致谢!

如果您使用 schema-aware XSLT 处理器来启动验证,那当然是可能的;尽管单个转换只能加载一个模式这一事实很复杂(如果它们不相交,例如,在不同的命名空间中,这可能是两个模式的联合;但如果它们是同一模式的不同版本,那将是混乱的.

更好的解决方案可能是将其实现为 XProc 管道。或者,根据您的习惯,您可以使用许多其他技术,例如 Ant 或 Gradle.