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