ویژگی ها (DTD Attributes)
اینجا با «ویژگی (Attribute)» در DTD آشنا می شویم. ویژگی، اطلاعات اضافه یک عنصر است؛ مثل برچسب روی دفتر. در DTD با اعلان «ATTLIST!» قانونِ نوع و مقدار ویژگی را تعیین می کنیم.
اعلان ویژگی (ATTLIST)
ساختار کلی اعلان ویژگی در DTD این گونه است. نام عنصر، بعد نام ویژگی، بعد نوع و در پایان مقدار پیش فرض یا قاعده مقدار.
<!ATTLIST element-name attribute-name attribute-type attribute-value>
<!ATTLIST payment type CDATA "check">
<payment type="check" />
نوع ویژگی (attribute-type)
نوع ویژگی مشخص می کند چه چیزی مجاز است. چند نمونه مهم از منبع:
- CDATA: مقدارْ متن عادی است.
- (en1|en2|..): مقدار باید یکی از فهرست باشد.
- ID: مقدارْ شناسه یکتا است.
- IDREF / IDREFS: ارجاع به شناسه عنصر(ها).
- NMTOKEN / NMTOKENS: نام(های) معتبر XML.
- ENTITY / ENTITIES: مقدارْ موجودیت(ها) است.
- NOTATION: نام یک notation.
- xml:: مقادیر از پیش تعریف شده xml.
قاعده مقدار (attribute-value)
این بخش می گوید ویژگی الزامی است یا اختیاری یا مقدار ثابت دارد.
- "value": مقدار پیش فرض ویژگی.
- #REQUIRED: وجود ویژگی اجباری است.
- #IMPLIED: ویژگی اختیاری است.
- #FIXED "value": مقدارْ ثابت و تغییرناپذیر است.
مقدار پیش فرض (Default)
اگر نویسنده مقدار ندهد، مقدار پیش فرض اعمال می شود؛ مثل نمره صفر تا وقتی نمره جدید بیاید.
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
<square width="100" />
#REQUIRED (اجباری)
وقتی حتماً باید ویژگی بیاید، از #REQUIRED استفاده کن؛ مثل کارت دانش آموزی.
<!ATTLIST person number CDATA #REQUIRED>
<person number="5677" />
<!-- <person /> نامعتبر است -->
#IMPLIED (اختیاری)
وقتی نویسنده مختار است ویژگی را نیاورد و پیش فرضی هم نداریم.
<!ATTLIST contact fax CDATA #IMPLIED>
<contact fax="555-667788" />
<contact />
#FIXED (ثابت)
می خواهی همیشه یک مقدار خاص باشد؟ با #FIXED قفلش کن.
<!ATTLIST sender company CDATA #FIXED "Microsoft">
<sender company="Microsoft" />
<!-- <sender company="W3Schools" /> نامعتبر است -->
مقادیر شمارشی (Enumerated)
وقتی فقط چند انتخاب مجاز است، فهرست را با | بساز؛ مثل منوی سلف.
<!ATTLIST payment type (check|cash) "cash">
<payment type="check" />
<payment type="cash" />
گام های عملی
- عنصر هدف را مشخص کن.
- نام ویژگی و نوع مناسب را انتخاب کن.
- قاعده مقدار را تعیین کن: پیش فرض، REQUIRED، IMPLIED، یا FIXED.
- اگر لازم است، مقادیر شمارشی را لیست کن.
نکته: برای ارجاع بین عناصر از ID و IDREF استفاده کن تا لینک ها معتبر بمانند.
مطالب مرتبط: عناصر DTD · بلوک های سازنده DTD · مقدمه DTD.
جمع بندی سریع
- ATTLIST قانون ویژگی را تعریف می کند.
- CDATA متن آزاد است؛ فهرست یعنی انتخاب محدود.
- #REQUIRED اجباری، #IMPLIED اختیاری، #FIXED ثابت است.
- ID یکتا است؛ IDREF ارجاع به ID دیگر است.
- پیش فرض فقط وقتی مقدار نیاید اعمال می شود.