با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به شما آموختیم که چگونه می توان از عناصر در DTD بهره برد و آن ها را به کار گرفت. در این جلسه و در ادامه آموزش DTD، آموزش کار با Attributes ها در DTD را به علاقمندان این دوره ارائه می نماییم.
در DTD، سعی می شود Attributes با یک اعلام ATTLIST اعلام شود.
اعلام یک Attribute دارای سینتکسی به صورت زیر است:
1 2 3 4 5 6 7 8 9 | <!ATTLIST element-name attribute-name attribute-type attribute-value> DTD example: <!ATTLIST payment type CDATA "check"> XML example: <payment type="check" /> |
attribute-type ما می تواند به صورت یکی از موارد زیر باشد:
توضیحات | نوع |
مقدار داده کاراکتر است. | CDATA |
باید یکی از مقادیر شمرده شده لیست باشد. | (..|en1|en2) |
مقدار یک id منحصر به فرد است. | ID |
مقدار در واقع id سایر عناصر است. | IDREF |
مقدار یک لیست از سایر id ها است. | IDRES |
مقدار یک نام XML معتبر است. | NMTOKEN |
مقدار یک لیست از یک نام XML معتبر است. | NMTOKENS |
مقدار یک entity است. | ENTITY |
مقدار یک لیست از entities ها است. | ENTITES |
مقدار در واقع نام یک علامت یا notation است. | NOTATION |
مقدار یک مقدار xml از پیش تعریف شده است | :xml |
attribute-value ما می تواند به صورت یکی از موارد زیر باشد:
توضیحات | مقدار |
مقدار پیش فرض attribute | value |
attribute اختیاری | REQUIRED# |
attribute value ثابت | IMPLIED# |
FIXED value# |
1 2 3 4 5 6 | DTD: <!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0"> Valid XML: <square width="100" /> |
در مثال بالا، عنصر “square” به عنوان یک عنصر خالی با attribute آن که “width” است؛ نوع CDATA تعریف می شود.
اگر عرض width مشخص نشده باشد، مقدار پیش فرض آن ۰ است.
1 | <!ATTLIST element-name attribute-name attribute-type #REQUIRED> |
مثال
1 2 3 4 5 6 7 8 | DTD: <!ATTLIST person number CDATA #REQUIRED> Valid XML: <person number="5677" /> Invalid XML: <person /> |
اگر هنوز می خواهید attribute بالا را فعال کنید، و هیچ گزینه دیگری نیز ندارید می توانید از کلمه کلیدی REQUIRED# استفاده کنید.
1 | <!ATTLIST element-name attribute-name attribute-type #IMPLIED> |
مثال
1 2 3 4 5 6 7 8 | DTD: <!ATTLIST contact fax CDATA #IMPLIED> Valid XML: <contact fax="555-667788" /> Valid XML: <contact /> |
اگر نمی خواهید author را شامل را attribute کنید و هیچ انتخاب دیگری نیز برای مقدار پیش فرض ندارید در آن صورت از کلمه کلیدی IMPLIED# استفاده نمایید.
مثال
1 2 3 4 5 6 7 8 | DTD: <!ATTLIST sender company CDATA #FIXED "Microsoft"> Valid XML: <sender company="Microsoft" /> Invalid XML: <sender company="W3Schools" /> |
اگر author دارای مقدار دیگری باشد، تجزیه کننده XML یک خطا را باز می کند در آن صورت اگر می خواهید بدون تغییر author داشته باشید در آن صورت از کلمه کلیدی FIXED# استفاده نمایید.
1 | <!ATTLIST element-name attribute-name (en1|en2|..) default-value> |
مثال
1 2 3 4 5 6 7 | DTD: <!ATTLIST payment type (check|cash) "cash"> XML example: <payment type="check" /> or <payment type="cash" /> |
اگر می خواهید مقدار attribute شما یکی از مقادیر legal ثابت باشد در ان صورت از enumerated attribute values استفاده نمایید.
در این جلسه با آموزش کار با Attributes ها در DTD همراهتان بودیم.
در جلسه بعد به مقایسه عناصر elements های DTD خواهیم پرداخت.
با پی وی لرن همراه باشید.