News Ticker

Menu

Valid XML documents_DTD

<XML>Bài 2: Document Type Definition(DTD)

Ở bài này chúng ta sẽ định dạng kiểu dữ liệu cho tài liệu XML đã tạo ở bài trước.
Trong DTD có nhiều kiểu dữ liệu nhưng ta chỉ cần quan tâm đến các kiểu dữ liệu sau:

Kiểu dữ liệu
Dạng hiển thị
#PCDATA
Chuỗi, Kí tự
<Attribute>ID
Kiểu ID
<Attribute>IDREF/ IDREFS
Danh sách ID

Các Element content luôn luôn là #PCDATA.

1.Tiến hành tạo file letter.dtd cho tài liệu XML ở bài trước.

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT letter (To , Greeting, body, signature)>
<!ELEMENT To (date , name, address)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT name (firstname , midname* , lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT midname (#PCDATA | EMPLY)*>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT address (school , State)>
<!ELEMENT school (#PCDATA)>
<!ELEMENT State (#PCDATA)>
<!ELEMENT Greeting (#PCDATA)>
<!ELEMENT body (p+ ,  (p | list)*)>
<!ELEMENT p (#PCDATA | i | b)*>
<!ELEMENT i (#PCDATA | b)*>
<!ELEMENT b (#PCDATA)>
<!ELEMENT list (item+)>
<!ELEMENT item (#PCDATA)>
<!ELEMENT signature (#PCDATA)>

Trong DTD các kí tự :

*
0 hoặc nhiều
|
Hoặc
+
1 hoặc nhiều
?
0 hoặc 1

Trong DTD

Để gọi đến file DTD vừa tạo bằng câu lệnh ở file xml:

                   <!DOCTYPE letter SYSTEM "letter.dtd">

Element definition được khai báo bằng:

<!ELEMENT name(Structured)>

Structured có thể là : EMPTY , #PCDATA, (name1, name2,...)
Dạng mixed model  (#PCDATA | ... | ... )* | +.

DTD - Entities

<!ENTITY entity-name "entity-value">

entity-name : tên
entity-value : giá trị truyền cho.

VD: 
file.dtd <!ENTITY writer "Steve jobs.">
file.xml <author>&writer;</author>

Các thuộc tính Attribute:

<!ATTLIST name of element

       tên của thuộc tính
       kiểu : CDATA | ID | IDREF | IDREFS | (name1 | name2 | name3 )
      option : #IMPLIED |  #REQUIRED  | Fixed " .... " (Giá trị cố định)
>

2. Bài tập trên lớp

File contacts.xml

<contacts>
<contact contactID="K58" gender="female">

<name>
<firstname></firstname>
<midname></midname>
<lastname></lastname>
</name>
<location>

<latiture></latiture>
<longitude></longitude>

</location>
<phone type="Cell"></phone>
<description>

<b></b>
<u></u>
<i></i>
<br></br>
<strong></strong>
<em></em>
</description>
</contact>

</contacts>

File contacts.dtd.

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT contacts (contact+)>
<!ELEMENT contact (name , location, phone+, description)>

<!ELEMENT name  (firstname , midname+ , lastname)>

<!ELEMENT firstname (#PCDATA)>
<!ELEMENT midname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>

<!ELEMENT location ( address | (latiture , longitude))>

<!ELEMENT address (#PCDATA)>
<!ELEMENT latiture (#PCDATA)>
<!ELEMENT longitude (#PCDATA)>

<!ELEMENT  phone (#PCDATA)>

<!ELEMENT description (#PCDATA | b | u | i | br | strong | em )*>

<!ELEMENT  b  (#PCDATA)>
<!ELEMENT  u (#PCDATA)>
<!ELEMENT  i (#PCDATA)>
<!ELEMENT  br EMPTY>
<!ELEMENT  strong (#PCDATA)>
<!ELEMENT em (#PCDATA)>

<!ATTLIST contact
contactID    ID              #REQUIRED
know          IDREFS     #IMPLIED
gender       (male | female)    #REQUIRED
blog           CDATA     #IMPLIED
email         CDATA        #IMPLIED
>
<!ATTLIST phone
type     (Home | Work | Cell | Fax)   #REQUIRED

>

Chúc các bạn thành công!

Share This:

Post Tags:

No Comment to " Valid XML documents_DTD "

  • To add an Emoticons Show Icons
  • To add code Use [pre]code here[/pre]
  • To add an Image Use [img]IMAGE-URL-HERE[/img]
  • To add Youtube video just paste a video link like http://www.youtube.com/watch?v=0x_gnfpL3RM