Phần tử extension XML Schema

Định nghĩa và cách sử dụng

Phần tử extension mở rộng phần tử simpleType hoặc complexType.

Thông tin phần tử

Lần xuất hiện Một
Phần tử cha complexContent
Nội dung annotation、attribute、attributeGroup、anyAttribute、choice、all、sequence、group

Ngữ pháp

<extension
id=ID 
base=QName
Các thuộc tính
>
(annotation?,((group|all|choice|sequence)?,
((attribute|attributeGroup)*,anyAttribute?)))
</extension>
Thuộc tính Mô tả
id Chọn lọc. Định nghĩa ID duy nhất của phần tử này.
base Bắt buộc. Định nghĩa tên của các phần tử dữ liệu tĩnh, simpleType hoặc complexType.
xml:lang Chọn lọc. Định nghĩa ngôn ngữ được sử dụng trong nội dung.

(? Định nghĩa ký hiệu trong phần tử extension, phần tử này chỉ có thể xuất hiện một hoặc không xuất hiện, * ký hiệu định nghĩa phần tử này có thể xuất hiện một hoặc nhiều lần。)

Mô hình

Ví dụ 1

Dưới đây là ví dụ thêm thuộc tính để mở rộng một simpleType đã có:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="size">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small" />
    <xs:enumeration value="medium" />
    <xs:enumeration value="large" />
  </xs:restriction>
</xs:simpleType>
<xs:complexType name="jeans">
  <xs:simpleContent>
    <xs:extension base="size">
      <xs:attribute name="sex">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="male" />
            <xs:enumeration value="female" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>
</xs:schema>

Ví dụ 2

Dưới đây là ví dụ thêm ba phần tử để mở rộng một phần tử complexType đã có:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <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>
</xs:schema>