عنصر anyAttribute في XML Schema

التعريف والاستخدام

يُمكن للعنصر anyAttribute أن يُمكّن المُنشئ من توسيع وثيقة XML من خلال خاصيات لم يتم تحديدها من قبل schema.

معلومات عن العنصر

المشروع شرح
عدد المرات التي تظهر فيها بدون قيود
العمود الأب complexType،restriction (simpleContent)،extension (simpleContent),restriction (complexContent),extension (complexContent),attributeGroup
المحتوى ملاحظة

النحو

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
خصائص أي
>
(ملاحظة?)
</anyAttribute>

(؟ يوضح أن العنصر يمكن أن يظهر صفر مرة أو مرة واحدة داخل عنصر anyAttribute).

خصائص

id

اختياري. يحدد ID الفريد لهذا العنصر.

مساحة الاسمية

اختياري. يحدد مساحة الاسمية التي يمكن استخدام العناصر فيها. إذا لم يتم تحديد المساحة الاسمية، فإن القيمة الافتراضية هي ##any. إذا تم تحديد المساحة الاسمية، يجب أن تكون واحدة من القيم التالية.

  • ##any - يمكن أن تظهر العناصر من أي مساحة اسمية (الافتراضي).
  • ##other - يمكن أن تظهر العناصر من أي مساحة اسمية خارج مساحة الاسمية المستهدفة للعنصر الوالدي.
  • ##local - يمكن أن تظهر العناصر التي ليست محددة من قبل مساحة اسمية.
  • ##targetNamespace - يمكن أن تظهر العناصر من المساحة الاسمية المستهدفة للعنصر الوالدي الذي يحتوي على هذا العنصر.
  • قائمة من إشارات URI للمساحات الاسمية، ##targetNamespace، ##local - يمكن أن تظهر العناصر من قائمة المساحات الاسمية المفصولة بالفضاءات. يمكن أن تحتوي القائمة على ما يلي: إشارات URI للمساحات الاسمية ##targetNamespace و##local.

processContents

اختياري. مؤشر يحدد كيفية معالجة تطبيق أو معالج XML للتحقق من صحة مستند XML بناءً على العنصر المحدد من قبل هذا العنصر any. إذا لم يتم تحديد خصائص processContents، فإن القيمة الافتراضية هي strict. إذا تم تحديد processContents، يجب أن تكون واحدة من القيم التالية.

  • شديد التحديد - يجب على معالج XML الحصول على النموذج المطلوب من المساحة الاسمية المحددة، ويجب التحقق من جميع العناصر القادمة من هذه المساحات الاسمية. (الافتراضي)
  • بسيط - مثل strict؛ ولكن، حتى لو لم يتمكن من الحصول على النموذج، لن يحدث أي خطأ.
  • تخطي - معالج XML لا يحاول التحقق من جميع العناصر القادمة من المساحة الاسمية المحددة.

خصائص أي

اختياري. يحدد أي خصائص أخرى تحتوي على مساحة اسمية غير النموذجية.

مثال

مثال أدناه يوضح بيانات "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>