Schematron是一种基于规则的验证语言,它可以对XML文档进行验证,以确保文档的结构和内容符合特定的规则。与其他XML验证语言(如DTD和XML Schema)不同,Schematron不是基于文档结构的验证,而是基于规则的验证。这意味着Schematron可以验证XML文档中的任何内容,而不仅仅是文档的结构。
Schematron的验证规则由两部分组成:模式和断言。模式定义了要验证的元素或属性,而断言则定义了该元素或属性应该满足的条件。例如,一个简单的Schematron规则可以验证一个XML文档中的所有标题是否包含至少一个字符:
```
```
在这个例子中,模式是“*”,表示要验证XML文档中的所有元素。断言是“string-length(.) > 0”,表示该元素的文本内容必须至少包含一个字符。
Schematron的优点之一是它的灵活性。Schematron规则可以根据需要进行扩展和修改,以适应不同的验证需求。此外,Schematron还支持多语言验证,可以根据需要进行本地化。
ISO/IEC 19757-3:2016标准规定了Schematron的语法和语义,以及如何将Schematron规则集成到XML文档验证过程中。该标准还定义了Schematron验证引擎的行为和性能要求,以确保验证过程的正确性和效率。
相关标准
- ISO/IEC 19757-2:2016 - DSDL Part 2: Regular-grammar-based validation - RELAX NG
- ISO/IEC 19757-4:2016 - DSDL Part 4: Namespace-based validation - Namespace-based Validation Dispatching Language (NVDL)
- ISO/IEC 19757-6:2011 - DSDL Part 6: Namespace-based Validation Dispatching Language (NVDL) - NVDL schema
- ISO/IEC 19757-11:2017 - DSDL Part 11: Character Repertoire Description Language (CRDL)