DTD - คุณสมบัติ
ใน DTD คุณลักษณะจะถูกประกาศด้วยการประกาศ ATTLIST
ประกาศคุณสมบัติ
การประกาศแอตทริบิวต์มีไวยากรณ์ต่อไปนี้:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
ประเภทแอตทริบิวต์สามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
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 |
ค่าแอตทริบิวต์สามารถเป็นค่าใดค่าหนึ่งต่อไปนี้:
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 |
ค่าแอตทริบิวต์เริ่มต้น
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
ในตัวอย่างข้างต้น องค์ประกอบ "สี่เหลี่ยม" ถูกกำหนดให้เป็นองค์ประกอบว่างที่มีแอตทริบิวต์ "ความกว้าง" ของประเภท CDATA หากไม่ได้ระบุความกว้าง จะมีค่าเริ่มต้นเป็น 0
#ที่จำเป็น
ไวยากรณ์
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
ตัวอย่าง
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
ใช้คีย์เวิร์ด #REQUIRED หากคุณไม่มีตัวเลือกสำหรับค่าเริ่มต้น แต่ยังต้องการบังคับให้แสดงแอตทริบิวต์
#โดยนัย
ไวยากรณ์
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
ตัวอย่าง
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
ใช้คำหลัก #IMPLIED หากคุณไม่ต้องการบังคับให้ผู้เขียนใส่แอตทริบิวต์ และคุณไม่มีตัวเลือกสำหรับค่าเริ่มต้น
#แก้ไขแล้ว
ไวยากรณ์
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
ตัวอย่าง
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="W3Schools" />
ใช้คีย์เวิร์ด #FIXED เมื่อคุณต้องการให้แอตทริบิวต์มีค่าคงที่โดยไม่อนุญาตให้ผู้เขียนเปลี่ยนแปลง หากผู้เขียนมีค่าอื่น ตัวแยกวิเคราะห์ XML จะส่งคืนข้อผิดพลาด
ระบุค่าแอตทริบิวต์
ไวยากรณ์
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
ตัวอย่าง
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
ใช้ค่าแอตทริบิวต์ที่แจกแจงไว้เมื่อคุณต้องการให้ค่าแอตทริบิวต์เป็นหนึ่งในชุดค่าทางกฎหมายคงที่