<hr class=“my12大纲无baw0 bb bc-POWER-400”/
想改进此问题吗?更新问题,使其成为堆栈溢出的主题。
6年前关闭了
在办公室,我们目前正在编写一个应用程序,它将根据给定的模式生成XML文件
是否有工具或库可用于自动测试,以检查生成的XML是否与模式匹配
我们更喜欢适合商业用途的免费工具,尽管我们不会捆绑模式检查器,所以它只需要在开发过程中供开发人员使用
我们的开发语言是C++,如果这有什么区别,尽管我认为它不应该像我们可以生成XML文件那样,然后通过在测试中调用单独的程序来验证。
经过一些研究,我认为最好的答案是Xerces,因为它实现了所有XSD,是跨平台的,并且被广泛使用。我在github上创建了一个小型Java项目,使用默认的JRE解析器(通常是Xerces)从命令行进行验证。这可以在Windows/Mac/Linux上使用
还有一个C++版本的XRCES,如果您愿意使用它,STDPARSE实用程序可以用来从命令行调用它。下面的注释者指向这个更完整的包装工具。
您还可以使用xmllint,它是libxml的一部分。您可能已经安装了它。用法示例:
xmllint--noout--schema XSD_文件XML_文件
一个问题是libxml没有实现所有规范,因此您可能会遇到以下问题:(
或者,如果您在Windows上,您可以使用msxml,但您需要某种包装来调用它,如DDJ文章中描述的GUI。然而,Windows上的大多数人似乎都使用XML编辑器,如Notepad++(如Nate的回答中所述)或SteveC建议的XML Notepad 2007(还有几位商业编辑,我在这里不提)
最后,不幸的是,您会发现不同的程序会给出不同的结果。这主要是由于XSD规范的复杂性。您可能需要使用多种工具测试您的模式
更新:我在一篇博客文章中对此进行了扩展