posts - 10, comments - 24, trackbacks - 0, articles - 0

导航

XSD 复合类型指示器

Posted on 2009-02-06 17:41 LucasYang 阅读(...) 评论(...) 编辑 收藏

在此先简单介绍一下什么是复合元素?

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> 指示器规定子元素可以按照任意顺序出现,且子元素在没有属性minOccursmaxOccurs时必须且只能出现一次。

<all> 内的子元素minOccursmaxOccurs属性的取值范围只有0和1.

当minOccurs="0"时允许子元素不出现。

  • Choice

<Choice> 指示器规定只可以出现所有子元素中的一个

值得注意的是<Choice>只规定子元素出现的名字,而子元素出现的次数依然由属性minOccursmaxOccurs来决定

当至少有一个子元素定义属性minOccurs="0"时,父元素允许没有任何子元素

  • Sequence

<Sequence> 指示器是最常用的指示器

它严格规定了子元素的出现顺序,元素的出现次数根据属性minOccursmaxOccurs来规定

  • maxOccurs

对于所有的 "Order" 和 "Group" 指示器(any、all、choice、sequence、group name 以及 group reference),其中的 maxOccurs 以及 minOccurs 的默认值均为 1。

maxOccurs可规定某个元素可出现的最大次数,它的取值范围为正整数以及"unbounded"

  • minOccurs

minOccurs可规定某个元素可出现的最小次数,它的取值范围为正整数

  • Group name

待续

  • attributeGroup name

待续