รายวัสดุ DTD

ประกาศแบบของประเภทเอกสาร (DTD) สามารถกำหนดองค์ประกอบที่ถูกต้องของเอกสาร XML ได้ มันใช้องค์ประกอบที่ถูกต้องหลายองค์ประกอบเพื่อกำหนดโครงสร้างของเอกสาร

DTD สามารถประกาศด้วยแบบแสดงแยกบรรทัดในเอกสาร XML หรือใช้เป็นอ้างอิงภายนอก

คำแสดง DOCTYPE ภายใน

ถ้า DTD ถูกมีอยู่ในแบบแสดง XML ของคุณ มันควรจะถูกบรรจุด้วยคำแสดง DOCTYPE ตามรูปแบบด้านล่าง:

!DOCTYPE รากตัว [ประกาศตัวแปร]>

ตัวอย่างเอกสาร XML ที่มี DTD (โปรดเปิดด้วย IE5 หรือสูงกว่า และเลือกดูรหัสแบบงาน):

<?xml version="1.0"?>
!DOCTYPE note [
  !ELEMENT note (to,from,heading,body)
  !ELEMENT to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  !ELEMENT heading (#PCDATA)
  !ELEMENT body    (#PCDATA)
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don't forget the meeting!</body>
</note>

เปิดแบบงาน XML นี้ในเบราเซอร์ของคุณ และเลือกคำสั่ง "ดูรหัสแบบงาน".

การอธิบาย DTD ด้านบนคือ:

!DOCTYPE note (บรรยายบรรทัดที่ 2) กำหนดเอกสารนี้เป็น note ประเภทเอกสาร

!ELEMENT note (บรรยายบรรทัดที่ 3) กำหนด note ตัวแปรมีสี่ตัวแปร: "to,from,heading,body"

!ELEMENT to (บรรยายบรรทัดที่ 4) กำหนด to ตัวแปรเป็นชนิด "#PCDATA"

!ELEMENT from (บรรยายบรรทัดที่ 5) กำหนด from ตัวแปรเป็นชนิด "#PCDATA"

!ELEMENT heading (บรรยายบรรทัดที่ 6) กำหนด heading ตัวแปรเป็นชนิด "#PCDATA"

!ELEMENT body (บรรยายบรรทัดที่ 7) กำหนด body ตัวแปรเป็นชนิด "#PCDATA"

การประกาศแบบงานภายนอก

ถ้า DTD ตั้งอยู่ด้านนอกของแบบงาน XML ต้นฉบับ มันควรถูกทำปิดด้วยภาษานี้ในการกำหนด DOCTYPE:

!DOCTYPE รากตัวSYSTEM "filename"

เอกสาร XML นี้และเอกสาร XML ที่อยู่ด้านบนเหมือนกัน แต่มี DTD ภายนอก: (เปิดเอกสาร XML ใน IE5และเลือกคำสั่ง "ดูรหัสแบบงาน")

<?xml version="1.0"?>
!DOCTYPE note SYSTEM "note.dtd"
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

นี่คือแบบงาน "note.dtd" ที่มี DTD รวมด้วย:

!ELEMENT note (to,from,heading,body)
!ELEMENT to (#PCDATA)
!ELEMENT from (#PCDATA)
!ELEMENT heading (#PCDATA)
!ELEMENT body (#PCDATA)

為什麼使用 DTD?

通過 DTD,您的每一個 XML 文件均可攜帶一個有關其自身格式的描述。

通過 DTD,獨立的團體可一致地使用某個標準的 DTD 來交換數據。

而您的應用程序也可使用某個標準的 DTD 來驗證從外部接收到的數據。

您還可以使用 DTD 來驗證您自身的數據。