عنصر any XML Schema

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

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

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

اطلاعات عنصر

پروژه توضیح
تعداد دفعات ظاهر بدون محدودیت
عنصر والد choice،sequence
محتوای annotation

نحوه‌ی استفاده

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

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

ویژگی

id

قابل انتخاب. تعریف می‌کند ID منحصر به فرد این عنصر.

maxOccurs

قابل انتخاب. تعریف می‌کند که هر عنصر در عنصر والد خود می‌تواند چندین بار ظاهر شود. این مقدار می‌تواند یک عدد صحیح غیر منفی باشد. اگر نمی‌خواهید هیچ محدودیتی برای تعداد دفعات بیشینه تعیین کنید، از رشته «unbounded» استفاده کنید. مقدار پیش‌فرض 1 است.

minOccurs

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

namespace

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

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

processContents

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

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

ویژگی‌های any

اختیاری. مشخص می‌کند هرگونه ویژگی غیرشکلی با نام‌ فضایی مشخص دارنده.

مثال

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