`

complexContent(复杂内容)元素

XML 
阅读更多
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>
分享到:
评论

相关推荐

    XML应用开发(软件品牌)-1期 3.7 案例分析-复杂类型-声明复合元素.doc

    复杂类型(complexType)是 XML Schema 中的一个关键概念,用于定义元素的结构和内容模型。使用 `&lt;complexType&gt;` 元素,我们可以指定元素的子元素、属性以及它们的顺序和出现次数。例如,以下定义了一个名为 `...

    XML应用开发(软件品牌)-1期 3.7 课堂实践-复杂类型-声明复合元素.doc

    本实践主要关注XML Schema中的复杂类型(Complex Type)和复合元素(Composite Element)的声明与使用。 一、XML Schema中的复杂类型 复杂类型在XML Schema中用于定义具有多个子元素或属性的数据结构。它允许我们...

    XML Schema 参考手册

    `complexContent`定义复杂类型的扩展或限制,包含混合内容或仅包含元素。`complexType`则用于定义新的复杂类型,可以包含元素、属性、其他复杂类型等。 7. **documentation 元素**: 提供了在schema中添加文档...

    XML_Schema 教程 详细版

    混合内容复合类型可以同时包含文本和子元素,使用`&lt;complexType&gt;`的`complexContent`和`mixed`属性来定义。 #### 十三、XSD复合类型指示器 指示器用于控制复合类型的解析方式,如`all`、`sequence`和`choice`,...

    XML schema结构快速参考

    - **complexContent**:用于基于现有的简单类型或复杂类型进行扩展或限制。 - `id`:可选ID属性。 - `mixed`:是否允许文本节点与子元素混合存在。 - **restriction**:基于现有复杂类型进行限制。 - `id`:可选...

    Writing WSDL Contracts

    - **定义类型扩展**:使用 `complexContent` 和 `extension` 定义继承关系。 - **定义类型限制**:使用 `restriction` 基于现有类型添加约束。 - **定义枚举类型**:使用 `enumeration` 定义一组有限的选择。 **...

    Spring源码解密之自定义标签与解析

    例如,我们定义了一个名为`battcn`的命名空间,并在其中创建了一个名为`application`的元素,该元素有一个必填的`name`属性。这使得在XML配置中可以使用`&lt;battcn:application&gt;`标签,并通过`name`属性传递值。 ```...

Global site tag (gtag.js) - Google Analytics