thành phần mở rộng XML Schema

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

thành phần extension mở rộng các thành phần simpleType hoặc complexType.

thông tin thành phần

lần xuất hiện một
thành phần cha complexContent
nội dung annotation、attribute、attributeGroup、anyAttribute、choice、all、sequence、group

cấu trúc ngữ pháp

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

(? Ký hiệu được chỉ định trong phần tử extension, phần tử này chỉ có thể xuất hiện một hoặc không lần, * ký hiệu được chỉ định 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ụ bằng cách thêm thuộc tính, mở rộng 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ụ bằng cách thêm ba phần tử, mở rộng 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>