【发布时间】:2021-03-04 04:13:02
【问题描述】:
我很确定这个问题需要改进,但无法用一句话更好地表达我的困惑:
DocBook 5.2: The Definitive Guide, section 1.1. A Short DocBook History 声明
从 DocBook V5.0 开始,DocBook 是由 RELAX NG 和 Schematron 定义的专有 XML 词汇表。
根据Wikipedia on RELAX NG,它是“XML 模式语言——RELAX NG 模式指定 XML 文档的结构和内容模式”。
Schematron on the other hand "是一种基于规则的验证语言,用于断言 XML 树中是否存在模式。它是一种用 XML 表示的结构模式语言。"
所以两者都是模式语言,但是
-
RELAX NG 用于定义用于创建 XML 文档的词汇表(这是一种用标签(?)表示的领域特定语言;在 DocBook 的情况下是语义标记语言)
-
Schematron 用于根据关联的 XML 模式验证 XML 文档(例如,我猜是使用
jing吗?)
我假设基于DocBook wikipedia 行
[DocBook v5.x] 由带有集成 Schematron 规则的 RELAX NG 模式正式定义
他们之间是有关系的。此外,这是否意味着 RELAX NG XML 模式不够灵活,无法包含所有规则来使用它来验证文档?
可能缺少一些基本的东西:找到问题RelaxNG vs XML schema,但我真的认为有人用 RELAX NG 创建 XML 模式,所以这个问题对我来说没有意义,即使在阅读了答案之后......
相关
- Schematron
- (github)SchXslt [ʃˈɛksl̩t] – An XSLT-based Schematron processor
- https://github.com/topics/schematron
- Schematron: validating XML using XSLT
- (堆栈溢出)Validating XML with Schematron
- (堆栈溢出)command line validator supporting relax ng Schemas with embedded iso Schematron
- (堆栈溢出)How to check that attributes are unique with RelaxNG?
- (氧气文档)Embedding Schematron Rules in XML Schema or RELAX NG
【问题讨论】:
-
感谢您的编辑和回答!我也刚刚重新阅读了 DocBook 书的第 1 章(有问题的链接),发现“一些额外的约束用 Schematron 规则表达。”这行可以回答我的问题,但是 Tony 的下面的答案甚至显示了示例,也很感谢详细的解释。
标签: xml docbook schematron relaxng