DTD - Thuộc tính
Trong DTD, các thuộc tính được khai báo bằng khai báo ATTLIST.
Khai báo thuộc tính
Một khai báo thuộc tính có cú pháp như sau:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
Loại thuộc tính có thể là một trong những loại sau:
Type | Description |
---|---|
CDATA | The value is character data |
( en1 | en2 |..) | The value must be one from an enumerated list |
ID | The value is a unique id |
IDREF | The value is the id of another element |
IDREFS | The value is a list of other ids |
NMTOKEN | The value is a valid XML name |
NMTOKENS | The value is a list of valid XML names |
ENTITY | The value is an entity |
ENTITIES | The value is a list of entities |
NOTATION | The value is a name of a notation |
xml: | The value is a predefined xml value |
Giá trị thuộc tính có thể là một trong những giá trị sau:
Value | Explanation |
---|---|
value | The default value of the attribute |
#REQUIRED | The attribute is required |
#IMPLIED | The attribute is optional |
#FIXED value | The attribute value is fixed |
Giá trị thuộc tính mặc định
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
Trong ví dụ trên, phần tử "vuông" được xác định là phần tử trống có thuộc tính "chiều rộng" thuộc loại CDATA. Nếu không chỉ định chiều rộng thì nó có giá trị mặc định là 0.
#YÊU CẦU
Cú pháp
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Ví dụ
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Sử dụng từ khóa #REQUIRED nếu bạn không có tùy chọn cho giá trị mặc định nhưng vẫn muốn buộc thuộc tính phải hiện diện.
#BAO HÀM
Cú pháp
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Ví dụ
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Sử dụng từ khóa #IMPLIED nếu bạn không muốn buộc tác giả đưa vào một thuộc tính và bạn không có tùy chọn cho giá trị mặc định.
#ĐÃ SỬA
Cú pháp
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Ví dụ
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="W3Schools" />
Sử dụng từ khóa #FIXED khi bạn muốn một thuộc tính có giá trị cố định mà không cho phép tác giả thay đổi nó. Nếu tác giả bao gồm một giá trị khác, trình phân tích cú pháp XML sẽ trả về lỗi.
Giá trị thuộc tính được liệt kê
Cú pháp
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Ví dụ
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Sử dụng các giá trị thuộc tính được liệt kê khi bạn muốn giá trị thuộc tính là một trong các giá trị pháp lý cố định.