XML: DTD tham chiếu nội và ngoại

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Để viết một tài liệu DTD cũng rất dễ, chỉ cần chúng ta tuân thủ đúng một số quy tắc của W3C là được. Đầu tiên chúng ta hãy tìm hiểu về các phần tử (emlement), thuộc tính, thực thể của DTD.

Phần tử <!DOCTYPE>

Phần tử này có chức năng dùng để khai báo bắt đầu định nghĩa kiểu tư liệu DTD.

Định nghĩa kiểu tư liệu có 2 dạng, đó là DTD tham chiếu nội và DTD tham chiếu ngoại. DTD tham chiếu nội là DTD được định nghĩa ngay trong tài liệu XML còn DTD tham chiếu ngoại là DTD được định nghĩa bên ngoài tài liệu XML. Bây giờ chúng ta sẽ tìm hiểu từng cú pháp một.

Định nghĩa DTD tham chiếu nội

Để bắt đầu định nghĩa kiểu tư liệu DTD tham chiếu nội chúng ta dùng cú pháp sau:

<!DOCTYPE root-element [DTD]

Trong đó root -element là phần tử gốc của tài liệu XML, DTD là các định nghĩa cho các phần tử trong tài liệu XML. Ví dụ:

<?xml version="1.0"?>

<!DOCTYPE note [
  <!ELEMENT note body>
  <!ELEMENT body (#PCDATA)>
]>

<note>
  <body>Don't forget me this weekend</body>
</note>

Định nghĩa DTD tham chiếu ngoại

Sử dụng định nghĩa DTD tham chiếu ngoại sẽ làm cho các ứng dụng XML của chúng ta trở nên dẽ dàng chia sẽ và dùng chung với các ứng dụng khác. Có hai cách để chỉ định một DTD tham chiếu ngoại: Tham chiếu ngoại riêng và tham chiếu ngoại chung.

Những định nghĩa DTD tham chiếu ngoại riêng được sử dụng cho một nhóm người mang tính cá nhân, chúng không được dùng cho mục đích chung rộng lớn, mục đích phân phối. Còn những định nghĩa DTD tham chiếu ngoại chung sẽ mang tính cộng đồng hơn.

Để định nghĩa một DTD tham chiếu ngoại riêng chúng ta dùng cú pháp sau:

<!DOCTYPE root-element SYSTEM “filename”>

Trong đó root-element là tên của phần tử gốc trong tài liệu XML, filename là tên file định nghĩa kiểu tư liệu DTD.

Ví dụ:

<?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>

File note.dtd với nội dung như sau:

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

Địa chỉ chứa file DTD có thể một URL/URI.

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM "https://v1study.com/dtd/note.dtd">

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Để định nghĩa một DTD tham chiếu ngoại chung chúng ta dùng cú pháp sau:

<!DOCTYPE root-element PUBLIC “FPI” “URL”>

Trong đó FPI (Formal Public Identifier) là mộ t định danh chung hình thức, chúng ta cần tuân theo một số quy tắc áp dụng cho FPI sau:

  • Trường đầu tiên của một FPI là xác định kết nối của DTD đến chuẩn hình thức. Đối với các DTD chúng ta tự định nghĩa thì trường này là một dấu chấm. Đối với các chuẩn hình thức trường này sẽ tự tham chiếu đến chuẩn của nó.
  • Trường thứ hai là tên nhóm hay tên người chịu trách nhiệm bảo trì và nâng cấp các định nghĩa DTD và tên này phải mang tính duy nhất.
  • Trường thứ ba chỉ định kiểu của tài liệu được mô tả, thường thì trường này kèm theo một số định danh duy nhất nào đó (chẳn hạn như version 1.0).
  • Trường thứ tư chỉ định ngôn ngữ mà bạn định nghĩa DTD (ví dụ như ngôn ngữ Tiếng Anh - EN)
  • Mỗi trường của FPI cách nhau bởi dấu //

Ví dụ:

<?xml version="1.0"?>

<!DOCTYPE note PUBLIC ".//v1study//note XML version 1.0//EN" "https://v1study.com/dtd/note.dtd">

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Còn URL là địa chỉ của file DTD.

» Tiếp: Phần tử <!ELEMENT>
« Trước: DTD là gì?
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!