XML 模式语言允许一个类型定义基于另一个类型定义。使用这种方法,可以构造类型的层次结构。本主题概述了类型继承的概念,并突出显示了与替代相关的重要事宜。
有关 XML 模式类型继承的完整讨论可在 万维网协会(W3C) Web 站点或有关 XML 模式的大量书籍中找到。
如果派生类型的元素有比基本类型的元素范围小的合法值(或合法类型成员),类型是它的基本类型的限制。
例如,复杂类型的限制可能减少了它的类型成员的出现次数,或者可能完全省略了该类型成员。
类似地,简单类型的限制可能会减低最大包含面值,或者增加最小包含面值。
如果派生类型的元素有比基本类型的元素范围大的合法值(或合法类型成员),类型是它的基本类型的扩展。
例如,复杂类型的扩展可添加不出现在基本类型中的类型成员,或者可能允许类型成员重复。
类似地。简单类型的扩展必须总是基于该简单类型的复杂类型。(不可能通过拓宽简单类型的合法值的范围来扩展简单类型)
特殊的规则应用到简单类型的派生。一个简单类型不能扩展另一个简单类型。这确保简单类型使用的限制无法从它派生的另一个简单类型中除去。
但是,复杂类型允许扩展简单类型。这不会影响简单类型的合法值的范围,但它确实允许添加属性。扩展简单类型的得到结果总是包含零个或多个属性的复杂类型。
复杂类型上的最终属性可以有三个值,带有以下效果: