ایکس ایس ڈی <anyAttribute> عنصر

<any> عناصر کا استعمال، XML دستاویز کو اسکیما کے مقرر نہ کئے گئے عناصر کے ذریعے توسیع دینے کی صلاحیت فراہم کرتا ہے!

<any> عناصر

<any> عناصر کا استعمال، XML دستاویز کو اسکیما کے مقرر نہ کئے گئے عناصر کے ذریعے توسیع دینے کی صلاحیت فراہم کرتا ہے!

یہ مثال "family.xsd" نام کا XML اسکیما سے منسوب ہے۔ یہ "person" عناصر کے لیے اعلان کا نمونہ پیش کرتا ہے۔ <any> عناصر کا استعمال کرکے، ہم کسی بھی عناصر ( <lastname> کے بعد) کے ذریعے "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 فائل معتبر ہے، یہ اس لئے ہے کہ اسکیم "family.xsd" نے ہم کو "person" عنصر کو "lastname" عنصر کے بعد کے اختیاری عنصر کے ذریعے وسعت دینے کی اجازت دی ہے۔

<any> اور <anyAttribute> دونوں کا استعمال کیا جاسکتا ہے تاکہ قابل انعطاف دستاویز بنایا جاسکے! وہ دستاویز کو اس بات کی صلاحیت فراہم کرتے ہیں کہ وہ ایسے اضافی عناصر کا حامل ہو جو مین اے ایل ایس میں دکھایا نہیں گیا ہو