element complexType XML Schema
definisi dan penggunaan
complexType element mendefinisikan tipe kompleks. Element tipe kompleks adalah XML element yang mengandung element lain dan/atau atribut.
informasi element
kali muncul | tidak terbatas dalam arsitektur; sekali dalam element. |
element parent | element、redefine、schema |
konten | annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
gramatika
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|daftar dari (ekstensi|batasan)) final=(#all|daftar dari (ekstensi|batasan)) attributes yang mana > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((atribut|grupAtribut)*,anyAttribute?)))) </complexType>
(? Simbol deklarasi 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 instansia. Jika nilai ini adalah true, elemen tidak dapat menggunakan tipe kompleks langsung, melainkan harus menggunakan tipe kompleks turunan. Nilai defaultnya adalah false.
mixed
Pilihan. Menentukan apakah data karakter dapat muncul di antara elemen anak tipe kompleks ini. Nilai defaultnya adalah false.
- Jika elemen simpleContent adalah elemen anak, properti mixed tidak diijinkan.
- Jika elemen complexContent adalah elemen anak, properti mixed ini dapat di-override oleh properti mixed elemen complexContent.
block
Pilihan. Mencegah penggunaan tipe kompleks yang memiliki tipe turunan yang ditentukan untuk menggantikan tipe kompleks ini. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah bagian dari ekstensi atau batasan:
- extension - Mencegah penggunaan tipe kompleks turunan yang diambil melalui ekstensi untuk menggantikan tipe kompleks ini.
- restriction - Mencegah penggunaan tipe kompleks turunan yang diambil melalui batasan untuk menggantikan tipe kompleks ini.
- #all - Mencegah penggunaan semua tipe kompleks turunan untuk menggantikan tipe kompleks ini.
final
Pilihan. Mencegah penggunaan tipe kompleks yang diambil dari elemen complexType ini. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah bagian dari ekstensi atau batasan.
- extension - Mencegah derivasi melalui ekspansi.
- restriction - Mencegah derivasi melalui batasan.
- #all - Mencegah semua derivasi (ekspansi dan batasan).
attributes yang mana
Pilihan. Tentukan properti lain yang memiliki ruang nama non-schema.
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
Contoh di bawah ini mengandung tipe kompleks "fullpersoninfo" yang memperluas tipe yang diwarisi melalui tiga elemen tambahan (address, city dan country), turun dari tipe kompleks lainnya "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>
在上面的例子中,上面的 "employee" 元素必须按顺序包含以下元素:"firstname"、"lastname"、"address"、"city" 以及 "country"。