179
Chương 5: XML
rằng, các đặc tính luôn được khai báo sau các phần tử, và chúng không được nhóm với thẻ
<sequence>
hay
<all>
vì thứ tự không quan trọng.
<xsd:complexType name="product">
<xsd:sequence>
<xsd:element name="productName" type="xsd:string"/>
<xsd:element name="productPrice" type="xsd:decimal"/>
<xsd:element name="inStock" type="xsd:boolean"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer"/>
</xsd:complexType>
Theo mặc định, một phần tử có thể xuất hiện đúng một lần trong một tài liệu. Nhưng bạn có
thể cấu hình điều này bằng cách chỉ định các đặc tính
maxOccurs
và
minOccurs
. Ví dụ dưới đây
không giới hạn số lượng sản phẩm trong danh mục:
<xsd:element name="product" type="product" maxOccurs="unbounded" />
Dưới đây là Schema cho danh mục sản phẩm:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- Định nghĩa product (kiểu phức). -->
<xsd:complexType name="product">
<xsd:sequence>
<xsd:element name="productName" type="xsd:string"/>
<xsd:element name="productPrice" type="xsd:decimal"/>
<xsd:element name="inStock" type="xsd:boolean"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer"/>
</xsd:complexType>
<!-- Đây là cấu trúc mà tài liệu phải tuân theo.
Bắt đầu với phần tử productCatalog. -->
<xsd:element name="productCatalog">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="catalogName" type="xsd:string"/>
<xsd:element name="expiryDate" type="xsd:date"/>
<xsd:element name="products">