Tutorial XML

RUMAH XML Pengantar XML XML Cara menggunakan Pohon XML Sintaks XML Elemen XML Atribut XML Ruang Nama XML Tampilan XML XML HttpRequest Pengurai XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validator XML XML DTD Skema XML Server XML Contoh XML Kuis XML Sertifikat XML

XML AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

XML DOM

Pengenalan DOM Node DOM Mengakses DOM Info Simpul DOM Daftar Simpul DOM Melintasi DOM Navigasi DOM DOM Dapatkan Nilai DOM Ubah Node DOM Hapus Node DOM Ganti Node DOM Buat Node DOM Tambahkan Node Node Klon DOM Contoh DOM

Tutorial XPath

Pengenalan XPath Node XPath Sintaks XPath Sumbu XPath Operator XPath Contoh XPath

Tutorial XSLT

Pengenalan XSLT Bahasa XSL Transformasi XSLT XSLT <templat> XSLT <nilai-dari> XSLT <untuk-setiap> XSLT <sort> XSLT <jika> XSLT <pilih> Terapkan XSLT XSLT di Klien XSLT di Server XSLT Sunting XML Contoh XSLT

Tutorial XQuery

Pengenalan XQuery Contoh XQuery XQuery FLWOR HTML XQuery Persyaratan XQuery Sintaks XQuery Tambahkan XQuery XQuery Pilih Fungsi XQuery

XML DTD

Pengenalan DTD Blok Bangunan DTD Elemen DTD Atribut DTD Elemen DTD vs Attr Entitas DTD Contoh DTD

Skema XSD

Pengenalan XSD XSD Bagaimana caranya? XSD <skema> Elemen XSD Atribut XSD Pembatasan XSD

Kompleks XSD

Elemen XSD XSD Kosong Elemen XSD Saja Hanya Teks XSD Campuran XSD Indikator XSD XSD <apa saja> XSD <anyAttribute> Pergantian XSD Contoh XSD

Data XSD

String XSD Tanggal XSD XSD Numerik XSD Lain-lain Referensi XSD

Layanan Web

Layanan XML XML WSDL XML SOAP XML RDF XML RSS

Referensi

Jenis Node DOM Simpul DOM Daftar Simpul DOM DOM BernamaNodeMap Dokumen DOM Elemen DOM Atribut DOM Teks DOM DOM CDATA Komentar DOM DOM XMLHttpRequest Pengurai DOM Elemen XSLT Fungsi XSLT/XPath

Substitusi Elemen XSD


Dengan Skema XML, satu elemen dapat menggantikan elemen lain.


Substitusi Elemen

Katakanlah kami memiliki pengguna dari dua negara berbeda: Inggris dan Norwegia. Kami ingin kemampuan untuk membiarkan pengguna memilih apakah dia ingin menggunakan nama elemen Norwegia atau nama elemen bahasa Inggris dalam dokumen XML.

Untuk mengatasi masalah ini, kita bisa mendefinisikan substitusiGroup dalam skema XML. Pertama, kami mendeklarasikan elemen kepala dan kemudian kami mendeklarasikan elemen lain yang menyatakan bahwa mereka dapat disubstitusikan untuk elemen kepala.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

Dalam contoh di atas, elemen "nama" adalah elemen kepala dan elemen "navn" dapat disubstitusikan untuk "nama".

Lihat fragmen skema XML ini:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Dokumen XML yang valid (menurut skema di atas) dapat terlihat seperti ini:

<customer>
  <name>John Smith</name>
</customer>

atau seperti ini:

<kunde>
  <navn>John Smith</navn>
</kunde>


Substitusi Elemen Pemblokiran

Untuk mencegah elemen lain menggantikan dengan elemen tertentu, gunakan atribut blok:

<xs:element name="name" type="xs:string" block="substitution"/>

Lihat fragmen skema XML ini:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Dokumen XML yang valid (menurut skema di atas) terlihat seperti ini:

<customer>
  <name>John Smith</name>
</customer>

TAPI INI TIDAK LAGI BERLAKU:

<kunde>
  <navn>John Smith</navn>
</kunde>

Menggunakan SubstitusiGroup

Jenis elemen yang dapat disubstitusikan harus sama dengan, atau berasal dari, jenis elemen kepala. Jika jenis elemen yang dapat disubstitusikan sama dengan jenis elemen kepala, Anda tidak perlu menentukan jenis elemen yang dapat disubstitusikan.

Perhatikan bahwa semua elemen dalam Grup substitusi (elemen kepala dan elemen yang dapat diganti) harus dideklarasikan sebagai elemen global, jika tidak maka tidak akan berfungsi!


Apa itu Elemen Global?

Elemen global adalah elemen yang merupakan anak langsung dari elemen "skema"! Elemen lokal adalah elemen yang bersarang di dalam elemen lain.