⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Schema中基于值的共现约束

利用XML Schema 1.1的断言机制,实现元素或属性的值变化时强制要求其他元素必须出现或禁止出现的复杂业务规则。 · 难度:入门 · +10XP

Schema中基于值的共现约束

传统DTD无法表达“当type为‘advanced’时,必须包含子元素”的逻辑。本教程讲解XML Schema 1.1的xs:assert特性,结合XPath 2.0表达式在类型定义或模型组上施加条件。你将学会如何编写根据属性值强制联动结构变化的约束,并理解其对文档验证带来的颠覆性能力——不再只能靠Schematron弥补。

<xs:element name="device">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="config" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="mode" type="xs:string"/>
    <xs:assert test="if (@mode='advanced') then exists(config) else true()"/>
  </xs:complexType>
</xs:element>
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 182 篇
0 完成
🔥 0