(XSD )
عنصر «any» در XSD اجازه افزودن «عنصر (Element)»های اضافی را می دهد. بنابراین، سند قابل گسترش می شود و انعطاف می گیرد. مثل دفتر مشق که هر وقت لازم شد برگه جدید اضافه می کنی.
کاربرد عنصر any
وقتی طرح واره دقیق نیست، اما می خواهی جا برای آینده بگذاری، از any استفاده کن. این عنصر اجازه می دهد بعد از بخش های مشخص، عناصر ناشناخته بیایند.
<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>
نکته: با minOccurs برابر 0، عنصر اضافی اختیاری می شود. بنابراین طرح واره سخت گیر نمی ماند.
تعریف عنصر جدید در طرح واره جدا
می توانی عنصر جدید را در طرح واره جدا تعریف کنی. سپس آن را کنار طرح واره اصلی مصرف کنی.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.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>
نمونه سند با دو طرح واره
اینجا سند از family.xsd و children.xsd با هم استفاده می کند. عنصر children به کمک any مجاز است.
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.microsoft.com family.xsd https://www.w3schools.com children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
راهنمای عملی کوتاه
- محل مجاز را با sequence مشخص کن.
- any را اضافه کن و minOccurs را تنظیم کن.
- عنصر جدید را در طرح واره جدا تعریف کن.
هشدار: استفاده بی رویه از any اعتبارسنجی را سست می کند. فقط جایی بگذار که واقعاً لازم است.
جمع بندی سریع
- any اسناد را قابل گسترش می کند.
- minOccurs کنترل اختیاری بودن است.
- می توانی طرح واره جدا برای عناصر نو داشته باشی.
- زیاده روی نکن؛ اعتبارسنجی مهم است.
عنصر any در XSD با نشانگرها بهتر فهم می شود.
anyAttribute برای ویژگی های اضافی به کار می رود.