عنصر anyAttribute XML Schema

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

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

اطلاعات عنصر

پروژه توضیح
تعداد ظهور بدون محدودیت
پدر عنصر complexType،restriction (simpleContent)،extension (simpleContent),restriction (complexContent),extension (complexContent),attributeGroup
محتوای توضیح

نحوه نوشتن

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
ویژگی‌های any
>
(توضیح؟)
</anyAttribute>

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

ویژگی‌ها

id

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

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" است. با استفاده از علامت <anyAttribute>، سازنده می‌تواند تعداد نامحدودی از ویژگی‌ها را به عنصر "person" اضافه کند:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
    <xs:anyAttribute/>
  </xs:complexType>
</xs:element>