Tin tức
Các thành phần của tài liệu DTD
24/10/2008
Do bản chất tài liệu DTD và tài liệu đặc tả cấu trúc file XML nên nó phải chứa đựng thông tin đặc tả tất cả những cấu thành có mặt trong XML.
- Thành phần thẻ <ELEMENT>
- Thuộc tính các thành phần.
- Các thực thể tham chiếu.

* Element
Có 3 kỹ thuật đặc tả:

+ EMPTY ELEMENT : Thành phần rỗng.
VD: <!ELEMENT element_name EMPTY>
+ UNRESTRIEFED ELEMENT: Thành phần không giới hạn.
VD: <!ELEMENT element_name ANY>
+ CONTAINER ELEMENT: Thành phần chứa đựng.
VD: <!ELEMENT element_name (Child element)>
<!ELEMENT element_name (#PCDATA)>
(#CDATA)>

- Đối với những thành phần chứa nhiều thành phần con để phân cách giữa các thành phần con đó ta có thể dùng 2 ký OR.
ó AND (đồng thời) hoặc "|" ótự là: ","
- Ngoài ra còn có một số ký tự đặc biệt để nói đến sự tồn tại của các thành phần con như:
"?": Viết cạnh thành phần nào đó có nghĩa là thành phần đó tồn tại 0 lần hay 1 lần.
"*": Viết cạnh thành phần nào đó có nghĩa là thành phần đó tồn tại 0 lần hay nhiều lần.
"+": Viết cạnh thành phần nào đó có nghĩa là thành phần đó tồn tại 1 lần hay nhiều lần.

* Element Attributes (Thuộc tính các thành phần)

Trong một số thành phần có mặt trong tài liệu XML có thể được bổ xung thêm một số thuộc tính để làm rõ thêm thông tin cho nó. Vì vậy trong tài liệu DTD chúng ta cũng cần đặc tả cấu trúc thông tin của thuộc tính.

+ SYNTAX: Cú pháp
<!ATTLIST Element_name Attlist_name ValueType(Attlisttype)[default]>
Trong đó: AttlistType có 3 kiểu chính:
+ REQUIRED: Thuộc tính này chỉ định rằng cái giá trị tương ứng với thuộc tính mà nó đặc tả cần phải được xuất hiện mỗi khi sử dụng thành phần này.
+ FIXED: Thuộc tính này chỉ định rằng thông tin mà nó đặc ta là cố định và không thay đổi trong toàn bộ tài liệu XML.
+ IMPLIED: Thuộc tính này chỉ định rằng thành phần mà chứa đựng nó mỗi khi được sử dụng có thể biểu diễn chứa đựng nó hoặc không.

VD:
<!ATTLIST Articale Author CDATA #REQUIRED>
<!ATTLIST Product Calegory (Toy|Book) "Toy">

Chúng ta có thể gán giá trị cho thuộc tính với nhiều mục tiêu khác nhau nhưng:
- Khai báo ở dạng PCDATA sử dụng để đặc tả rằng giá trị đó cần phải được xử lý bởi XML Pasel.
- Khai báo ở dạng CDATA sử dụng để đặc tả rằng giá trị đó không cần được xử lý bởi XML Pasel.

* Referenced Entities (thực thể tham chiếu)
 Trong một số tình huống người ta muốn đặc tả hay biểu diễn khối lượng thông tin lớn bởi một thành phần đại diện trong tài liệu XML khi đó ta có thể sử dụng thực thể tham chiếu để làm đơn giản hóa các cấu trúc trong tài liệu XML.

VD: <!ENTITY Entity_name EntityValue>
<!ENTITY Copyright "Copyright @ by ABC">

VD1: file "magazine.xml"
<? Xml version = "1.0"?>
<! DOCTYPE MAGAZINE SYSTEM "URL…magazine.dtd">
<MAGAZINE>
<Article Author = "Le van Thanh" edition "Ngay 16/08/83">
<Headline>Open XML</Headline>
<Copyright>&Copyright;</Copyright>
<Article Author = "Ta Tuan Phuong" edition "Ngay 10/08/85">
<Headline>SQL SERVER 2000</Headline>
<Copyright>&Copyright;</Copyright>
</Article>
</MAGAZINE>

* Chú ý: - SYSTEM: chỉ file DTD nằm ở máy cục bộ Local System.
- PUBLIC : chì file DTD nằm ở máy chủ Server(ĐC là 1 URL)

File "maganzine.dtd"

Cách 1: Dùng ELEMENT
<!ELEMENT Magazine (Article)+>
<!ELEMENT Article(Headline, Copyright)>
<!ELEMENT Headline(#PCDATA)>
<!ELEMENT Copyright(#PCDATA)>

Cách 2: Dùng ATTLIST
<!ATTLIST Article Author CDATA # RIQUIRED>
<!ATTLIST Article edition CDATA # IMPLIED>
<!ENTITY Copyright "The Copyright @ HAUI 2008">
Ý kiến bạn đọc