đánh dấu cho một đoạn mã riêng biệt
4.2.1 Định nghĩa dữ liệu Khai báo DTD
- Khai báo DTD
thường đặt ở phần đầu của tài liệu
<! DOCTYPE Root-name[DTD]. .
.> >
Ví dụ Khai báo DTD lưu trữ toàn bộ thông tin của một Email
4.2 Định nghĩa kiểu dữ liệu - DTD
<?xml version="1.0"?> <!DOCTYPE EMAIL [
<!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)> <!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)> <!ELEMENT CC (#PCDATA)>
<!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT BODY (#PCDATA)>
]>
<EMAIL>
<TO> Smith@gmail.com </TO>
<FROM> John@yahoo.com </FROM> <CC> peter@hotmail.com </CC>
<SUBJECT> Play a game <SUBJECT>
<BODY> We have a game on this Sunday. </BODY> </EMAIL>
4.2.1 Định nghĩa dữ liệu
Khi khai báo một phần tử có khả năng chứa nhiều phần tử con
chúng ta phải lặp lại khai báo <ELEMENT>
sử dụng các ký tự đại diện (*) Ví dụ:
<?xml version="1.0"?> <!DOCTYPE EMAILS [
<!ELEMENT EMAILS ( EMAIL ) * >
<!ELEMENT EMAIL (To, From, CC, Subject,Body)> ]>
4.2.1 Định nghĩa dữ liệu
Một số nguyên tắc sử dụng ký tự đại diện
Giả sử a, b là hai phần tử con muốn khai báo và định nghĩa
a*: Không có hoặc có nhiều phần tử con giống nhau
a+: Có một hoặc nhiều phần tử con giống nhau
a?: Phần tử a hoặc không có phần tử nào cả
a, b: Phần tử a tiếp đến là phần tử b
a|b: Phần tử a hoặc b nhưng không được cả hai
(expresstion) Tập các phần tử expresstion trong cặp
ngoặc sẽ ảnh hưởng bởi ký tự đại diện *, + hoặc ?.
4.2.1 Định nghĩa dữ liệu
một DTD có thể chứa các thành phần sau:
ELEMENT Định nghĩa một phần tử
ATTRIBUTE Định nghĩa một thuộc tính của một ELEMENT
ENTITY Định nghĩa một thực thể
NOTATION Định nghĩa chú thích
#PCDATA Chứa dữ liệu văn bản..