0

0

Schematron是什么 基于规则的XML验证语言

星降

星降

发布时间:2025-12-24 14:57:20

|

764人浏览过

|

来源于php中文网

原创

Schematron是一种基于XPath断言的XML语义验证语言,专注业务规则而非结构约束。它通过context定位节点、assert检查条件,支持跨元素关系、计算逻辑和日期函数,常与XSD分层配合使用。

schematron是什么 基于规则的xml验证语言

Schematron 是一种基于规则的 XML 验证语言,它不依赖元素结构或数据类型定义(如 DTD、XML Schema 或 Relax NG),而是通过编写逻辑断言(assertions)和报告(reports)来检查 XML 文档是否符合业务规则、语义约束或领域特定要求。

核心思想:用 XPath 表达“应该是什么”

Schematron 的验证逻辑围绕 上下文(context)条件断言(assert) 展开。你指定一个 XPath 表达式定位到某类节点,再用另一个 XPath 判断该节点或其周围环境是否满足某种业务条件。

  • 例如:要求每个 下必须有且仅有一个 ,且值大于 0 —— 这在 XSD 中难以直接表达,但在 Schematron 中可写为:
    发票必须有唯一且正数的总金额
  • 它不描述“文档长什么样”,而是回答“文档是否合理”——更贴近人工校验逻辑。

与 XSD 等结构型 Schema 的关键区别

XSD 主要约束元素顺序、出现次数、数据类型;Schematron 则专注跨元素关系、计算逻辑、条件依赖等“软性规则”。

PHP开发实用指南 2.0
PHP开发实用指南 2.0

对于一个刚进入PHP 开发大门的程序员,最需要的就是一本实用的开发参考书,而不仅仅是各种快速入门的only hello wold。在开发的时候,也要注意到许多技巧和一些“潜规则”。PHP是一门很简单的脚本语言,但是用好它,也要下功夫的。同时,由于PHP 的特性,我一再强调,最NB 的PHP 程序员都不是搞PHP 的。为什么呢?因为PHP 作为一种胶水语言,用于粘合后端 数据库和前端页面,更多需

下载
  • XSD 很难表达:“如果 statusshipped,则 shippingDate 必须存在且早于当前日期” —— Schematron 可直接用 XPath 函数(如 current-date())实现。
  • Schematron 规则可复用、可嵌套、支持变量和函数扩展(通过 XSLT 实现),适合渐进式增强验证能力。
  • 它本身不是独立执行引擎,通常编译为 XSLT,再由标准 XSLT 处理器运行,因此天然兼容现有 XML 工具链。

典型使用场景

适合需要语义级、业务级校验,而非仅语法合规的场合:

  • 电子病历中检查“用药剂量不能超过患者体重允许上限”
  • 报关 XML 中验证“征税方式为免税时,税额字段必须为空或为零”
  • 出版行业校验“所有带 ID 的图必须在正文中被引用()”
  • 配合 XSD 使用:XSD 做基础结构检查,Schematron 补充业务规则,形成分层验证体系。

简单起手示例

验证一个图书 XML 中:每本 必须有 ,且页数()要是正整数:


  
    
      缺少书名
      缺少作者
      页数必须是正整数
    

  

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

293

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

216

2025.10.31

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

191

2023.11.20

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1835

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2078

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

909

2024.11.28

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

238

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

378

2023.11.14

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 2.4万人学习

SciPy 教程
SciPy 教程

共10课时 | 0.9万人学习

Sass 教程
Sass 教程

共14课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号