2.5.4. 根据限制定义类型
概述
XML Schema 允许您通过限制 XML Schema 简单类型可能的值来创建新类型。例如,您可以定义一个简单的类型 SSN
,字符串为正好 9 个字符。通过限制使用 simpleType
元素来定义简单类型的新类型。
按限制划分的定义需要三个因素:
-
新类型的名称由
simpleType
元素的name
属性指定。 -
新类型派生自的简单类型(称为 基本类型 )是在 limit 元素中指定。
请参阅 “指定基本类型”一节。
-
名为 facets 的规则,定义基本类型的限制被定义为
限制
元素的子项。请参阅 “定义限制”一节。
指定基本类型
基础类型是被限制在定义新类型中的类型。它使用 限制
元素来指定。limit 元素是 simpleType
元素的唯一子项,它有一个属性 base
,用于指定基本类型。基础类型可以是任何 XML Schema 简单的类型。
例如,若要通过限制 xsd:int
的值来定义一个新类型,您可以使用类似 例 2.14 “使用 int 作为基本类型” 所示的定义。
例 2.14. 使用 int 作为基本类型
<simpleType name="restrictedInt"> <restriction base="xsd:int"> ... </restriction> </simpleType>
定义限制
定义对基本类型的限制的规则被称为 facets。facets 是带有一个属性( 值
)的元素,用于定义 facet 的强制实施方式。可用因素及其 有效值
设置取决于基本类型。例如,xsd:string
支持六个问题,包括:
-
length
-
minLength
-
maxLength
-
pattern
-
whitespace
-
enumeration
每个 facet 元素都是 限制
元素的子项。
示例
例 2.15 “SSN 简单的类型描述” 显示 SSN
的简单类型示例,它代表一个社交安全编号。生成的类型是 xxx-xx-xxxx
的格式字符串。<SSN>032-43-9876<SSN> 是此类型的元素的有效值,但 <SSN>032439876</SSN> 不是。
例 2.15. SSN 简单的类型描述
<simpleType name="SSN"> <restriction base="xsd:string"> <pattern value="\d{3}-\d{2}-\d{4}"/> </restriction> </simpleType>