
Chương 3 :
Định nghĩa kiểu tài liệu (DTD) và Kiểm tra tính
hợp lệ (valid) của XML

DTD
Khái niệm
DTD là viết tắt của cụm từ Document Type Definition
DTD xác định cấu trúc, các phần tử và thuộc tính hợp lệ của một tài liệu XML.
Tại sao sử dụng DTD?
Với một DTD, các nhóm người độc lập có thể đồng ý về một DTD chuẩn để
trao đổi dữ liệu.
Ứng dụng có thể sử dụng DTD để xác minh rằng dữ liệu XML là hợp lệ.

DTD
DTD nội
Nếu DTD được khai báo bên trong tệp XML, nó phải được bao bọc bên trong
định nghĩa <!DOCTYPE>:
<?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>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

DTD
DTD nội
DTD ở trên được hiểu như sau:
•!DOCTYPE note xác định rằng phần tử gốc của tài liệu này là note
•!ELEMENT note xác định rằng thành phần ghi chú phải chứa bốn phần
tử: "to, from, header, body"
•!ELEMENT to xác định phần tử to thuộc loại "#PCDATA"
•!ELEMENT from xác định phần tử from thuộc loại "#PCDATA"
•!ELEMENT heading xác định phần tử tiêu đề thuộc loại "#PCDATA"
•!ELEMENT body xác định phần tử nội dung thuộc loại "#PCDATA"

DTD
DTD ngoại
Nếu DTD được khai báo trong tệp bên ngoài, định nghĩa <!DOCTYPE> phải
chứa tham chiếu đến tệp DTD:
Tài liệu XML có tham chiếu đến DTD bên ngoài
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Và đây là tệp "note.dtd", chứa DTD:

