XSD Elemen <anyAttribute>
Elemen <anyAttribute> memungkinkan kita untuk memperluas dokumen XML dengan atribut yang tidak ditentukan oleh skema!
Elemen <anyAttribute>
Elemen <anyAttribute> memungkinkan kita untuk memperluas dokumen XML dengan atribut yang tidak ditentukan oleh skema.
Contoh berikut adalah fragmen dari skema XML yang disebut "family.xsd". Ini menunjukkan deklarasi untuk elemen "orang". Dengan menggunakan elemen <anyAttribute> kita dapat menambahkan sejumlah atribut ke elemen "person":
<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 memperluas elemen "person" dengan atribut "eyecolor". Dalam hal ini kita dapat melakukannya, bahkan jika pembuat skema di atas tidak pernah mendeklarasikan atribut "warna mata".
Lihat file skema ini, yang disebut "attribute.xsd":
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.com"
elementFormDefault="qualified">
<xs:attribute name="eyecolor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="blue|brown|green|grey"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
File XML di bawah ini (disebut "Myfamily.xml"), menggunakan komponen dari dua skema 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
https://www.w3schools.com attribute.xsd">
<person eyecolor="green">
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
</person>
<person eyecolor="blue">
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
File XML di atas valid karena skema "family.xsd" memungkinkan kita untuk menambahkan atribut ke elemen "person".
Elemen <any> dan <anyAttribute> digunakan untuk membuat dokumen EXTENSIBLE! Mereka mengizinkan dokumen berisi elemen tambahan yang tidak dideklarasikan dalam skema XML utama.