从命令行对DocBook 5架构验证XML文件的最简单方法是什么?
我特别谈到DocBook文档,这些文档被分成几个文件并包含在<xi:include href="..."/>
中。
此处的具体用例是在OpenStack documentation中的建议更改中查找架构违规。
如果我在oXygen GUI编辑器中打开文件,它将识别架构违规,但我希望能够从命令行运行这些检查。
答案 0 :(得分:1)
这听起来几乎就像一个技巧问题:如果你想从命令行验证文档,你会想要通过命令行界面获取你想到的模式语言的模式验证器,不是吗?所以我想你问的是哪个验证器有一个命令行界面?
多个XSD验证器具有命令行界面;按字母顺序排在第一位的是:MSV(多模式验证器),Saxon-EE,Xerces C和Xerces 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