XSD <anyAttribute> 元素
Elemen <anyAttribute> memberikan kemampuan untuk memperluas dokumen XML melalui properti yang belum disepakati oleh schema!
Elemen <anyAttribute>
Elemen <anyAttribute> memberikan kemampuan untuk memperluas dokumen XML melalui properti yang belum disepakati oleh schema!
Contoh di bawah ini adalah bagian dari XML schema yang bernama "family.xsd". Ini menunjukkan deklarasi untuk elemen "person". Dengan menggunakan elemen <anyAttribute>, kita dapat menambahkan sejumlah properti 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, kami berharap dapat memperluas elemen "person" melalui atribut "gender" ini. Dalam kasus ini, kami dapat melakukan hal ini, walaupun penulis schema tidak pernah mengumumkan atribut "gender" apapun.
Lihat berkas schema ini, yang dinamai "attribute.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:attribute name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:schema>
Di bawah ini adalah XML (dengan nama "Myfamily.xml"), yang menggunakan komponen dari schema yang berbeda, "family.xsd" dan "attribute.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 attribute.xsd"> <person gender="female"> <firstname>Jane</firstname> <lastname>Smith</lastname> </person> <person gender="male"> <firstname>David</firstname> <lastname>Smith</lastname> </person> </persons>
上面的这个 XML 文件是有效的,这是因为 schema "family.xsd" 允许我们向 "person" 元素添加属性。
在 <any> 和 <anyAttribute> 均可用于创建可扩展的文档!它们使文档能够包含在主 XML schema 中未声明的附加元素。