Latest web development tutorials

XML Schema elemen kompleks

elemen kompleks mengandung unsur dan / atau atribut lainnya.


h2> Apa elemen komposit?

elemen komposit mengacu pada elemen XML yang mengandung unsur dan / atau atribut lainnya.

Ada empat jenis elemen komposit:

  • elemen kosong
  • Mengandung unsur-unsur lain dari
  • Elemen hanya berisi teks
  • Elemen mengandung unsur dan teks

Catatan: Unsur-unsur di atas dapat berisi atribut!


Contoh elemen komposit

elemen komposit, "produk", kosong:

<product pid="1345"/>

elemen komposit, "karyawan", hanya unsur-unsur lain:

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

Kompleks elemen XML, "makanan", yang hanya berisi teks:

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

Kompleks elemen XML, "description" mengandung unsur dan teks:

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


Cara untuk menentukan elemen kompleks?

Lihatlah elemen XML kompleks ini, "karyawan", hanya unsur-unsur lain:

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

Dalam XML Schema, kita memiliki dua cara untuk menentukan unsur-unsur yang kompleks:

1. Nama elemen langsung ke "karyawan" elemen deklarasi, 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, satu-satunya "karyawan" dapat menggunakan jenis kompleks ditentukan. Harap dicatat bahwa elemen anaknya, "firstname" dan "nama belakang", dikelilingi oleh indikator <urutan> di. Ini berarti bahwa elemen anak harus muncul dalam urutan mereka dinyatakan. Anda akan XSD Indikator mempelajari lebih lanjut tentang indikator di bagian ini.

2. "karyawan" elemen dapat menggunakan jenis atribut, peran atribut ini adalah referensi ke 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, dapat digunakan oleh sejumlah elemen dari 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 lebih elemen komposit yang ada untuk secara elemen komposit, dan kemudian 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>