XML Schema (XSD) 验证工具?

问题描述

经过一番研究,我认为最好的答案是Xerces,因为它实现了所有 XSD,是跨平台的并且被广泛使用。我在 github 上创建了一个小型 Java 项目,以使用认的 JRE 解析器(通常是 Xerces)从命令行进行验证。这可以在 Windows/Mac/Linux 上使用。

如果您更愿意使用它,还可以使用Xerces的C++ 版本。StdInParse实用程序可用于从命令行调用它。此外,下面的评论者指出了这个更完整的包装实用程序

您还可以使用 xmllint,它是libxml的一部分。您可能已经安装了它。示例用法

xmllint --noout --schema XSD_FILE XML_FILE

一个问题是 libxml 没有实现所有规范,所以你可能会遇到问题:(

或者,如果您在 Windows 上,您可以使用msxml,但您需要某种包装器来调用它,例如此DDJ 文章中描述的 GUI 。但是,Windows 上的大多数人似乎都使用 XML 编辑器,。

最后,不幸的是,您会发现不同的程序会给出不同的结果。这主要是由于 XSD 规范的复杂性。您可能希望使用多种工具来测试您的架构。

:我在一篇博文中对此进行了扩展。

解决方法

在办公室,我们目前正在编写一个应用程序,它将根据给定的模式生成 XML 文件。我们在 .XSD 文件中有架构。

是否有可用于自动化测试的工具或库来检查生成的 XML 是否与架构匹配?

我们更喜欢适合商业用途的免费工具,尽管我们不会捆绑模式检查器,因此它只需要开发人员在开发期间使用。

如果这有什么不同的话,我们的开发语言是 C++,尽管我认为它不应该,因为我们可以生成 xml 文件,然后通过在测试中调用单独的程序来进行验证。