complexContent(复杂内容)元素

complexContent(复杂内容)元素:
  除simpleContent外的所有复杂元素,都是complexContent(复杂内容)元素。

内容中仅含有子元素的复杂元素:
语法:
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:anyType">
<!--定义元素组-->
</xs:restriction>
</xs:complexContent>
</xs:complexType>

例:
Schema文档:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>  /表示该元素为一个复杂元素
<xs:complexContent>  /表示该元素属于复杂元素中的复杂内容
<xs:restriction base="xs:anyType">  /约束该元素为anyType类型
<xs:sequence>  /表部定义的元素只能以固定顺序出现
<xs:element name="id" type="xs:integer"/>  /先出现元素"id"唯一编号
<xs:element name="name" type="xs:string"/>  /再出现元素"name"书名
<xs:element name="author" type="xs:string"/>  /再出现元素"author"作者
<xs:element name="price" type="xs:decimal"/>  /最后出现元素"price"价格
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>

XML文档:
<?xml version="1.0"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="009.xsd">
<id>001</id>
<name>XML学习天下</name>
<author>李四</author>
<price>88.50</price>
</book>

注:Schema规定,如果一个复杂内容定义是使用anyType约束派生而来的,
则<xs:complexContent>和<xs:restriction base="xs:anyType">可以省略不写,这就是所谓的默认速记规则。

上面的Schema文档可以改写如下:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://www.altova.com/IPO" xmlns:ipo="http://www.altova.com/IPO" elementFormDefault="qualified" attributeFormDefault="unqualified"> <annotation> <documentation> Addresses for International Purchase order schema Copyright 2000 Example.com. All rights reserved. </documentation> </annotation> <complexType name="Address"> <sequence> <element name="name" type="string" minOccurs="0"/> <element name="street" type="string"/> <element name="city" type="string"/> </sequence> </complexType> <complexType name="US-Address"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="state" type="ipo:US-State" minOccurs="0"/> <element name="zip" type="positiveInteger"/> </sequence> </extension> </complexContent> </complexType> <complexType name="EU-Address"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="postcode" type="ipo:EU-Postcode"/> </sequence> <attribute name="export-code" type="positiveInteger" fixed="1"/> </extension> </complexContent> </complexType> <!-- other Address derivations for more countries --> <simpleType name="US-State"> <restriction base="string"> <enumeration value="AK"/> <enumeration value="AL"/> <enumeration value="AR"/> <enumeration value="AZ"/> <enumeration value="CA"/> <enumeration value="CO"/> <enumeration value="CT"/> <enumeration value="DC"/> <enumeration value="DE"/> <enumeration value="FL"/> <enumeration value="GA"/> <enumeration value="GU"/> <enumeration value="HI"/> <enumeration value="IA"/> <enumeration value="ID"/> <enumeration value="IL"/> <enumeration value="IN"/> <enumeration value="KS"/> <enumeration value="KY"/> <enumeration value="LA"/> <enumeration value="MA"/> <enumeration value="MD"/> <enumeration value="ME"/> <enumeration value="MI"/> <enumeration value="MN"/> <enumeration value="MO"/> <enumeration value="MS"/> <enumeration value="MT"/> <enumeration value="NC"/> <enumeration value="ND"/> <enumeration value="NE"/> <enumeration value="NH"/> <enumeration value="NJ"/> <enumeration value="NM"/> <enumeration value="NV"/> <enumeration value="NY"/> <enumeration value="OH"/> <enumeration value="OK"/> <enumeration value="OR"/> <enumeration value="PA"/> <enumeration value="PR"/> <enumeration value="RI"/> <enumeration value="SC"/> <enumeration value="SD"/> <enumeration value="TN"/> <enumeration value="TX"/> <enumeration value="UT"/> <enumeration value="VA"/> <enumeration value="VI"/> <enumeration value="VT"/> <enumeration value="WA"/> <enumeration value="WI"/> <enumeration value="WV"/> <enumeration value="WY"/> </restriction> <!-- and so on ... --> </simpleType> <simpleType name="EU-Postcode"> <restriction base="string"/> <!-- and so on ... --> </simpleType> <!-- simple type definition for UK-Postcode --> </schema>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值