Elemen <any> XSD

Elemen <any> memberikan keupayaan bagi kami untuk meluaskan dokumen XML melalui elemen yang belum diatur skema!

Elemen <any>

Elemen <any> memberikan keupayaan bagi kami untuk meluaskan dokumen XML melalui elemen yang belum diatur skema!

Contoh ini adalah potongan daripada skema XML yang dinamakan "family.xsd". Ia menunjukkan deklarasi untuk elemen "person". Dengan menggunakan elemen <any>, kami dapat meluaskan kandungan "person" melalui elemen apapun (sempat berikutnya <lastname>):

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

现在,我们希望使用 "children" 元素来扩展 "person" 元素。在这种情况下我们就可以这么做,即使以上这个 schema 的作者没有声明任何 "children" 元素。

请看这个 schema 文件,名为 "children.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:element name="children">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="childname" type="xs:string"
      maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

下面这个 XML 文件(名为 "Myfamily.xml"),使用了来自两个不同的 schema 中的成分,"family.xsd" 和 "children.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 children.xsd">
<person>
<firstname>David</firstname>
<lastname>Smith</lastname>
<children>
  <childname>mike</childname>
</children>
</person>
<person>
<firstname>Tony</firstname>
<lastname>Smith</lastname>
</person>
</persons>

Dokumen XML di atas adalah sah kerana schema "family.xsd" membenarkan kami untuk meluaskan elemen "person" melalui elemen pilihan selepas elemen "lastname".

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.