NGÔN NG ĐÁNH D U M R NG
Ở Ộ
Ữ
Ấ
CH
NG 05
ƯƠ
Document Type Definition
12/27/13
Document Type Definition
1
NGÔN NG ĐÁNH D U M R NG
Ở Ộ
Ữ
Ấ
BÀI 1
KHAI BÁO PH N TẦ Ử
12/27/13
Document Type Definition
2
N i dung
ộ
ủ
ệ
ử ụ ế ợ
M c tiêu c a bài h c ọ ụ Gi i thi u, đ nh nghĩa ị ớ Khai báo DTD S d ng DTD tham chi u ngo i ạ ế K t h p c hai lo i DTD ạ ả DTD và tính h p l ợ ệ
(validity) c a tài li u ủ
ệ
12/27/13
3
Document Type Definition
M c tiêu
ụ
c công d ng chính c a DTD ượ ủ
Trình bày đ ụ Khai báo DTD s d ng tham chi u n i và tham ử ụ ế ộ
c c u trúc n i dung c a t ng ph n chi u ngo i. ạ ế Khai báo đ ượ ủ ừ ầ ộ
t ử
ợ ệ ủ ượ
ấ (element) trong tài li u XML Ki m tra đ ể ặ ấ ệ c a tài li u XML (v c tính h p l ề ệ m t c u trúc, n i dung các ph n t ) ầ ử ộ
12/27/13
4
Document Type Definition
N i dung
ộ
Đ nh Nghĩa
ị
12/27/13
Document Type Definition
5
Ví d m đ u
ụ ở ầ
12/27/13
Document Type Definition
6
Đ nh nghĩa
ị
DTD (Document Type Definition) đ ượ
ủ ệ ấ
ị ệ ầ ộ
c dùng đ ể đ nh nghĩa c u trúc c a m t tài li u XML thông qua ộ vi c đ nh nghĩa và khai báo các thành ph n, thu c ị tính, th c th . ể ự
Ngoài ra DTD còn đ c dùng đ ể ợ
ượ ệ ủ ở
ể ki m tra tính h p (ệ validity) c a tài li u XML b i các trình phân tích l XML.
12/27/13
Document Type Definition
7
Công d ngụ
ệ Giúp tác giả (ng ị
ữ
ườ ệ
i t o ra tài li u XML) quy đ nh rõ ườ ạ c u trúc cũng nh nh ng ràng bu c bên trong tài ộ ư ấ li u XML c a mình. ủ ệ Giúp ng i dùng ườ ượ ắ i khai thác tài li u đó có th ể ừ ệ
XML) n m đ x lý, rút trích, đ nh d ng tài li u cho phù h p. ử (nh ng ng ữ c c u trúc c a tài li u, t ủ ấ ị ệ ạ ợ
12/27/13
Document Type Definition
8
N i dung
ộ
T o khai báo
ạ
12/27/13
Document Type Definition
9
V trí khai báo
ị
Ph n khai báo DTD đ ầ ượ ặ
c đ t sau các ch th x ỉ ị ử c nút g c c a ố ủ ướ
lý (Processing Instructions) và tr tài li u.ệ
ể DTD tham chi u ế
ế ạ , ho c k t h p ế ợ ặ
Khai báo này có th là khai báo n iộ ho c ặ DTD tham chi u ngo i c hai. ả
12/27/13
Document Type Definition
10
Cú pháp khai báo
ộ ắ ầ ớ
[DTD]>
M t khai báo b t đ u v i ]> thúc b ng ằ
12/27/13
Document Type Definition
11
Cú pháp khai báo (2.)
g c
Trong đó: rootname: Tên ph n t ầ ử ố URI: Đ nh danh c a DTD bên ngoài tài li u XML ủ ệ
ệ ạ ị ờ
hi n th i trên không gian m ng internet. identifier: quy đ nh đ nh danh c a tài li u trên ệ ị ủ ị
internet (s trình bày sau). ẽ
12/27/13
Document Type Definition
12
Phân lo i DTD ạ
Đ nh nghĩa ki u ị ệ ạ
chi u ngo i. ạ ế
ể dữ li u có 2 d ng, đó là DTD tham chi u n i và DTD tham ộ DTD tham chi u n i c đ nh nghĩa ộ là DTD đ ế ượ ế ị
ngay trong tài li uệ XML DTD tham chi u ngo i ạ là DTD đ ượ c đ nh ị
ế nghĩa bên ngoài tài li uệ XML
12/27/13
Document Type Definition
13
Khai báo ph n t
(1)
ầ ử
name: là tên c a ph n t
mà ta mu n đ nh nghĩa
ầ ử
ủ
ố
ị
content_model: là ki u c a ph n t
ầ ử
ủ
ể
này, có th là ể con hay
ầ ử
EMPTY, ANY, #PCDATA, các ph n t tr n l n nhi u thành ph n ề
ộ ẫ
ầ
12/27/13
Document Type Definition
14
Khai báo ph n t
(2)
ầ ử
]>
Ví dụVí dụ
12/27/13
Document Type Definition
15
Content model (1)
ứ
ộ khác. ANY: nghĩa là nó có th ch a b t kỳ n i dung nào ể ể ả ấ ầ ử ị
do b n đ nh nghĩa, k c các ph n t ạ ữ ệ
ầ ả ầ ỉ ơ ể
ị ữ ệ ế ấ ỉ
#PCDATA: là d li u văn b n thô, không thu c ộ ph n đ nh d ng. ch đ n thu n bi u di n d li u ữ ệ ễ ạ t tính ch t văn b n text thô, d li u thô ch cho bi ả c a nó. ủ
12/27/13
Document Type Definition
16
Content model (2)
EMPTY: Các ph n t c ầ ử không có n i dung gì đ ộ ượ
g i là r ng. ọ ỗ
12/27/13
Document Type Definition
17
Content model (3.)
]>
Ví dụVí dụ
12/27/13
Document Type Definition
18
Đ nh nghĩa ph n t
con (1)
ầ ử
ị
ụ
Đ nh nghĩa m t ph n t con ị ộ ứ ầ ử ầ ử ộ
có ch a m t ph n t Ví d : ộ ầ ử có ch a nhi u h n m t ề ứ ộ ơ ị
•Ví d : ụ
Dùng kí t
đ i di n
ự ạ
ệ
Đ nh nghĩa m t ph n t ph n t con ầ ử Dùng d u ph y ẩ ấ
12/27/13
Document Type Definition
19
Đ nh nghĩa ph n t
con (2)
ầ ử
ị S d ng các các kí t
đ i di n đ làm vi c và khai
ử ụ
ự ạ
ệ
ể
ệ
báo.
Kí hi uệ
Mô tả
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?
M t ph n t
a ho c không có ph n t
nào
ầ ử
ộ
ầ ử
ặ
a,b
Ph n t
a ti p đ n là b
ầ ử
ế
ế
a|b
Ph n t
a ho c ph n t
b nh ng không đ
c c hai
ầ ử
ầ ử
ặ
ư
ượ ả
Ví d :ụ
Ph n t
ROOT không có ho c có nhi u ph n t
LIMB_A
ầ ử
ầ ử
ề
ặ
12/27/13
Document Type Definition
20
Đ nh nghĩa ph n t
con (3)
ầ ử
ị
• Ph n t
ROOT có m t ho c nhi u ph n t
con LIMB_A
ầ ử
ầ ử
ề
ặ
ộ
• Ph n t
ROOT không có ho c có m t ph n t
con
ặ
ầ ử
ộ
ầ ử LIMB_A
• Ph n t
con, đ u tiên là ph n t
ầ ử
ầ ử
ầ
ROOT có 2 ph n t ầ ử LIMB_B
LIMB_A ti p đ n là ế
ế
ROOT có m t ph n t
• Ph n t
con ho c là LIMB_A
ặ
ầ ử
ộ
ho c là LIMB_B
ầ ử ặ
12/27/13
Document Type Definition
21
Đ nh nghĩa ph n t
con (4)
ầ ử
ị
ấ
ử ặ ầ
ơ ở ấ duy nh t. T p các ph n t ử ậ ng c a nh ng kí t ị ả c k t h p b i d u ngo c đ n nh ư trong đ i ự ạ ưở ữ ủ
D u ngo c đ n: ặ ơ Các ph n t đ ế ợ ầ ử ượ là m t ph n t ấ ầ ộ d u ngo c s ch u nh h ẽ ặ di n *, + ho c ? ặ
(TITLE,
(PARAGRAP|
ấ ệ Ví d :ụ
12/27/13
Document Type Definition
22
Đ nh nghĩa ph n t
con (5)
ầ ử
ị
ộ ỗ
v a có kh năng ả #PCDATA) v a ử ừ ng t ự ừ
N i dung h n h p (mixed content): ợ Là cách đ nh nghĩa ph n t ầ ch a d li u thu n text (t ươ ch a d li u ph n đ nh d ng (markup). ạ ị ị ữ ệ ữ ệ ầ ầ
(#PCDATA | TEAM_CITY
|
ứ ứ Ví d :ụ
12/27/13
Document Type Definition
23
Đ nh nghĩa ph n t
con (6.)
ầ ử
ị
ẩ
c n m trong khai báo. Chú thích: Có th dùng cách ghi chú XML chu n trong DTD, ể ằ
chú thích không đ ượ ộ ộ
Ví d :ụ
12/27/13
Document Type Definition
24
N i dung
ộ
ế
S d ng DTD tham chi u ử ụ ngo iạ
12/27/13
Document Type Definition
25
S d ng DTD tham chi u ngo i ạ
ử ụ
ế
ứ ụ ẻ
chung v i các ng d ng khác ứ
Đ c l u trong m t t p tin riêng có ph n m r ng Giúp ng d ng XML d dàng chia s và dùng ễ ụ ộ ậ ớ ượ ư ở ộ ầ
là .dtd
DTD tham Có hai cách ch đ nh m t ph n t ỉ ầ ử ộ ị
private DTDs) public DTDs)
ế
ạ ạ
chi u ngo i ạ Tham chi u ngo i riêng ( ế Tham chi u ngo i chung ( ế
12/27/13
Document Type Definition
26
Tham chi u ngo i riêng
ế
ạ
đ nh nghĩa riêng bi
ạ ế
ự ị
ệ
t, s ử
S d ng t p tin DTD do ta t d ng cho m c đích cá nhân. ụ khóa
ử ụ ụ Dùng t
SYSTEM trong ch th khai báo
ừ
ị
ỉ
DOCTYPE>
Tham chi u ngo i riêng: ậ
>
Ví d : ụ
12/27/13
Document Type Definition
27
S d ng DTD v i URLs
ử ụ
ớ
Tham chi u ngo i b ng đ a ch URL r t ti n l ỉ ị ạ ằ
ế ể ử ụ ấ ệ ợ ủ ị
i. Ta ộ ổ b t kỳ n i đâu trên th ế ừ ấ
i t có th s d ng các đ nh nghĩa DTD c a m t t ch c hay cá nhân nào đó t gi ự ơ đ u. ạ ừ ầ ả
DOCUMENT
SYSTEM
ứ i mà không ph i xây d ng l ớ Ví d :ụ
12/27/13
Document Type Definition
28
Tham chi u ngo i chung (1)
ế
ạ
Dùng t khóa ừ PUBLIC trong ch th khai báo
DOCTYPE>
M c đích là đ khai báo 1 n i dung DTD dùng ụ ể
ộ i dùng khác nhau) ề ườ
ả ạ ộ
chung (chia s cho nhi u ng ẻ Đ s d ng t ể ử ụ ị
ả ấ ỗ
khóa PUBLIC c n ph i t o m t ầ ừ ứ (FPI – Formal Public đ nh danh chung hình th c Identifier) là m t chu i văn b n n m trong d u nháy có 4 tr ộ ng phân cách nhau b ng d u ằ ằ ấ // ườ
12/27/13
Document Type Definition
29
Tham chi u ngo i chung (2)
ế
ạ
Tr ỉ ấ ứ ườ
đ nh nghĩa thì tr ứ ườ
ế
ườ ế ả
ủ
ng th 2 l u tên ho c nhóm cho cá nhân ch u Tr ẩ ẩ ườ ư ặ ị
ng th nh t: ch ra r ng DTD dùng cho chu n ẩ ằ ng chính th c. DTD do b n t ạ ự ị này là -, n u DTD có ph n thân không là chu n ẩ ầ ng này là +, v i ph n thân có chính th c thì tr ầ ớ ườ ứ ng này tham kh o đ n chu n chính th c thì tr ứ chu n c a chính nó. ứ trách nhi m cho DTD ệ
12/27/13
Document Type Definition
30
Tham chi u ngo i chung (3.)
ế
ạ
ể
ng th 3 ch ra ki u tài li u DTD ng th 4 ch ra ngôn ng dùng vi t DTD ệ ữ ứ ứ ỉ ỉ ế
Tr ườ Tr ườ Cú pháp:
Ví d :ụ
12/27/13
Document Type Definition
31
N i dung
ộ
S d ng DTD tham chi u n i và tham chi u ngo i ạ ế ộ
ử ụ
ế
12/27/13
Document Type Definition
32
K t h p 2 lo i DTD (1)
ế ợ
ạ
Khai báo:
URL đ ể ế ế
[DTD] đ c s d ng cho các đ nh nghĩa ki u DTD ị ể
c s d ng đ tham chi u đ n các DTD ượ ử ụ tham chi u ngo i ạ ế ượ ử ụ tham chi u n i ộ ế
12/27/13
Document Type Definition
33
K t h p 2 lo i DTD (2)
ế ợ
ạ
]>
Ví d :ụ
12/27/13
Document Type Definition
34
K t h p 2 lo i DTD (3)
ế ợ
ạ
c đ nh nghĩa c DTD N u m t ph n t ộ ế đ ử ượ ở ả
ộ
c đ nh nghĩa
ơ
ầ ị
ộ
ộ
ầ ộ ị ế
ầ ế thông báo l
ể ừ
ề iỗ và d ng quá trình phân tích khi đ nh ị
ạ
. (thu c tính) khác nhau
n u DTD n i và ngo i trùng nhau
• Đ a ra ư phát hi n có hai DTD n i và ngo i trùng nhau cùng ệ nghĩa m t ph n t ầ ử ộ • Xem nh là h p l ư
ạ
cùng đ nh nghĩa m t ph n t
(thu c tính ) gi ng nhau.
ầ ử
ị
ố
ộ ộ ợ ệ ế ộ
ộ ộ
tham chi u n i và tham chi u ngo i: ạ ế V m t ặ lý thuy tế , n u m t ph n t hay thu c tính ử ế ề ộ đ hai n i thì đ nh nghĩa n i (c c b ) ụ ở ị ượ c u tiên h n các đ nh nghĩa DTD ngo i. s đ ạ ị ơ ẽ ượ ư Th c tự ế, h u h t các trình ki m tra đ u:
12/27/13
Document Type Definition
35
K t h p 2 lo i DTD (4)
ế ợ
ạ
]>
Trong file order.dtd cũng khai báo:
c trình phân tích xem là h p l
. thì đ ợ ệ
ượ
Ví d :ụ
12/27/13
Document Type Definition
36
K t h p 2 lo i DTD (5.)
ế ợ
ạ
ế
ư
ầ ử
ẽ ư
ộ
Nh ng n u khai báo: (PRICE là m t ph n t ) thì trình phân tích s đ a ra thông báo l
i.ỗ ớ
L u ýư ặ ườ
: v i các trình duy t thì g p tr ẽ ể ạ ợ ỉ
c tính h p l ợ
ng h p nh ư ợ ệ trên s không đ a ra thông báo gì. Vì trình duy t ư ệ c tính h p khuôn d ng (well- ch ki m tra đ ượ formed) ch không ki m tra đ ệ ượ ể ứ (valid) c a tài li u XML. ệ ủ
12/27/13
Document Type Definition
37
N i dung
ộ
Dùng DTD ki m tra tính h p l
XML
ợ ệ
ể
12/27/13
Document Type Definition
38
DTD và tính h p l
c a tài li u
ợ ệ ủ
ệ
ộ ố ị S d ng m t s đ a ch cung c p d ch v ki m tra ỉ ụ ể ấ ị
ế
ư ộ ể
ụ
ủ
Group:
• http://www.stg.brown.edu/service/xmlvalid
ử ụ tr c tuy n dùng DTD. ự Ví d nh b ki m tra XML c a Scholarly Technology
S d ng các trình so n th o XML nh XML writer, ử ụ ư ạ ả
Altova XMLSpy...
12/27/13
Document Type Definition
39
Tóm t
ắ
t bài h c ọ
ượ c s d ng ử ụ
ị ấ ể ệ ủ
ộ
ể ộ
ử ụ t ng ph n t ừ ẻ ầ ử
trong tài li u. ứ ể ẻ ấ
ỉ ậ ẻ ặ ấ
DTDs (Document Type Definitions) đ đ quy đ nh c u trúc c a tài li u XML. Có 2 cách khai báo DTD: n i và ngo i. ạ S d ng th đ khai báo n i dung ệ M i th có th ch a n i dung b t kỳ, ch ch a d ữ ứ ộ ỗ li u text, ch a các th con ho c ch p nh n c n i ả ộ ệ dung h n h p. ỗ ứ ợ