عناصر <any> XSD

عنصر <any> به ما امکان می‌دهد تا با استفاده از عناصر غیر از آنچه در schema تعیین شده است، XML document را گسترش دهیم!

عنصر <any>

عنصر <any> به ما امکان می‌دهد تا با استفاده از عناصر غیر از آنچه در schema تعیین شده است، XML document را گسترش دهیم!

این مثال از یک قطعه از XML schema با نام "family.xsd" است. این قطعه یک تعریف برای عنصر "person" را نشان می‌دهد. با استفاده از عنصر <any>، می‌توانیم محتوای "person" را با هر عنصری (پس از <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" استفاده کنیم. در این حالت می‌توانیم این کار را انجام دهیم، حتی اگر نویسنده این اسکیما هیچگونه عنصر "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" ہم کو "person" عناصر کو "lastname" عناصر کے بعد اختیاری عناصر کے ذریعے توسیع دینے کی اجازت دیتا ہے。

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