document type definition - xml and dtd (entity)
TRANSCRIPT
Document Type Definition 1
Document Type DefinitionCBGD: Nguy n Tr n Thi Vănễ ầ
NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG
CHƯƠNG 05
04/23/16
Document Type Definition 2
KHAI BÁO TH C THỰ ỂCBGD: Nguy n Tr n Thi Vănễ ầ
NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG
BÀI 3
04/23/16
N i dungộThực thể là gì?1
Thực thể tổng quát nội2
Thực thể tổng quát ngoại3
Thực thể tham số nội4
Thực thể tham số ngoại5
Tạo tài liệu từ nhiều phần nhỏ 6
04/23/16 3Document Type Definition
4
M c tiêuụ Trình bày đ c ý nghĩa và công d ng c a ượ ụ ủ
vi c khai báo và s d ng th c th trong ệ ử ụ ự ểDTD
Khai báo và s d ng đ c th c th t ng ử ụ ượ ự ể ổquát (n i và ngo i)ộ ạ
Khai báo và s d ng đ c th c th tham ử ụ ượ ự ểs (n i và ngo i)ố ộ ạ
K t h p nhi u t p tin đ t o tài li u XML ế ợ ề ậ ể ạ ệhoàn ch nh.ỉ
Document Type Definition04/23/16
V m t b n ch t, th c th là nh ng đ n ề ặ ả ấ ự ể ữ ơv l u tr , hay nói cách khác, đó chính là ị ư ữm t ph n c a tài li uộ ầ ủ ệ
Nó có th là m t t p tin (th c th ngo i) ể ộ ậ ự ể ạho c m t chu i n i dung (th c th n i)ặ ộ ỗ ộ ự ể ộ
M i th c th đ u có tên riêng đ ta có ỗ ự ể ề ểth tham chi u t i.ể ế ớ
Thực thể là gì?1
04/23/16 5Document Type Definition
Phân lo i th c th :ạ ự ể
Entities
General Entities
Parameter Entities
Internal General Entities
External General Entities
Internal Parameter Entities
External Parameter Entities
Thực thể là gì?1
04/23/16 6Document Type Definition
M t cách phân lo i khác:ộ ạ
Entities
Parsed Entities
Unparsed Entities
Internal Entities
External Entities
Internal Entities
Thực thể là gì?1
04/23/16 7Document Type Definition
Th c th phân tích: là th c th ch a bên ự ể ự ể ứtrong nó m t n i dung XML h p chu n ộ ộ ợ ẩ(well-formed)
Th c th không phân tích: ch a d li u ự ể ứ ữ ệnh phân, các d li u không ph i XML ị ữ ệ ả(hi n t i lo i th c th này ch a đ c XML ệ ạ ạ ự ể ư ượh tr đ y đ ).ỗ ợ ầ ủ
Thực thể là gì?1
04/23/16 8Document Type Definition
V n b n th ng g p ă ả ườ ặnh ng l i khó ánh ư ạ đmáy ho c quá dài?ặ
V n b n th ng g p ă ả ườ ặnh ng l i khó ánh ư ạ đmáy ho c quá dài?ặ
C n dùng 1 tên ầg i/n i dung khác ọ ộ để
thay thế
C n dùng 1 tên ầg i/n i dung khác ọ ộ để
thay thế
Gi i phápả : S d ng ử ụth <!ENTITY> ẻ
trong DTD
Gi i phápả : S d ng ử ụth <!ENTITY> ẻ
trong DTD
Trong ngôn ng C/C++:ữ#define PI 3,14159
Tham chi uế
Thực thể tổng quát nội2
04/23/16 9Document Type Definition
Cách khai báo: s d ng th <!ENTITY>ử ụ ẻ<!ENTITY name “n i dung”>ộ
Cách s d ng: ử ụ gi ng nh cách s d ng ố ư ử ụcác tham chi u th c th có s nế ự ể ẵ&tên_tham_chi uế ;
Cách đ t tên tham chi u:ặ ế s d ng ch ử ụ ữcái và d u g ch d i (_underscore), ấ ạ ướkhông s d ng ký t tr ng.ử ụ ự ắ
Thực thể tổng quát nội2
04/23/16 10Document Type Definition
11
<!ENTITY WWW “World Wide Web”>
<p>We all use the &WWW;</p>
Khai báo thực thể tổng quát nội
Tham chiếu tới thực thể
<p>We all use the World Wide Web</p>
Kết quả tương đương
DTD
XML
Thực thể tổng quát nội2
04/23/16 Document Type Definition
S d ng th c th t ng quát n i trong ử ụ ự ể ổ ộDTD có đ c không?ượ
<!ENTITY NTTV “Nguyen Tran Thi Van”>
<!ENTITY COPY11 “Copyright 2011 &NTTV;”> Câu tr l i:ả ờ có th đ c!ể ượ
Thực thể tổng quát nội2
04/23/16 12Document Type Definition
M t ví d khác:ộ ụ<!ENTITY SIGNATURE
“<SIGNATURE>
<COPYRIGHT>1999 Elliotte Rusty Harold</COPYRIGHT>
<EMAIL>[email protected]</EMAIL><LAST_MODIFIED>March 10,
1999</LAST_MODIFIED></SIGNATURE>”
>
Thực thể tổng quát nội2
04/23/16 13Document Type Definition
H n ch :ạ ế– Không th s d ng tham chi u vòngể ử ụ ế
<!ENTITY NTTV “©11; Nguyen Tran Thi Van”> <!ENTITY COPY11 “Copyright 2011 &NTTV;”>
– Không đ c phép s d ng trong cú pháp c a ượ ử ụ ủDTD<!ENTITY PCD “(#PCDATA)”><!ELEMENT ANIMAL &PCD;><!ELEMENT FOOD &PCD;>
Thực thể tổng quát nội2
04/23/16 14Document Type Definition
Không đ c phép ch a các ký t ượ ứ ự %, &, và “ m t cách tr c ti p (có th s d ng ộ ự ế ể ử ụth c th tham chi u có s n)ự ể ế ẵ
Tuy nhiên, th c th t ng quát có th ự ể ổ ểch a các th bên trong, và có th đ c ứ ẻ ể ượvi t trên nhi u dòng (nh ví d tr c).ế ề ư ụ ướ
Thực thể tổng quát nội2
04/23/16 15Document Type Definition
Th c th t ng quát có s n: ự ể ổ ẵ g m 5 th c ồ ựth nh đã đ c p các bài tr cể ư ề ậ ở ướ
<!ENTITY lt “&#60;”>
<!ENTITY gt “>”>
<!ENTITY amp “&#38;”>
<!ENTITY apos “'”>
<!ENTITY quot “"”>
Thực thể tổng quát nội2
04/23/16 16Document Type Definition
< Produces the left angle bracket <
> Produces the right angle bracket >
& Produces the ampersand &
' Produces a single quote character ‘
" Produces a double quote character “
Thực thể tổng quát nội2
04/23/16 17Document Type Definition
Th c th ngo i là nh ng d li u n m bên ự ể ạ ữ ữ ệ ằngoài t p tin chính (t p tin ch a nút g c ậ ậ ứ ốc a tài li u)ủ ệ
Tham chi u th c th ngo i cho phép ế ự ể ạchúng ta nhúng (k t h p) các n i dung ế ợ ộbên ngoài vào tài li u chính (t c là xây ệ ứd ng tài li u t nhi u ph n nh riêng ự ệ ừ ề ầ ỏbi t)ệ
Thực thể tổng quát ngoại3
04/23/16 18Document Type Definition
Cú pháp khai báo:<!ENTITY name SYSTEM “URI”>
Ví d : ta có m t t p tin XML nh sauụ ộ ậ ư<?xml version=”1.0”?><SIGNATURE><COPYRIGHT>1999 Elliotte Rusty Harold</COPYRIGHT><EMAIL>[email protected]</EMAIL>
</SIGNATURE>
http://metalab.unc.edu/xml/signature.xml
http://metalab.unc.edu/xml/signature.xml
Thực thể tổng quát ngoại3
04/23/16 19Document Type Definition
Thêm khai báo sau vào ph n DTD:ầ<!ENTITY SIG SYSTEM
“http://metalab.unc.edu/xml/signature.xml”>
Có th s d ng đ ng d n t ng đ i, ví d :ể ử ụ ườ ẫ ươ ố ụ<!ENTITY SIG SYSTEM “/xml/signature.xml”>
N u các t p tin n m trong cùng th m c:ế ậ ằ ư ụ<!ENTITY SIG SYSTEM “signature.xml”>
Thực thể tổng quát ngoại3
04/23/16 20Document Type Definition
21
<!ENTITY chap1 SYSTEM "http://...chap1.xml">
<mylife> &chap1; &chap2;</mylife>
External Entity Declaration
Entity Reference
<mylife> <teen>yada yada</teen> <adult> blah blah</adult>
</mylife>
Logically equivalent to inlining file contents
URL
DTD
XML
Thực thể tổng quát ngoại3
04/23/16 Document Type Definition 21
S d ng ký hi u ph n trăm (%) thay cho d u và (&).ử ụ ệ ầ ấ Th c th tham s đ c s d ng ự ể ố ượ ử ụ bên trong ph n khai ầ
báo DTD ch không đ c s d ng trong tài li u XML.ứ ượ ử ụ ệ Cú pháp:
<!ENTITY % name “n i dung”>ộ Ví dụ
<!ENTITY % PCD “(#PCDATA)”>
<!ELEMENT ANIMAL %PCD;> <!ELEMENT FOOD %PCD;>
Thực thể tham số nội4
04/23/16 22Document Type Definition
Vi c s d ng th c th tham s th c s có ý nghĩa khi ta khai ệ ử ụ ự ể ố ự ựbáo nhi u ph n t có n i dung gi ng ho c g n gi ng nhauề ầ ử ộ ố ặ ầ ố
Gi s ta có 3 ph n t đ c khai báo nh sau:ả ử ầ ử ượ ư<!ELEMENT PARAGRAPH (PERSON | DEGREE | MODEL | PRODUCT | ANIMAL | INGREDIENT)*>
<!ELEMENT CELL (PERSON | DEGREE | MODEL | PRODUCT | ANIMAL | INGREDIENT)*>
<!ELEMENT HEADING
(PERSON | DEGREE | MODEL | PRODUCT | ANIMAL | INGREDIENT)*>
N u là 30 ho c ế ặ300 ph n t nh ầ ử ư
v y thì sao?ậ
Thực thể tham số nội4
04/23/16 23Document Type Definition
Cách gi i quy t:ả ế
<!ENTITY % inlines “(PERSON | DEGREE | MODEL | PRODUCT | ANIMAL |
INGREDIENT)*”>
<!ELEMENT PARAGRAPH %inlines;><!ELEMENT CELL %inlines;><!ELEMENT HEADING %inlines;>
Thực thể tham số nội4
04/23/16 24Document Type Definition
L u ýư : tham chi u th c th tham s ph i đ c ế ự ể ố ả ượkhai báo tr c khi s d ng.ướ ử ụVí d sau là không h p chu n:ụ ợ ẩ
<!ELEMENT FOOD %PCD;> <!ELEMENT ANIMAL %PCD;> <!ENTITY % PCD “(#PCDATA)”>
<!ELEMENT FOOD %PCD;> <!ELEMENT ANIMAL %PCD;> <!ENTITY % PCD “(#PCDATA)”>
Thực thể tham số nội4
04/23/16 25Document Type Definition
Cho phép ta xây d ng m t khai báo DTD l n t ự ộ ớ ừnhi u t p tin DTD nh .ề ậ ỏ
Ví d : ta có các t p tin DTD khai báo cho các ụ ậth PLAYER, TEAM và SEASON, ta có th g p ẻ ể ộchúng l i đ t o ra khai báo DTD hoàn ch nh.ạ ể ạ ỉ
Cú pháp khai báo và s d ng:ử ụ<!ENTITY % name SYSTEM “URI”>%name;
VD:<!ENTITY % player SYSTEM “player.dtd”>%player;
Thực thể tham số ngoại5
04/23/16 26Document Type Definition
04/23/16 27Document Type Definition
Tạo tài liệu từ nhiều phần nhỏ 6
Ta có th s d ng ể ử ụ th c th ngo iự ể ạ (th c ựth ể t ng quátổ và th c th ự ể tham số) đ ểt o m t tài li u XML hoàn ch nh t nhi u ạ ộ ệ ỉ ừ ềt p tin nh .ậ ỏ
Th c th t ng quát đ ghép nhi u n i ự ể ổ ể ề ộdung XML l i v i nhau.ạ ớ
Th c th tham s đ ghép nhi u n i dung ự ể ố ể ề ộDTD l i v i nhau.ạ ớ
<?xml version=”1.0” standalone=”no”?>
<!DOCTYPE PLAYER SYSTEM “player.dtd”>
<?xml version=”1.0” encoding=”UTF-8”?><PLAYER>
<GIVEN_NAME>Chris</GIVEN_NAME><SURNAME>Hoiles</SURNAME>
<P>Catcher</P>
</PLAYER>
04/23/16 28Document Type Definition
Tạo tài liệu từ nhiều phần nhỏ 6
L u ý: thu c tính encoding là b t ư ộ ắbu c ph i có đ i v i nh ng ph n ộ ả ố ớ ữ ầtài li u dùng đ nhúng vào tài ệ ểli u khác.ệ
<?xml version=”1.0” encoding=”ISO-88591”?><?xml version=”1.0” encoding=”UTF-8”?>
04/23/16 29Document Type Definition
Tạo tài liệu từ nhiều phần nhỏ 6
Tóm t t bài h cắ ọ Th c th t ng quát đ c s d ng cho các ự ể ổ ượ ử ụ
ph n c a n i dung tài li u XMLầ ủ ộ ệ Có 2 lo i là th c th t ng quát n i và th c ạ ự ể ổ ộ ự
th t ng quát ngo iể ổ ạ Th c th tham s đ c s d ng cho các ự ể ố ượ ử ụ
ph n c a khai báo DTDầ ủ Cũng có 2 lo i th c th tham s là tham s ạ ự ể ố ố
n i và tham s ngo i.ộ ố ạ
30Document Type Definition04/23/16
H T BÀIẾH T CH NGẾ ƯƠ
31Document Type Definition04/23/16