在办公室,我们正在编写一个应用程序,将根据我们给出的模式生成XML文件。我们有一个.XSD文件中的模式。
是否有可用于自动测试的工具或库,以检查生成的XML是否与模式匹配?
我们更喜欢适合商业使用的免费工具,尽管我们不会捆绑模式检查器,所以它只需要在开发期间可供开发人员使用。
我们的开发语言是C,如果这有什么区别,虽然我不认为它应该像我们可以生成xml文件,然后通过调用一个单独的程序在测试中进行验证。
经过一番研究,我认为最好的答案是
Xerces,因为它实现了所有的XSD,是跨平台和广泛使用的。我创建了一个
small Java project on github从命令行使用默认的JRE解析器,这通常是Xerces验证。这可以在Windows / Mac / Linux上使用。
原文链接:https://www.f2er.com/xml/294361.html还有一个C++ version of Xerces可用,如果你宁愿使用。 StdInParse utility可以用来从命令行调用它。此外,下面的评论者指向这个more complete wrapper utility。
你也可以使用xmllint,它是libxml的一部分。你可能已经安装了它。用法示例:
xmllint --noout --schema XSD_FILE XML_FILE
一个问题是libxml没有实现所有的规范,所以你可能会遇到问题:
或者,如果你在Windows上,你可以使用msxml,但你需要一些类型的包装器来调用它,例如在这个DDJ article描述的GUI。但是,似乎大多数人在Windows上使用XML编辑器,如记事本(如Nate’s answer中所述)或XML Notepad 2007作为suggested by SteveC(还有几个商业编辑器,我不在这里提到)。
最后,你会发现不同的程序会,不幸的是,给不同的结果。这主要是由于XSD规范的复杂性。你可能想用几个工具测试你的模式。
更新:我在blog post扩展了这个。