gpt4 book ai didi

java - 使用 XML Schema、DTD、RelaxNG 和 Schematron 验证 DocBook 文档

转载 作者:行者123 更新时间:2023-11-30 04:20:23 26 4
gpt4 key购买 nike

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

提前谢谢您。

最佳答案

我使用带有嵌入式 Schematron 规则的 RELAX NG 紧凑模式,但至少有几个流行的 RELAX NG validator (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 规则靠近顶部)。

关于java - 使用 XML Schema、DTD、RelaxNG 和 Schematron 验证 DocBook 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17187667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com