عنصر 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
اختیاری. مقدار پیشفرض ویژگی را تعیین میکند. نمیتوان مقدار پیشفرض و مقدار ثابت همزمان استفاده کرد.
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"/>
ویژگیها را به عنوان ویژگیهای اجباری درآورید:
<xs:attribute name="lang" type="xs:string" use="required"/>