简单类型是数字、字符串或日期之类的数据项的抽象定义。
简单类型的用途是定义一个或多个简单元素的内容。 简单类型以及任何基于简单类型的元素不能包含属性或子元素。 简单类型相对于复杂类型,后者定义元素的结构,但通常不定义任何简单数据。
全局和本地简单类型
简单类型可以是全局或本地的。 全局简单类型可用作多个元素的基础。 必须为它指定一个可以用来引用它的唯一名称。 本地简单类型与单个元素相关联,并且不可在消息模型中的任何其他地方重新使用。 局部类型没有名称并且有时称为匿名类型。
简单类型的不同种类
- 内建
XML 模式定义了多种简单类型以供您使用,涵盖了字符串、整数、小数和浮点型之类的所有标准数据类型。
- 限制
使用限制,您可以通过从另一个简单类型(基本类型)进行派生来定义自己的简单类型。 限制类型可以对其应用值约束。
限制类型可以根据内置简单类型或限制简单类型派生。
- 列表
(仅对于 XML 消息)列表类型是一种以 XML 呈示重复的简单值的方法。 这种表示法比重复元素的表示法更加简洁,并提供了包含多值属性的方法。
列表类型可以基于并集类型(在本节的稍后部分介绍)。 这种类型可以描述空格分隔的项列表,在此列表中,每项都可以基于并集中的任何简单类型。
不能使用列表的列表。 列表的项类型不能是列表本身,也不能根据另一列表类型在任何级别派生。
可以对列表类型应用
minLength、maxLength 和 length 构面。 这些面限制列表中项的数目。 要限制列表中每项的值,必须对项类型而不是列表本身应用这些构面。 消息定义编辑器提供了对直接基于列表类型的枚举和模式构面的附加支持,从而使您能够导入任何使用了这些枚举和模式构面的模式,但将发出有关集成节点将忽略这些枚举和模式构面的警告。
- 并集
并集类型是两个或更多其他简单类型的并集。
并集类型使值能够符合多种不同简单类型中的任意一种。 组成并集类型的简单类型称为其成员类型。 可以存在的成员类型数没有上限,但必须至少存在一个。 成员类型可以定义为该并集类型内匿名定义的内建简单类型、用户定义的简单类型或本地简单类型。
并集类型的成员也可以包含列表类型、并集类型和受限制的简单类型。
值约束
对于 XML 模式,值约束条件也称为构面。 对派生类型应用的任何值约束条件都必须进一步地限制基本类型。 派生类型削弱或除去它的基本类型定义的值约束是无效的。 如果没有值约束应用于派生类型,派生类型将几乎与其基本类型一致,但在相关情况下(类型继承和元素替换)派生类型将视为基本类型的限制。