在我的Java应用程序中,我必须验证不同版本的DocBook格式的XML文档。 DocBook 4基于DTD,DocBook 5基于RelaxNG / Schematron。能够验证不同模式语言的适当方法是什么?我找到了Oracle Multi-Schema XML Validator(MSV),JARV和oNVDL。后者似乎已被弃用。目前我使用SAXParser / XMLReader。但是没有对RelaxNG的支持。我想和Jing结合,但我想找一个干净的结构去做。
提前谢谢。
答案 0 :(得分:2)
我使用带有嵌入式Schematron规则的RELAX NG紧凑模式,但至少有几个流行的RELAX NG验证器(Jing,RNV)忽略了这个Schematron代码。目前我们的工作流程是:
显然Trang可以将XML 1.0 DTD转换为RELAX NG,因此您应该能够使用Jing进行所有三种类型的验证。
请参阅https://github.com/citation-style-language/utilities/blob/master/style-qc.sh了解转换脚本,https://raw.github.com/citation-style-language/schema/master/csl.rnc查看我们的架构(Schematron规则靠近顶部)。