Home » XML » XSD : Elemen Kompleks – Pengertian dan Contohnya

XSD : Elemen Kompleks – Pengertian dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Elemen kompleks berisi elemen dan / atau atribut lain.

Pengertian Elemen Kompleks

Elemen kompleks adalah elemen XML yang berisi elemen dan / atau atribut lain.

Ada empat jenis elemen kompleks:

  1. elemen kosong
  2. elemen yang hanya berisi elemen lain
  3. elemen yang hanya berisi teks
  4. 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:

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

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

You may also like