عنصر <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"، عنصر "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 معتبر است زیرا schema "family.xsd" به ما اجازه می‌دهد تا ویژگی‌ها را به عنصر "person" اضافه کنیم.

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