tutorial pengembangan web terbaru
 

XSD Elements Complex


Unsur kompleks mengandung unsur dan / atau atribut lainnya.


Apa yang dimaksud dengan Element Complex?

Unsur kompleks merupakan elemen XML yang mengandung unsur dan / atau atribut lainnya.

Ada empat macam elemen yang kompleks:

  • elemen kosong
  • unsur-unsur yang hanya berisi unsur-unsur lain
  • elemen yang hanya berisi teks
  • unsur-unsur yang mengandung unsur-unsur lain dan teks

Note: Masing-masing elemen dapat berisi atribut juga!


Contoh Elemen Complex

Sebuah elemen XML kompleks, "product" , yang kosong:

<product pid="1345"/>

Sebuah elemen XML kompleks, "employee" , yang hanya berisi unsur-unsur lain:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

Unsur kompleks XML, "food" , yang hanya berisi teks:

<food type="dessert">Ice cream</food>

Sebuah elemen XML kompleks, "description" , yang berisi kedua elemen dan teks:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>

Cara Menentukan Elemen Complex

Lihatlah ini elemen XML kompleks, "employee" , yang hanya berisi unsur-unsur lain:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

Kita dapat mendefinisikan elemen kompleks dalam XML Schema dua cara yang berbeda:

1. "employee" elemen dapat dinyatakan langsung oleh penamaan elemen, 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 Anda menggunakan metode yang dijelaskan di atas, hanya "employee" elemen dapat menggunakan tipe kompleks yang ditentukan. Perhatikan bahwa elemen anak, "firstname" dan "lastname" , dikelilingi oleh <sequence> indikator. Ini berarti bahwa elemen anak harus muncul dalam urutan yang sama seperti mereka dinyatakan. Anda akan belajar lebih banyak tentang indikator dalam bab XSD Indikator.

2. "employee" elemen dapat memiliki atribut tipe yang mengacu pada nama jenis kompleks untuk 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 Anda menggunakan metode yang dijelaskan di atas, beberapa elemen dapat merujuk pada jenis 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>

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