0

从命令行根据 DocBook 5 模式验证 XML 文件的最简单方法是什么?

特别是,我谈论的是 DocBook 文档,这些文档被拆分为多个文件并包含在<xi:include href="..."/>.

这里的特定用例是在OpenStack 文档中的提议更改中发现模式违规。

如果我在oXygen GUI 编辑器中打开文件,它将识别模式违规,但我希望能够从命令行运行这些检查。

4

2 回答 2

1

这听起来几乎像一个技巧问题:如果您想从命令行验证文档,您将需要使用命令行界面为您想到的模式语言获取模式验证器,不是吗?所以我猜你是在问哪些验证器有命令行界面?

一些 XSD 验证器具有命令行界面;按字母顺序,我首先想到的是: MSV(多模式验证器)、Saxon -EEXerces CXerces J。xmllint (libxml 的命令行接口)和xsv中也有部分 XSD实现。我相信也可以从命令行运行至少一个 Microsoft 的 XSD 实现,但正如您在标题中提到的 OS X 一样,我认为这不是您想要去的地方。

RelaxNG 验证器包括 Jing、xmllint 和 msv;都有命令行界面。

于 2012-12-08T00:30:42.573 回答
1

xmllint做我需要的,例如:

xmllint --relaxng http://www.docbook.org/xml/5.0/rng/docbookxi.rng --noout ~/openstack-manuals/doc/src/docbkx/openstack-compute-admin/bk-compute-adminguide.xml

这会输出一个字符串,指示验证是否成功:

/Users/lorin/openstack-manuals/doc/src/docbkx/openstack-compute-admin/bk-compute-adminguide.xml validates
于 2012-12-15T18:42:06.383 回答