您的位置:首页 > 其它

XSD入门--part5

2016-04-12 16:41 281 查看

XSD复合元素

 

前面已经认识了XSD简单元素,接着就要进入XSD复合元素。何为复合元素?

 

定义——复合元素指包含其他元素或者其他元素属性的XML元素。

 

四种类型的复合元素(均包含属性):

 

  • 空元素
  • 包含其他元素的元素
  • 仅包含文本的元素
  • 包含元素和文本的元素

空元素:

 

<name id="12345"/>

 

 

包含其他元素的元素:

 

<user>
<username>admin</username>
<password>admin</password>
</user>

 

 

仅包含文本的元素:

 

<book type="IT">Java</book>

 

 

包含元素和文本的元素:

 

<books>
<book type="IT">Java</book>
</books>

 

 

 

定义如下复合元素:

 

<user>
<username>admin</username>
<password>admin</password>
</user>

 

 

 

方法一,直接对"user"元素声明:

 

<xs:element name="user">
<xs:complexType>
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

 指示器 <sequence>指明了其中的子元素"username"和"password"必须按照次序出现。

 

 

方法二,"user"元素可以使用type属性,若干元素均可以使用相同的复合类型:

<xs:element name="user" type="userInfo"/>
<xs:element name="guest" type="userInfo"/>
<xs:element name="administrator" type="userInfo"/>

<xs:complexType name="userInfo">
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>

 

 当然我们我可以以某个复合元素为基础,继续添加一些元素:

<xs:element name="user" type="fullUserInfo"/>

<xs:complexType name="userInfo">
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="fullUserInfo">
<xs:complexContent>
<xs:extension base="userInfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: