XML DTD

Tài liệu XML có ngữ pháp đúng được gọi là "đúng định dạng".

Tài liệu XML được kiểm tra theo DTD là cả "đúng định dạng" và "hợp lệ".

DTD là gì?

DTD Đại diện cho định nghĩa loại tài liệu (Document Type Definition).

DTD Định nghĩa cấu trúc của tài liệu XML và các yếu tố, thuộc tính hợp lệ.

Tài liệu XML hợp lệ

Tài liệu XML "hợp lệ" là cả "đúng định dạng" và phải tuân thủ các quy tắc của DTD:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading> nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
</note>

Đề cập đến tệp DTD trong phần khai báo DOCTYPE trên. Dưới đây là nội dung của tệp DTD và giải thích chi tiết.

XML DTD

Mục đích của DTD là định nghĩa cấu trúc của tài liệu XML và các yếu tố, thuộc tính hợp lệ:

Note.dtd:

<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

Giải thích dưới đây về DTD trên:

!DOCTYPE note - Định nghĩa phần tử gốc của tài liệu là note
!ELEMENT note - Định nghĩa phần tử note phải chứa các phần tử sau: "to, from, heading, body"
!ELEMENT to - Định nghĩa phần tử to là loại "#PCDATA"
!ELEMENT from - Định nghĩa phần tử from là loại "#PCDATA"
!ELEMENT heading - Định nghĩa phần tử heading là loại "#PCDATA"
!ELEMENT body - Định nghĩa phần tử body là loại "#PCDATA"

Lưu ý:#PCDATA biểu thị dữ liệu ký tự có thể phân tích (parseable character data).

Thực hiện khai báo thực thể bằng DTD

Định nghĩa DOIc声明 còn có thể được sử dụng để định nghĩa các ký tự đặc biệt hoặc chuỗi mà tài liệu sử dụng:

ví dụ

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp "không gian trắng;>
<!ENTITY writer "Writer: Bill Gates.">
<!ENTITY copyright "Copyright: CodeW3C.com.">
]>
<note>
<to>George</to>
<from>John</from>
<heading> nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
<footer>&writer; ©right;</footer>
</note>

Lưu ý:Thực thể được组成 từ ba phần: bắt đầu bằng dấu & (ampersand), sau đó là tên thực thể, và kết thúc bằng dấu phẩy chấm (;).

Khi nào thì sử dụng DTD?

Với DTD, các nhóm độc lập có thể đạt được sự đồng ý về tiêu chuẩn trao đổi dữ liệu.

Sử dụng DTD, bạn có thể xác thực dữ liệu mà bạn nhận từ bên ngoài có hiệu lực hay không.

Bạn có thể sử dụng DTD để xác thực dữ liệu của riêng bạn.

Nếu bạn muốn học DTD, hãy đọc tài liệu của chúng tôi. Giáo trình DTD.

Khi nào không sử dụng DTD?

Đối với XML, DTD không cần thiết.

Nếu bạn đang kiểm tra XML hoặc sử dụng tệp XML rất nhỏ, việc tạo DTD có thể là việc lãng phí thời gian.

Nếu bạn đang phát triển ứng dụng, hãy đợi quy chuẩn ổn định trước khi thêm DTD. Ngược lại, phần mềm của bạn có thể ngừng hoạt động vì lỗi xác thực.