在此先简单介绍一下什么是复合元素?
XML的复合元素是指包含了其他的元素及/或属性的元素。
有四种类型的复合元素:
- 空元素(<book price="10.99"/>)
- 仅包含其他元素的元素(<book><title>标题</title></book>)
- 仅包含文本的元素(<book price="10.99">somebook</book>)
- 既包含元素又包含文本的元素(<book>somebook<title>标题</title></book>)
注意:上述元素均可包含属性。
下面将逐一介绍XSD的7种指示器
Order 指示器:
- All
- Choice
- Sequence
Occurrence 指示器:
- maxOccurs
- minOccurs
Group 指示器:
- Group name
- attributeGroup name
- All
<all> 指示器规定子元素可以按照任意顺序出现,且子元素在没有属性minOccurs和maxOccurs时必须且只能出现一次。
<all> 内的子元素minOccurs和maxOccurs属性的取值范围只有0和1.
当minOccurs="0"时允许子元素不出现。
- Choice
<Choice> 指示器规定只可以出现所有子元素中的一个
值得注意的是<Choice>只规定子元素出现的名字,而子元素出现的次数依然由属性minOccurs和maxOccurs来决定
当至少有一个子元素定义属性minOccurs="0"时,父元素允许没有任何子元素
- Sequence
<Sequence> 指示器是最常用的指示器
它严格规定了子元素的出现顺序,元素的出现次数根据属性minOccurs和maxOccurs来规定
- maxOccurs
对于所有的 "Order" 和 "Group" 指示器(any、all、choice、sequence、group name 以及 group reference),其中的 maxOccurs 以及 minOccurs 的默认值均为 1。
maxOccurs可规定某个元素可出现的最大次数,它的取值范围为正整数以及"unbounded"
- minOccurs
minOccurs可规定某个元素可出现的最小次数,它的取值范围为正整数
- Group name
待续
- attributeGroup name
待续