1

在我的 Java 应用程序中,我必须验证不同版本的 DocBook 格式的 XML 文档。DocBook 4 基于 DTD,DocBook 5 基于 RelaxNG/Schematron。蜜蜂能够针对不同的模式语言进行验证的适当方法是什么?我找到了 Oracle Multi-Schema XML Validator (MSV)、JARV 和 oNVDL。后者似乎已被弃用。目前我使用 SAXParser/XMLReader。但是不支持RelaxNG。我考虑过与 Jing 结合,但我寻找一个干净的结构来做到这一点。

先感谢您。

4

1 回答 1

2

我使用带有嵌入式 Schematron 规则的 RELAX NG 紧凑模式,但至少有几个流行的 RELAX NG 验证器(Jing、RNV)忽略了这个 Schematron 代码。目前我们的工作流程是:

  1. 使用 Trang 将紧凑模式转换为 XML 语法
  2. 使用 Saxon 和 XSLT 样式表“RNG2Schtrn.xsl”提取 Schematron 规则
  3. 使用 Jing 验证提取的“.sch”Schematron 模式
  4. 使用 Jing 验证原始 RELAX NG 紧凑模式

显然,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 规则靠近顶部)。

于 2013-06-19T11:21:44.583 回答