ISO/IEC19757-3:2006(E) - Schematron 规则基础验证标准详解

需积分: 10 7 下载量 173 浏览量 更新于2024-07-26 收藏 230KB PDF 举报
“ISO/IEC19757-3:2006(E)是Schematron ISO标准的首个版本,发布于2006年6月1日,它属于信息科技——文档模式定义语言(DSDL)的第三部分:基于规则的验证——Schematron。这个标准定义了一种XML模式语言,用于XML文档的结构和逻辑验证。” Schematron是一种灵活的XML验证语言,它的核心思想是通过规则来验证XML文档是否有效。与XSD(XML Schema Definition)等传统XML模式语言不同,Schematron更注重业务逻辑,允许开发者用自然语言编写验证规则,从而提供更清晰的验证意图和错误描述。 在ISO/IEC19757-3标准中,详细阐述了Schematron的语法和语义。它包括以下几个关键概念: 1. 规则(Rule):Schematron的核心是规则,规则定义了XML文档中的元素或属性应该如何满足特定条件。例如,一个规则可能规定某个元素必须包含特定数量的子元素,或者某个属性的值必须符合特定的正则表达式。 2. 断言(Assertion):断言是规则的具体表现形式,用于检查XML文档的某些部分是否符合预期。每个断言都包含一个测试表达式和一个可选的消息,测试表达式是XPath表达式,用于评估XML文档的节点;消息则是在断言失败时给出的解释信息。 3. 查询语言(Query Language):Schematron使用XPath作为查询语言,通过XPath表达式来选择、过滤和操作XML文档中的节点。在ISO标准中,可能还包括XPath函数库的使用,以增强断言的复杂性。 4. 归纳模式(Sch)和诊断模式(Diag):Schematron模式分为两部分,归纳模式定义了文档必须遵循的规则,而诊断模式提供了详细的错误信息。这样,当文档验证失败时,可以提供更具体的反馈。 5. 验证过程:Schematron的验证过程通常包括两个步骤:首先,解析XML文档并应用归纳模式,找出所有满足断言的节点;然后,应用诊断模式,生成详细的错误报告。 6. ISO Schematron的实现:除了ISO标准本身,还有许多工具和库支持Schematron,如Apache Xerces、 lxml(Python)、Saxon(Java)等,它们提供了将Schematron模式应用于XML文档的API和命令行工具。 Schematron ISO标准提供了一种强大的机制,用于验证XML文档的结构和逻辑,特别是在需要验证复杂业务规则或提供人性化错误信息时,Schematron比其他XML验证方法更为适用。由于其灵活性和可读性,Schematron被广泛应用于数据交换、内容管理、电子医疗记录等领域。