Elemen kompleks berisi elemen dan / atau atribut lain.
Section Artikel
Pengertian Elemen Kompleks
Elemen kompleks adalah elemen XML yang berisi elemen dan / atau atribut lain.
Ada empat jenis elemen kompleks:
- elemen kosong
- elemen yang hanya berisi elemen lain
- elemen yang hanya berisi teks
- elemen yang berisi elemen dan teks lainnya
Catatan: Setiap elemen ini mungkin berisi atribut juga!
Contoh Elemen Kompleks
Elemen XML yang kompleks, “produk”, yang kosong:
<product pid="1345"/>
Elemen XML yang kompleks, “employee”, yang hanya berisi elemen lain:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Elemen XML yang kompleks, “food”, yang hanya berisi teks:
<food type="dessert">Ice cream</food>
Elemen XML kompleks, “description”, yang berisi elemen dan teks:
<description> It happened on <date lang="norwegian">03.03.99</date> .... </description>
Cara Mendefinisikan Elemen Kompleks
Lihat elemen XML kompleks ini, “employee”, yang hanya berisi elemen lain:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Kita dapat mendefinisikan elemen kompleks dalam Skema XML dengan dua cara berbeda:
- Elemen “employee” dapat dideklarasikan secara langsung dengan memberi nama elemen tersebut, seperti ini:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Jika kita menggunakan metode yang dijelaskan di atas, hanya elemen “employee” yang dapat menggunakan tipe kompleks yang ditentukan. Perhatikan bahwa elemen anak, “firstname” dan “lastname”, dikelilingi oleh indikator . Ini berarti bahwa elemen anak harus muncul dalam urutan yang sama seperti yang dideklarasikan.
- Elemen “employee” dapat memiliki atribut tipe yang merujuk ke nama tipe kompleks yang akan digunakan:
<xs:element name="employee" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Jika kita menggunakan metode yang dijelaskan di atas, beberapa elemen dapat merujuk ke tipe kompleks yang sama, seperti ini:
<xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Kita juga dapat mendasarkan elemen kompleks pada elemen kompleks yang ada dan menambahkan beberapa elemen, seperti ini:
<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>