tutorial pengembangan web terbaru
 

XSD The <any> Element


The <any> elemen memungkinkan kita untuk memperpanjang dokumen XML dengan unsur-unsur tidak ditentukan oleh skema!


The <any> Elemen

The <any> elemen memungkinkan kita untuk memperpanjang dokumen XML dengan unsur-unsur tidak ditentukan oleh skema.

Contoh berikut adalah fragmen dari skema XML yang disebut "family.xsd" . Ini menunjukkan deklarasi untuk "person" elemen. Dengan menggunakan <any> elemen kita dapat memperpanjang (after <lastname>) isi "person" dengan setiap elemen:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
      <xs:any minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Sekarang kita ingin memperpanjang "person" elemen dengan "children" elemen. Dalam hal ini kita bisa melakukannya, bahkan jika penulis skema di atas tidak pernah menyatakan apapun "children" elemen.

Lihatlah berkas skema ini, yang disebut "children.xsd" :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3ii.com"
xmlns="http://www.w3ii.com"
elementFormDefault="qualified">

<xs:element name="children">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="childname" type="xs:string"
      maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

XML file di bawah (called "Myfamily.xml") , menggunakan komponen dari dua skema yang berbeda; "family.xsd" dan "children.xsd" :

<?xml version="1.0" encoding="UTF-8"?>

<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.microsoft.com family.xsd
http://www.w3ii.com children.xsd">

<person>
  <firstname>Hege</firstname>
  <lastname>Refsnes</lastname>
  <children>
    <childname>Cecilie</childname>
  </children>
</person>

<person>
  <firstname>Stale</firstname>
  <lastname>Refsnes</lastname>
</person>

</persons>

File XML di atas adalah valid karena skema "family.xsd" memungkinkan kita untuk memperpanjang "person" elemen dengan elemen opsional setelah "lastname" elemen.

The <any> dan <anyAttribute> elemen yang digunakan untuk membuat dokumen eXtensible! Mereka memungkinkan dokumen mengandung unsur tambahan yang tidak dinyatakan dalam skema XML utama.