عنصر XSD <any>

عنصر <any> يمنحنا القدرة على توسيع وثيقة XML باستخدام عناصر لم يتم تحديد في النموذج!

<any> عنصر

عنصر <any> يمنحنا القدرة على توسيع وثيقة XML باستخدام عناصر لم يتم تحديد في النموذج!

هذا المثال هو جزء من نموذج XML المسمى "family.xsd". يعرض بيان عن عنصر "person". يمكننا توسيع محتوى "person" باستخدام عنصر <any> من خلال أي عنصر (بعد <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.