Elemen complexType Schema XML

Definisi dan penggunaan

Elemen kompleksType mendefinisikan tipe kompleks. Elemen tipe kompleks adalah elemen XML yang mengandung elemen lain dan/atau atribut.

Informasi Elemen

Kali Muncul Tidak ada batasan di dalam skema; sekali di dalam elemen.
Orangtua Elemen element、redefine、schema
Konten annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

Gramma

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|daftar dari (extension|restriction))
final=(#all|daftar dari (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

(? Simbol deklarasi di dalam elemen complexType, elemen dapat muncul nol atau satu kali, * simbol deklarasi elemen dapat muncul nol atau beberapa kali.)

Atribut

id

Pilihan. Menentukan ID unik elemen ini.

name

Pilihan. Menentukan nama elemen.

abstract

Pilihan. Menentukan apakah tipe kompleks dapat digunakan di dokumen instansiasi. Jika nilai ini adalah true, elemen tidak dapat menggunakan tipe kompleks langsung, tetapi harus menggunakan tipe kompleks yang diwarisi dari tipe kompleks ini. Nilai defaultnya adalah false.

mixed

Pilihan. Menentukan apakah data karakter dapat muncul di antara anak tipe kompleks ini. Nilai defaultnya adalah false.

  • Jika elemen simpleContent adalah anak, properti mixed tidak diizinkan.
  • Jika elemen complexContent adalah anak, properti mixed ini dapat ditulis ulang oleh properti mixed elemen complexContent.

block

Pilihan. Menghalangi penggunaan tipe kompleks yang memiliki tipe warisan spesifik untuk menggantikan tipe kompleks ini. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah subset dari extension atau restriction:

  • extension - Menghalangi penggunaan tipe kompleks yang diwarisi untuk menggantikan tipe kompleks ini.
  • restriction - Menghalangi penggunaan tipe kompleks yang diwarisi untuk menggantikan tipe kompleks ini.
  • #all - Mencegah semua tipe kompleks yang berasal dari derivasi digunakan untuk menggantikan tipe kompleks ini.

final

Pilihan. Mencegah derivasi tipe yang ditentukan dari elemen complexType ini. Nilainya dapat berisi #all atau daftar yang berisi ekspansi atau batasan.

  • extension - Mencegah derivasi melalui ekspansi.
  • restriction - Mencegah derivasi melalui batasan.
  • #all - Mencegah semua derivasi (ekspansi dan batasan).

any attributes

Pilihan. Tentukan properti lain dengan non-schema namespace.

Contoh

Contoh 1

Contoh di bawah ini memiliki elemen kompleks bernama "note":

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

Contoh 2

Dalam contoh di bawah ini ada tipe kompleks "fullpersoninfo" yang mengembangkan tipe yang diwarisi melalui tiga elemen tambahan (address, city dan country), yang berasal dari tipe kompleks lain "personinfo":

<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>

Dalam contoh di atas, elemen "employee" di atas harus mengandung urutan berikut: "firstname", "lastname", "address", "city" dan "country".