

新闻资讯
技术学院restriction是收窄类型取值范围或结构的派生机制,extension是扩展复杂类型以增加新内容的机制;前者支持简单与复杂类型、仅减少允许值,后者仅支持复杂类型、可添加新元素或属性。
restriction 和 extension 是 XSD 中用于定义类型派生的两个核心机制,作用方向相反:restriction 是“收窄”已有类型的取值范围或结构,extension 是“扩展”已有类型以增加新内容。
用于在保持兼容的前提下,对父类型施加更严格的约束。它不增加新成分,只减少允许的值或结构可能性。
base 属性,引用一个已存在的简单类型或复杂类型minInclusive、maxLength、enumeration、pattern 等用于在父类型基础上“追加”新内容,使新类型能表达更多数据。扩展后的新类型兼容原类型(即原类型的实例仍合法),但能力更强。
complexContent 使用,典型结构是:...
对比维度如下:
方向性:restriction 是“减法”,extension 是“加法”不复杂但容易忽略:simpleContent 下的 extension 只能加 attribute,不能加子元素;而 complexContent 下的 extension 才能加子元素——这个边界由内容模型决定,不是关键字本身。