Elemen <any> XSD

Elemen <any> memberikan kemampuan untuk mengeksarkan dokumen XML melalui elemen yang belum disyaratkan dalam schema!

Elemen <any>

Elemen <any> memberikan kemampuan untuk mengeksarkan dokumen XML melalui elemen yang belum disyaratkan dalam schema!

Contoh ini diambil dari potongan XML schema yang dinamai "family.xsd". Ini menunjukkan deklarasi untuk elemen "person". Dengan menggunakan elemen <any>, kita dapat mengeksarkan konten "person" melalui elemen apapun (setelah <lastname>):

<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, kami ingin menggunakan elemen "children" untuk memperluas elemen "person" ini. Dalam kasus ini, kami dapat melakukan hal ini, walaupun penulis schema di atas belum menyatakan elemen "children" apapun.

Lihat berkas schema ini, yang dinamai "children.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.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>

Di bawah ini berkas XML (dengan nama "Myfamily.xml") yang menggunakan komponen dari dua schema yang berbeda, "family.xsd" dan "children.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<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.codew3c.com children.xsd">
<person>
<firstname>David</firstname>
<lastname>Smith</lastname>
<children>
  <childname>mike</childname>
</children>
</person>
<person>
<firstname>Tony</firstname>
<lastname>Smith</lastname>
</person>
</persons>

Berkas XML di atas adalah yang berlaku, hal ini disebabkan schema "family.xsd" memungkinkan kami untuk memperluas elemen "person" melalui elemen pilihan setelah elemen "lastname".

Elemen <any> dan <anyAttribute> keduanya dapat digunakan untuk membuat dokumen yang dapat diperluas! Mereka memungkinkan dokumen untuk mengandung elemen ekstra yang belum di deklarasikan di schema XML utama.