Elemen <anyAttribute> XSD
- Halaman Sebelumnya XSD <any>
- Halaman Berikutnya Penggantian Elemen XSD
Elemen <anyAttribute> memberikan keupayaan untuk meluaskan dokumen XML melalui atribut yang tidak disyaratkan oleh schema!
Elemen <anyAttribute>
Elemen <anyAttribute> memberikan keupayaan untuk meluaskan dokumen XML melalui atribut yang tidak disyaratkan oleh schema!
Contoh yang disediakan adalah fragmen daripada XML schema yang dinamakan "family.xsd". Ia menunjukkan pengumuman untuk elemen "person". Dengan menggunakan elemen <anyAttribute>, kami dapat menambah sejumlah besar atribut kepada 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>
现在,我们希望通过 "gender" 属性来扩展 "person" 元素。在这种情况下我们就可以这样做,即使这个 schema 的作者从未声明过任何 "gender" 属性。
请看这个 schema 文件,名为 "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>
下面这个 XML(名为 "Myfamily.xml"),使用了来自不同 schema 的成分,"family.xsd" 和 "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>
Dokumen XML di atas adalah sah kerana schema "family.xsd" membenarkan kami untuk menambah atribut kepada elemen "person".
Elemen <any> dan <anyAttribute> boleh digunakan untuk membuat dokumen yang dapat diperluas! Mereka membolehkan dokumen mengandungi elemen tambahan yang belum di deklarasikan dalam schema XML utama.
- Halaman Sebelumnya XSD <any>
- Halaman Berikutnya Penggantian Elemen XSD