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>
分享到:
相关推荐
复杂类型(complexType)是 XML Schema 中的一个关键概念,用于定义元素的结构和内容模型。使用 `<complexType>` 元素,我们可以指定元素的子元素、属性以及它们的顺序和出现次数。例如,以下定义了一个名为 `...
本实践主要关注XML Schema中的复杂类型(Complex Type)和复合元素(Composite Element)的声明与使用。 一、XML Schema中的复杂类型 复杂类型在XML Schema中用于定义具有多个子元素或属性的数据结构。它允许我们...
`complexContent`定义复杂类型的扩展或限制,包含混合内容或仅包含元素。`complexType`则用于定义新的复杂类型,可以包含元素、属性、其他复杂类型等。 7. **documentation 元素**: 提供了在schema中添加文档...
混合内容复合类型可以同时包含文本和子元素,使用`<complexType>`的`complexContent`和`mixed`属性来定义。 #### 十三、XSD复合类型指示器 指示器用于控制复合类型的解析方式,如`all`、`sequence`和`choice`,...
- **complexContent**:定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制。 - **complexType**:定义复杂类型。 - **documentation**:定义 **XML Schema** 中的文本注释。 - **element**:定义元素。 - **...
- **complexContent**:用于基于现有的简单类型或复杂类型进行扩展或限制。 - `id`:可选ID属性。 - `mixed`:是否允许文本节点与子元素混合存在。 - **restriction**:基于现有复杂类型进行限制。 - `id`:可选...
- **定义**: 简易元素是指没有复杂内部结构的元素,通常只包含简单类型数据。 - **示例**: ```xml ``` - **特点**: - 只能包含简单类型数据。 - 不能有子元素。 #### 6. XSD 属性 - **定义**: 属性用于为...
- **定义类型扩展**:使用 `complexContent` 和 `extension` 定义继承关系。 - **定义类型限制**:使用 `restriction` 基于现有类型添加约束。 - **定义枚举类型**:使用 `enumeration` 定义一组有限的选择。 **...
例如,我们定义了一个名为`battcn`的命名空间,并在其中创建了一个名为`application`的元素,该元素有一个必填的`name`属性。这使得在XML配置中可以使用`<battcn:application>`标签,并通过`name`属性传递值。 ```...