عنصر any XML Schema

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

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

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

اطلاعات عنصر

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

زبان نوشتاری

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

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

ویژگی

id

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

maxOccurs

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

minOccurs

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

namespace

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

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

processContents

اختیاری. یک نشانه‌دهنده که نشان می‌دهد برنامه یا پردازش‌کننده XML باید چگونه تأیید XML مستند را با استفاده از عناصر مشخص‌شده توسط این عنصر any انجام دهد. اگر attribute 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>