Mục đích là định nghĩa DTD cho phần tử thẻ dựa trên phần định nghĩa sẵn từ các XML trước đó. Ngòai ra, nó sẽ giúp cho các ứng dụng có thể dễ dàng chia sẻ. Định nghĩa DTD ngoại có 2 cách: private DTDs và public DTDs ( tham chiếu ngoại dùng riêng và tham chiếu ngoại dùng chung).
Để sử dụng tham chiếu ngoại ta cần khai báo standalone = “no” trong chỉ thị khai báo xml đầu tiên.
2.3.2.1 Sử dụng DTD với URL:
Thông thường trình phân tích sẽ tìm các file tham chiếu ngoại trong thư mục cùng cấp với file tài liệu XML. Nhưng để mở rộng hơn, bạn có thể sử dụng DTD của 1 tổ
chức hay cá nhân nào đó ở bất cứđâu trên thế giới bằng cách chỉđịnh file tham chiếu ngoại theo địa chỉ tuyệt đối URL và có khai báo với tư cách là tham chiếu ngọai dùng chung. Ví dụ:
<!DOCTYPE DOCUMENT SYSTEM
"http://www.starpowder.com/dtd/order.dtd">
2.3.2.2. Tham chiếu ngoại dùng riêng:
Tham chiếu ngoại riêng dùng cho 1 nhóm người họăc mang tính cá nhân – không dùng cho mục đích dùng chung. Khai báo và định nghĩa tham chiếu ngoại ta dùng từ
khóa SYSTEM trong chỉ thị khai báo <!DOCTYPE>.Cú pháp: <!DOCTYPE rootname SYSTEM URL>
2.3.2.3. Tham chiếu ngọai dùng chung:
Tương tự cú pháp của tham chiếu ngọai dùng riêng, nhưng ta thay SYSTEM thành PUBLIC và thêm khái nhiệm FPI. Cú pháp:
<!DOCTYPE rootname PUBLIC FPI URL> Trong đó, FPI có 4 trường, và FPI có những quy tắc sau:
- Trường thứ nhất: xác định kết nối của DTD đến 1 formal standard (chuẩn hình thức). Nếu là tài liệu thì trường này sẽ là ký tự “-”. Đối với DTD không đúng chuẩn thì ta dùng ký tự “+”. Đối với formal standard, trường này sẽ tham chiếu
đến chuẩn của nó ( như ISO/IEC : 13449:2000).
- Trường thứ hai: chứa tên của cá nhân hoặc nhóm sẽ chịu trách nhiệm bảo trì và nâng cấp định nghĩa DTD. Và tên này phải là duy nhất và dễđịnh danh ra nhóm
đó.
- Trường thứ ba: chỉđịnh kiểu của tài liệu được mô tả, và có kèm theo 1 số định danh duy nhất như version 1.0, nó gồm cả số phiên bản mà bạn cập nhật.
- Trường thứ tư: chỉđịnh ngôn ngữ mà định nghĩa DTD sử dụng.
- Các trường này được phân cách bằng dấu “//”.