tutorial pengembangan web terbaru
 

XSD The <anyAttribute> Element


The <anyAttribute> elemen memungkinkan kita untuk memperpanjang dokumen XML dengan atribut tidak ditentukan oleh skema!


The <anyAttribute> Elemen

The <anyAttribute> elemen memungkinkan kita untuk memperpanjang dokumen XML dengan atribut tidak ditentukan oleh skema.

Contoh berikut adalah fragmen dari skema XML yang disebut "family.xsd" . Ini menunjukkan deklarasi untuk "person" elemen. Dengan menggunakan <anyAttribute> elemen kita dapat menambahkan sejumlah atribut ke "person" elemen:

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

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

Lihatlah berkas skema ini, yang disebut "attribute.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:attribute name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>

</xs:schema>

XML file di bawah (called "Myfamily.xml") , menggunakan komponen dari dua skema yang berbeda; "family.xsd" dan "attribute.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 attribute.xsd">

<person gender="female">
  <firstname>Hege</firstname>
  <lastname>Refsnes</lastname>
</person>

<person gender="male">
  <firstname>Stale</firstname>
  <lastname>Refsnes</lastname>
</person>

</persons>

File XML di atas adalah valid karena skema "family.xsd" memungkinkan kita untuk menambahkan atribut ke "person" 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.