DTD - ویژگیها
- صفحهی قبل عناصر DTD
- صفحهی بعدی مقایسهی عناصر DTD با ویژگیها
در DTD، ویژگیها از طریق استفاده از ATTLIST برای اعلام آنها انجام میشود.
اعلام ویژگی
استفاده از گرامر زیر برای اعلام ویژگیها است:
<!ATTLIST نام_عنصر نام_ویژگی نوع_ویژگی مقدار_默认>
مثال DTD:
<!ATTLIST payment type CDATA "check">
مثال XML:
<payment type="check" />
در زیر آمده است:نوع ویژگیگزینههای:
نوع | توضیح |
---|---|
CDATA | مقدار باید دادهی نماتیک (character data) باشد |
(en1|en2|..) | این مقدار یکی از مقادیر لیست انیگونی است |
ID | مقدار باید یک id منحصر به فرد باشد |
IDREF | مقدار باید id یک عنصر دیگر باشد |
IDREFS | لیست دیگری از idهای دیگر |
NMTOKEN | مقدار باید نام معتبر XML باشد |
NMTOKENS | ارزش یک لیست از نامهای معتبر XML است |
ENTITY | ارزش یک فرانت است |
ENTITIES | ارزش یک لیست از فرانتهای است |
NOTATION | این ارزش نام یک نماد است |
xml: | ارزش یک ارزش پیشفرض XML است |
پارامترهای ارزش پیشفرض میتوانند از ارزشهای زیر استفاده کنند:
ارزش | توضیح |
---|---|
ارزش | ارزش پیشفرض attribute |
#REQUIRED | ارزش attribute ضروری است |
#IMPLIED | attribute ضروری نیست |
#FIXED value | ارزش attribute ثابت است |
تعیین یک ارزش پیشفرض برای attribute
DTD:
!ELEMENT square EMPTY> !ATTLIST square width CDATA "0">
XML معتبر:
<square width="100" />
در مثال بالا، "square" به عنوان یک عنصر خالی با نوع attribute "width" و نوع CDATA تعریف شده است. اگر عرض تنظیم نشده باشد، ارزش پیشفرض آن 0 است.
#IMPLIED
قانونگذاری
!ATTLIST عناصر نام attribute نوع attribute #IMPLIED>
مثال
DTD:
!ATTLIST contact fax CDATA #IMPLIED>
XML معتبر:
<contact fax="555-667788" />
XML معتبر:
<contact />
اگر نمیخواهید نویسنده attribute را اجباری کنید و گزینه ارزش پیشفرض ندارید، از کلمه کلیدی #IMPLIED استفاده کنید.
#REQUIRED
قانونگذاری
!ATTLIST عناصر نام attribute نوع attribute #REQUIRED>
مثال
DTD:
!ATTLIST person number CDATA #REQUIRED>
XML معتبر:
<person number="5677" />
XML نامشروع:
<person />
اگر گزینه ارزش پیشفرض ندارید، اما همچنان میخواهید نویسنده attribute را اجباری کند، از کلمه کلیدی #REQUIRED استفاده کنید.
#FIXED
قانونگذاری
!ATTLIST عناصر نام attribute نوع attribute #FIXED "value">
مثال
DTD:
!ATTLIST sender company CDATA #FIXED "Microsoft">
XML معتبر:
<sender company="Microsoft" />
XML نامشروع:
<sender company="W3School" />
اگر میخواهید attribute دارای ارزش ثابت باشد و نویسنده نتواند این ارزش را تغییر دهد، از کلمه کلیدی #FIXED استفاده کنید. اگر نویسنده از ارزش متفاوتی استفاده کند، کارخانهی پردازش XML خطا بازمیگرداند.
ارائه ارزشهای attribute
قانونگذاری:
!ATTLIST عناصر نام attribute (en1|en2|..) ارزش پیشفرض>
مثال DTD:
!ATTLIST payment type (check|cash) "cash">
مثال XML:
<payment type="check" />
یا
<payment type="cash" />
اگر میخواهید مقدار ویژگیها یکی از مجموعهای از مقادیر مجاز ثابت باشد، از ویژگیهای لیستی استفاده کنید.
- صفحهی قبل عناصر DTD
- صفحهی بعدی مقایسهی عناصر DTD با ویژگیها