عنصر attribute XML Schema
تعریف و استفاده
عنصر attribute یک ویژگی را تعریف میکند.
اطلاعات عنصر
تعداد ظهور | یک بار در عنصر schema تعریف میشود. در نوع پیچیده یا گروه ویژگیها چندین بار به آن اشاره میشود. |
عنصر والد | attributeGroup،schema،complexType،restriction (simpleContent)،extension (simpleContent)،restriction (complexContent)،extension (complexContent) |
محتوای | annotation،simpleType |
زبان نوشتاری
<attribute default=string fixed=string form=qualified|unqualified id=ID name=NCName ref=QName type=QName use=optional|prohibited|required ویژگیهای هر > (annotation?,(simpleType?)) </attribute>
؟ نشانهای است که نشان میدهد این عنصر میتواند در عنصر attribute صفر یا یک بار استفاده شود.
ویژگی
default
اختیاری. مقدار پیشفرض ویژگی را تعیین میکند. نمیتوان default و fixed با هم استفاده شوند.
fixed
اختیاری. مقدار ثابت ویژگی را تعیین میکند. نمیتوان default و fixed با هم استفاده شوند.
form
اختیاری. فرمت ویژگی را تعیین میکند. مقدار پیشفرض آن مقدار ویژگی attributeFormDefault عنصر schema است. میتواند یکی از موارد زیر باشد:
- qualified - نشاندهنده این است که باید این ویژگی از طریق پیشوند نامفضا و نام بدون پیشوند (NCName) این ویژگی محدود شود.
- "unqualified" - نشاندهنده این است که این ویژگی نیازی به پیشفکس فضای نام ندارد و نیازی به تطابق نام غیر با پیشفکس (NCName) ندارد، یعنی نام محلی.
id
اختیاری. تعیین ID منحصر به فرد این عنصر.
نام
اختیاری. تعیین نام ویژگی. ویژگیهای name و ref نمیتوانند همزمان استفاده شوند.
ارجاع
اختیاری. تعیین ارجاع به ویژگی مشخص شده. ویژگیهای name و ref نمیتوانند همزمان استفاده شوند. اگر ref وجود دارد، عنصر simpleType، form و type نمیتوانند ظاهر شوند.
نوع
اختیاری. تعیین نوع داده داخلی یا نوع ساده. ویژگی type فقط در صورت عدم وجود عنصر simpleType در محتوای آن ظاهر میشود.
استفاده
اختیاری. تعیین نحوه استفاده از این ویژگی. مقادیر زیر قابل تنظیم هستند:
- اختیاری - ویژگی اختیاری است و میتواند هر مقادیری داشته باشد (پیشفرض).
- ممنوع - نمیتوان از ویژگی استفاده کرد.
- لازم - ویژگی الزامی است.
ویژگیهای هر
اختیاری. تعیین هر ویژگی دیگری با نام فضای نام غیر اسکیمای.
مثال
مثال 1
<xs:attribute name="code"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:attribute>
در مثال بالا، ویژگی "code" یک محدودیت دارد. تنها مقادیر قابل پذیرش دو حرف بزرگ نوشته شده از A تا Z هستند.
مثال 2
برای استفاده از تعریف ویژگی موجود در نوع پیچیده برای تعریف یک ویژگی، از ویژگی ref استفاده کنید:
<xs:attribute name="code"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:complexType name="someComplexType"> <xs:attribute ref="code"/> </xs:complexType>
مثال 3
ویژگی میتواند مقادیر پیشفرض داشته باشد و همچنین مقادیر ثابت مشخص شده. در صورت عدم تعیین هیچ یک از مقادیر دیگر، مقادیر پیشفرض به طور خودکار به ویژگی اختصاص داده میشود. در مثال زیر، مقادیر پیشفرض "EN" است:
<xs:attribute name="lang" type="xs:string" default="EN"/>
در صورت عدم تعیین هیچ یک از مقادیر دیگر، مقادیر ثابت به طور خودکار به ویژگی اختصاص داده میشود. اما با مقادیر پیشفرض متفاوت است، اگر مقادیر دیگری غیر از مقادیر ثابت برای ویژگی تعیین کردهاید، مستند به عنوان معتبر نمیتواند بررسی شود. در مثال زیر، مقادیر ثابت "EN" است:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
مثال 4
همه ویژگیها بهطور پیشفرض قابل انتخاب هستند. برای مشخص کردن ویژگیها به عنوان قابل انتخاب، از ویژگی "use" استفاده کنید:
<xs:attribute name="lang" type="xs:string" use="optional"/>
نمونه 4
<xs:attribute name="lang" type="xs:string" use="required"/>