在命令行 (Linux) 上根据 XSD 1.1 架构/XSD(使用 Saxon-B / saxon 9.1.0.8)验



我已经尝试了好几天,以便针对 1.1 Schema/XSD 对 XML 进行 linux 命令行验证。(我真的不在乎这个工具,只要它是一个免费的 Linux 工具,支持 xsd 1.1 语句,如"assert")

到目前为止,我已经发现/尝试过:

  • xmllint (似乎它不支持 XSD 1.1 Schema?) (我过去非常成功地将 xmllint 用于 xsd 1.0)

  • 最新版本的 Saxon 仅支持企业版 (EE) 的 XSD 验证 - 我没有。

  • 堆栈溢出上的许多线程,包括其中一个提供的工具

  • 据说这就像打电话java com.saxonica.Validate [options] source.xml...一样简单

  • 调用验证器时必须使用-xsdversion:1.1

  • 许多人声称它适用于撒克逊-B,但没有具体的例子

  • 我已经从SF下载了Saxon-B/saxon 9.1.0.8的源代码,但无济于事,找不到"com.saxonica.Validate"类(不应该是net.sf.saxon。

  • 调用例如:

./java -cp "<path to saxon libs>/lib/saxon-9.1.0.8.jar" com.saxonica.Validate /home/<myuser>/test.xml Fehler: Hauptklasse com.saxonica.Validate konnte nicht gefunden oder geladen werden

("找不到主类")(显然,我需要提供更多选项来验证架构,但由于找不到该类,...

运行 Java 1.7 build 71

bin$ ./java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

有没有人有一个工具(最好是saxon-B)的工作示例,我可以在linux命令行上针对XSD 1.1验证XML?

谢谢

e

要使用 Saxon 模式验证器,您需要 Saxon 企业版;所需的最低许可证是 EEV,费用为 90 英镑。您可以从 www.saxonica.com 获得免费的 30 天评估许可证。模式处理在Saxon的开源版本(Saxon-B,Saxon-HE)中不可用,并且从未可用。

有一个版本的Apache Xerces支持XSD 1.1,但恐怕我不能给你任何帮助。还有一个来自Altova的商业XSD 1.1实现。

最新更新