在命令行上验证OS X中的DocBook架构

时间:2012-12-07 04:05:28

标签: macos xsd docbook

从命令行对DocBook 5架构验证XML文件的最简单方法是什么?

我特别谈到DocBook文档,这些文档被分成几个文件并包含在<xi:include href="..."/>中。

此处的具体用例是在OpenStack documentation中的建议更改中查找架构违规。

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

2 个答案:

答案 0 :(得分:1)

这听起来几乎就像一个技巧问题:如果你想从命令行验证文档,你会想要通过命令行界面获取你想到的模式语言的模式验证器,不是吗?所以我想你问的是哪个验证器有一个命令行界面?

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

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

答案 1 :(得分: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