DTD - ສະຖານນະພາບປ່ຽນແປງ
ໃນ DTD, ປະກອບສ່ວນອາດຖືກຖະແຫ�ງດ້ວຍການຖະແຫ�ງປະກອບສ່ວນ.
ຖະແຫຼງປະກອບສ່ວນ
ໃນ DTD, XML ປະກອບສ່ວນອາດຖືກຖະແຫຼງດ້ວຍການຖະແຫຼງປະກອບສ່ວນ. ການຖະແຫ�ງປະກອບສ່ວນມີວິທະຍາການດ້ວຍ:
<!ELEMENT ປະກອບສ່ວນຊື່ ວິທະຍາ>
ຫຼື
<!ELEMENT ປະກອບສ່ວນຊື່ (ຂອບສ່ວນ)>
ປະກອບສ່ວນທີ່ບໍ່ມີຂໍ້ມູນທີ່ຈະອອກ
ປະກອບສ່ວນທີ່ບໍ່ມີຂໍ້ມູນທີ່ຈະອອກ ອກຈະຖືກຖະແຫ�ງໂດຍພວກກະພິບວິທະຍາ EMPTY:
<!ELEMENT ປະກອບສ່ວນຊື່ EMPTY>
例子:
<!ELEMENT br EMPTY>
ຕົວຢ່າງ XML:
<br />
ປະກອບສ່ວນທີ່ມີພຽງ PCDATA
ປະກອບສ່ວນທີ່ມີພຽງ PCDATA ອາດຖືກຖະແຫຼງດ້ວຍ #PCDATA ໃນກາງຄອບຄອງ:
<!ELEMENT ປະກອບສ່ວນຊື່ (#PCDATA)>
例子:
<!ELEMENT from (#PCDATA)>
ປະກອບສ່ວນທີ່ມີຂໍ້ມູນທັງໝົດ
ປະກອບສ່ວນທີ່ຖືກຖະແຫຼງໂດຍພວກກະພິບວິທະຍາ ANY ອາດມີການປະກອບສ່ວນທັງໝົດຂອງຂໍ້ມູນທີ່ສາມາດບາດດັນໄດ້:
<!ELEMENT ປະກອບສ່ວນຊື່ ANY>
例子:
<!ELEMENT note ANY>
ປະກອບສ່ວນທີ່ມີປະກອບສ່ວນ (ລຳດັບ)
ປະກອບສ່ວນທີ່ມີປະກອບສ່ວນ 1 ຫຼື ຫຼາຍກວ່າ ອາດຖືກຖະແຫຼງດ້ວຍຊື່ລູກປະກອບສ່ວນໃນກາງຄອບຄອງ:
<!ELEMENT ປະກອບສ່ວນຊື່ (ປະກອບສ່ວນຊື່ລູກ 1)>
ຫຼື
<!ELEMENT ປະກອບສ່ວນຊື່ (ປະກອບສ່ວນຊື່ລູກ 1,ປະກອບສ່ວນຊື່ລູກ 2,...)>
例子:
<!ELEMENT note (to,from,heading,body)>
ເມື່ອປະກອບສ່ວນລູກອາດອອກໃນທີ່ຕາມລຳດັບການຖະແຫຼງດ້ວຍຄຳຂັດແຍ່ງຄັ້ງດຽວ ປະກອບສ່ວນລູກຕ້ອງອາດອອກໃນທີ່ຕາມລຳດັບດຽວກັນໃນເອກະສານ. ໃນການຖະແຫຼງທີ່ເປັນສະບາຍ ປະກອບສ່ວນລູກຕ້ອງຖືກຖະແຫຼງ ແລະ ປະກອບສ່ວນລູກອາດມີປະກອບສ່ວນລູກ. "note" ການຖະແຫຼງທີ່ເປັນສະບາຍວ່າ:
<!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
ການຖະແຫຼງປະກອບສ່ວນທີ່ອາດອອກໃນຄັ້ງດຽວ
<!ELEMENT ປະກອບສ່ວນຊື່ (ປະກອບສ່ວນຊື່ລູກ)>
例子:
<!ELEMENT note (message)>
ຕົວຢ່າງຂື້ນກ່າວວ່າ: "message" ປະກອບສ່ວນຕ້ອງອາດອອກໃນຄັ້ງດຽວ ແລະ ຕ້ອງບໍ່ຈະອອກໃນ "note" ປະກອບສ່ວນດຽວ
ການຖະແຫຼງການປະກອບສ່ວນທີ່ອາດອອກໃນຄັ້ງດຽວ
例子:
上面的例子中的加号声明了:message 子元素必须在 "note" 元素内出现至少一次。
声明出现零次或多次的元素
例子:
上面的例子中的星号声明了:子元素 message 可在 "note" 元素内出现零次或多次。
声明出现零次或一次的元素
例子:
上面的例子中的问号声明了:子元素 message 可在 "note" 元素内出现零次或一次。
声明“非.../既...”类型的内容
例子:
上面的例子声明了:"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
声明混合型的内容
例子:
上面的例子声明了:"note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。