是否有任何命令行工具可以根据 XSD 版本1.1验证 XML ?
Xmllint 不验证 1.1 版。
是否有任何命令行工具可以根据 XSD 版本1.1验证 XML ?
Xmllint 不验证 1.1 版。
我在 Xerces-J 周围找到了一个方便的包装器:https ://www.dropbox.com/s/939jv39ihnluem0/xsd11-validator.jar
java -jar xsd11-validator.jar -sf my.xsd -if my.xml
您可以通过解压缩 jar,将新的 Xerces-J 放入其中,然后将其重新压缩到 jar 来更新 Xerces-J 库
编辑:更新的下载链接
Saxon 和 Xerces J 目前支持 XSD 1.1。两者都应该在 Linux 下顺利运行。
我在 AskUbuntu 上回答了这个问题。
它包括指向 Xerces-J 包装器的工作链接xsd11-validator.jar
和一个易于使用的舒适 bash 脚本。
不幸的是,xmllint 不能支持 XML Schema 1.1,但它支持基于 RelaxNG 的 Schema(包括所有类似于 XML Schema 1.1 的改进)。
以下是可用于克服 xmllint 限制的过程:
基于 Oxygen Editor 反向生成器(基于现有的 XML 文件)实现您的验证 XML Schema 版本 1.1。 可以从这里下载 1 个月的免费许可证
xmllint 将不接受生成的 XSD 1.1 文件,并显示以下错误消息:
xmllint --schema user.xsd --noout user.xml
user.xsd:565: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': Invalid value for maxOccurs (must be 0 or 1).
user.xsd:741: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': Invalid value for maxOccurs (must be 0 or 1).
WXS schema user.xsd failed to compile
然而,通过应用以下转换命令,可以借助作为 Kohsuke Kawaguchi 的 MSV 项目的一部分的RNGConv工具将 xml 模式转换为松弛模式:
java -jar rngconv-20060319/rngconv.jar user.xsd > user.rng
生成的relaxng 模式文件可以与 xmllint 一起使用:
xmllint --relaxng user.rng --noout user.xml
user.xml validates