Home » XML » XSD : Elemen anyAttribute – Kode dan Contohnya

XSD : Elemen anyAttribute – Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

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 “person”. 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 akan memperluas elemen “person” dengan atribut “eyecolor”. Dalam hal ini kita bisa melakukannya, meskipun pembuat skema di atas tidak pernah mendeklarasikan atribut “eyecolor”.

Lihat file skema ini, yang disebut “atribut.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 yaitu “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>David</firstname>
  <lastname>Bechkam</lastname>
</person>

<person eyecolor="blue">
  <firstname>Stella</firstname>
  <lastname>Marina</lastname>
</person>

</persons>

File XML di atas valid karena skema “family.xsd” memungkinkan kita menambahkan atribut ke elemen “person”.

Elemen <any> dan <anyAttribute> digunakan untuk membuat dokumen MUNGKIN! Hal ini memungkinkan dokumen berisi elemen tambahan yang tidak dideklarasikan dalam skema XML utama.

You may also like