File DTDs trong XML
DTDs - Document Type Declaration là một cách để mô tả ngôn ngữ XML được tạo thành từ các yếu tố, thuộc tính và thực thể khai báo.
DTDs :
- kiểm tra tự vựng, tính hợp lệ của cấu trúc tài liệu XML.
- Định nghĩa các yếu tố, cách liên hệ với nhau trong cấu trúc cây.
- Nó có thể nằm trong khai báo của một tài liệu XML.
- Nó được sử dụng bởi XML để cung cấp một ứng dụng độc lập chia sẻ dữ liệu.
- Giúp phân tích cú pháp để xác nhận các tài liệu XML.
- Giúp tác giả thiết lập giá trị mặc định cho các yếu tố thuộc tính.
- Nó có thể được sử dụng để trao đổi dữ liệu giữa các nhóm làm việc qua lại với nhau.
- Ứng dụng sử dụng DTDs để xác minh dữ liệu nhập vào tài liệu là hợp lệ, dữ liệu được nhập từ bên ngoài vào là hợp lệ. Bạn cũng có thể sử dụng DTDs để kiểm tra dữ liệu của riêng bạn .
--Lan man quá rồi, bây giờ ta xét cú pháp của chúng--
Cấu trúc của một DTDs:
Các bước để tạo 1 file DTDs
- Khai báo tất cả các yếu tố có thể.
- Xác định các yếu tố con nếu có.
- Thiết lập trật tự các phần tử xuất hiện.
- Khai báo tất cả các phần tự có thể xuất hiện.
- Thiết lập kiểu dữ liệu thuộc tính và giá trị.
- Khai báo tất cả các thực thể.
Cú pháp:
Ví dụ:
Cấu trúc của một DTDs:
DOCTYPE declaration : Khai báo file DTD , chỉ định tên, nội dung, vị trí ....
Element Declaration: Khai báo các phần tử, chỉ định tên nguyên tố đó và các nội dung trong phần tử có thể chứa.
Attribute Declaration: Khai báo thuộc tính, xác định các yếu tố đó đang sở hữu cá thuộc tính, các tên thuộc tính , loại của nó và các giá trị mặc định cảu nó (nếu có).
Entity Declaration: Chỉ định tên cảu thực thể và một trong hai giá trị hay vị trí của nó.
Element Declaration: Khai báo các phần tử, chỉ định tên nguyên tố đó và các nội dung trong phần tử có thể chứa.
Attribute Declaration: Khai báo thuộc tính, xác định các yếu tố đó đang sở hữu cá thuộc tính, các tên thuộc tính , loại của nó và các giá trị mặc định cảu nó (nếu có).
Entity Declaration: Chỉ định tên cảu thực thể và một trong hai giá trị hay vị trí của nó.
Để khai báo một file DTDs :
Nếu DTD được khai báo trong tập tin XML nên nó được bọc trong một định nghĩa DOCTYPE
<!DOCTYPE root-element
[element-declarations]>
Nếu DTDs được khai báo trong 1 tập tin ngoài thì nó được khai báo trong một DOCTYPE như thế này :
<!DOCTYPE
root-element SYSTEM "filename“>
note.dtd
Mô tả các phần tử :
<!ELEMENT
element–name
element–rule>
element–name: Tên phần tử.
element–rule: Một trong các lựa chọn:
+ không có nội dung gì.
+ #PCDATA
+ Bất kì nội dung gì.
+ Các phần tử con.
+ Chỉ 1 trong các lựa chọn.
.....
tất cả có trong bảng sau:
Một yếu tố phần tử có thể pha trộn nhiều yếu tố con ví dụ;
<!ELEMENT note (to+, from, header, message*, #PCDATA)>
Các phần tử con có thể được khai báo theo trình tự hoặc lựa chọn.
Ví dụ:
Theo trình tự (Sequence):
<!ELEMENT A (B) > - A bao gồm B.
<!ELEMENT A (B,C) - A bao gồm B tiếp theo là C.
<!ELEMENT A (B,(C|D), E) - A bao gồm B, tiếp đến C hoặc D, rồi đến E.
Theo lựa chọn ( Choise):
<!ELEMENT A (B|C) >
<!ELEMENT A (B|C|(D,E)) >
Miêu tả thuộc tính:
<!ATTLIST
element-name
attribute-name
attribute-type
default-value>
Ta có các lọai thuộc tính (attribute- type):
Giá trị mặc định (Defaul-value):
#RIQUIRED: Không có một giá trị mặc định, nhưng vẫn buộc các thuộc tính phải có mặt.
#IMPLIED: Nếu không muốn ràng buộc các thuộc tính và không có giá trị lựa chọn nhất định cho chúng.
#FIXED: Khi muốn thuộc tính có một giá trị nhất định, không cho phép tắc giả thay đổi chúng.
Nếu tác giả cho thuộc tính một giá trị khác, phân tích cú pháp XML sẽ báo lỗi.
LIỆT KÊ CÁC THUỘC TÍNH ([en1|en2...]): Khi muốn thuộc tính là 1 trong các tập cá thuộc tính được liệt kê.
Trên đây là nội dung tìm hiểu file DTDs, tuy giờ nó không được sử dụng nhiều như XML schema nhưng vẫn phải dùng nó ở những công việc nhất định. Bài hơi dài, hy vọng mọi người có thể hiểu tường tận nội dung cũng như kiến thức về file DTDs. Bài sau mình sẽ giới thiệu về XML schema. Chúc mọi người học tốt ^^.












Nhận xét
Đăng nhận xét