XSD <any> एलीमेंट

<any> एलिमेंट हमें XML दस्तावेज को शेषफल द्वारा निर्दिष्ट नहीं होने वाले एलिमेंटों के द्वारा विस्तार करने की क्षमता प्रदान करता है!

<any> एलिमेंट

<any> एलिमेंट हमें XML दस्तावेज को शेषफल द्वारा निर्दिष्ट नहीं होने वाले एलिमेंटों के द्वारा विस्तार करने की क्षमता प्रदान करता है!

यह उदाहरण "family.xsd" नामक XML शेषफल से उद्धारित है। यह "person" एलिमेंट के लिए एक घोषणा प्रदर्शित करता है। <any> एलिमेंट का उपयोग करके, हम विना schema द्वारा निर्दिष्ट किए गए एलिमेंट के माध्यम से "person" की सामग्री को विस्तार कर सकते हैं:

<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>

ऊपरी इस XML फ़ाइल वैध है, क्योंकि schema "family.xsd" हमें "lastname" एलीमेंट के बाद वैकल्पिक एलीमेंट के माध्यम से "person" एलीमेंट को विस्तार करने की अनुमति देता है。

दोनों <any> और <anyAttribute> विस्तारित दस्तावेज़ बनाने के लिए उपयोग किए जा सकते हैं! वे दस्तावेज़ को मुख्य XML schema में घोषित नहीं हुए अतिरिक्त एलीमेंट को समाविष्ट करने की क्षमता देते हैं。