عنصر 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>