عنصر any XML Schema

تعریف و استفاده

عنصر any به هر عنصری از فضای نام معین شده اجازه می‌دهد تا در داخل عناصر sequence یا choice نمایش داده شود.

این عنصر به سازنده اجازه می‌دهد تا با استفاده از عناصر غیرتعریف شده در schma، XML مستند را گسترش دهد.

اطلاعات عنصر

مورد توضیح
تعداد ظهور بدون محدودیت
عنصر والد انتخاب،ترتیب
محتوای annotation

زبان

<any
id=ID
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
namespace=namespace
processContents=lax|skip|strict
ویژگی‌های any
>
(annotation?)
</any>

(؟ علامت اعلام عنصر می‌تواند در هر عنصر صفر یا یک بار ظاهر شود.)

ویژگی

id

اختیاری. تعریف شناسه منحصر به فرد این عنصر.

maxOccurs

اختیاری. تعریف حداکثر تعداد بارهای موجودی عنصر any در پدر عنصر. این مقدار باید یک عدد صحیح بزرگتر یا برابر با صفر باشد. برای مشخص کردن که حداکثر تعداد بارها محدود نیست، از رشته "unbounded" استفاده کنید. پیش‌فرض یک است.

minOccurs

اختیاری. تعریف حداقل تعداد بارهای موجودی عنصر any در پدر عنصر. این مقدار باید یک عدد صحیح بزرگتر یا برابر با صفر باشد. برای مشخص کردن این گروه any به عنوان اختیاری، این ویژگی را به صفر تنظیم کنید. پیش‌فرض یک است.

namespace

اختیاری. تعریف نام‌فضاهایی که عناصر قابل استفاده را شامل می‌شوند. اگر نام‌فضا مشخص نشده باشد، پیش‌فرض ##any است. اگر نام‌فضا مشخص شده باشد، باید یکی از موارد زیر باشد:

  • ##any - عناصر از هر نام‌فضایی می‌توانند وجود داشته باشند (پیش‌فرض).
  • ##other - عناصر از هر نام‌فضایی غیر از نام‌فضای هدف پدر عنصر می‌توانند وجود داشته باشند.
  • ##local - عناصر بدون نام‌فضا می‌توانند وجود داشته باشند.
  • ##targetNamespace - عناصر از نام‌فضای هدف پدر عنصر شامل این عنصر می‌توانند وجود داشته باشند.
  • لیستی از مراجعه‌های URI به نام‌فضاها، ##targetNamespace، ##local - عناصر از لیست نام‌فضاهای جدا شده با فاصله می‌توانند وجود داشته باشند. این لیست می‌تواند شامل موارد زیر باشد: مراجعه‌های URI به نام‌فضاهای ##targetNamespace و ##local.

processContents

اختیاری. یک نشانگر که به برنامه یا پردازش‌کننده XML نشان می‌دهد چگونه باید مستند XML را بر اساس عناصری که توسط این عنصر any مشخص شده است، تأیید کند. اگر ویژگی processContents مشخص نشده باشد، پیش‌فرض strict است. اگر processContents مشخص شده باشد، باید یکی از موارد زیر باشد:

  • strict - پردازش‌کننده XML باید شماتیک مورد نیاز از نام‌فضاهای مشخص شده را دریافت کند و تمامی عناصر این نام‌فضاها را تأیید کند. (پیش‌فرض)
  • lax - مانند strict است؛ اما، حتی اگر قادر به دریافت این شماتیک نباشد، هیچ خطایی رخ نمی‌دهد.
  • پرش - پردازش‌کننده XML تمامی عناصر از نام‌فضای مشخص شده را تأیید نمی‌کند.

ویژگی‌های any

اختیاری. تعریف هرگونه ویژگی با نام‌فضای non-schema.

مثال

مثال زیر نشان‌دهنده یک تعریف از عنصر "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>