validation - 支持带有嵌入式 iso Schematron 的 relax ng Schemas 的命令行验证器

标签 validation relaxng schematron

是否有任何命令行验证程序可以处理带有嵌入式 iso schematron 的 relax ng-Schemas?

我有几个带有嵌入式 iso-schematron 规则的 relax ng-schemas,我必须能够在命令行上对其进行验证。看起来,我们常用的验证器 jing 只适用于 schematron 1.5。在网上冲浪时,我找不到任何支持嵌入式 iso schematron 的验证器,但我使用 oXygen 作为 xml 编辑器,我可以从那里进行验证。

最佳答案

您可以使用 Jing,只要您首先提取 Schematron 规则,然后针对提取的 Schematron 模式运行单独的验证。 Schematron 提取可以使用 RNG2Schtrn.xsl XSLT 样式表(在网上很难找到,但我们在 https://github.com/citation-style-language/utilities/blob/master/RNG2Schtrn.xsl 有一份副本)和 Saxon(与 Jing 捆绑在一起)。如果您的架构采用紧凑的 .rnc 语法,您首先必须将其转换为 XML .rng 语法,为此您可以使用 Trang。

并摘自 https://github.com/citation-style-language/utilities/blob/master/style-qc.sh

# Jing currently ignores embedded Schematron rules.
# For this reason, the schema is first converted to
# RELAX NG XML, after which the Schematron code is
# extracted and tested separately.
java -jar ${pathTrang} ${pathCSLSchema} ${TMP_DIR}/csl.rng
java -jar ${pathSaxon} -o ${TMP_DIR}/csl.sch ${TMP_DIR}/csl.rng RNG2Schtrn.xsl
java -jar ${pathJing} ${TMP_DIR}/csl.sch ${pathCSLStyles}/*.csl || true

# RELAX NG Compact validation
java -jar ${pathJing} -c ${pathCSLSchema} ${pathCSLStyles}/*.csl || true

另见 https://stackoverflow.com/a/18616036/1712389

关于validation - 支持带有嵌入式 iso Schematron 的 relax ng Schemas 的命令行验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906793/

相关文章:

validation - 在不使用 ngSubmit 的情况下进行 Angular 表单验证

xml - relaxng:模式定义无效?

maven - 对 XML 文件执行检查,例如 Oracle OSB 文件和 Soap-UI 测试文件

html - 从 Schematron 生成 HTML 表单

xpath - XPath:嵌套/复杂条件

java - 不同的 SimpleDateFormat 解析

ruby-on-rails - 使用 RSpec 和 Rails 在模型中测试验证

Angular 单元测试表单验证

xml - RelaxNG 与 XML 架构

xml - 如何通过 Ruby 中的 RELAX NG 验证 XML?