عناصر <anyAttribute> XSD

<anyAttribute> علامت کا استعمال سے ہم XML دستاویز کو سکیم کے معین نہیں کئے گئے اثاثوں کے ذریعے توسیع کردیں!

<anyAttribute> علامت

<anyAttribute> علامت کا استعمال سے ہم XML دستاویز کو سکیم کے معین نہیں کئے گئے اثاثوں کے ذریعے توسیع کردیں!

یہ مثال "family.xsd" نام کا XML شکلی کا ایک حصہ ہے۔ یہ "person" علامت کے لئے ایک اعلان کا مظاہرہ کرتا ہے۔ <anyAttribute> علامت کے استعمال سے "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" "element" 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>

این فایل XML معتبر است زیرا شماتیک "family.xsd" به ما اجازه می‌دهد تا ویژگی‌ها را به عنصر "person" اضافه کنیم.

<any> و <anyAttribute> هر دو برای ایجاد مستندات قابل گسترش قابل استفاده هستند! آن‌ها مستندات را قادر می‌سازند تا عناصر اضافی را شامل شوند که در شماتیک اصلی XML معرفی نشده‌اند.