31
Document Type Definition 1 Document Type Definition CBGD: 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 - xml and dtd (entity)

Embed Size (px)

Citation preview

Page 1: Document Type Definition -  xml and dtd (entity)

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

Page 2: Document Type Definition -  xml and dtd (entity)

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

Page 3: Document Type Definition -  xml and dtd (entity)

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

Page 4: Document Type Definition -  xml and dtd (entity)

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

Page 5: Document Type Definition -  xml and dtd (entity)

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

Page 6: Document Type Definition -  xml and dtd (entity)

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

Page 7: Document Type Definition -  xml and dtd (entity)

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

Page 8: Document Type Definition -  xml and dtd (entity)

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

Page 9: Document Type Definition -  xml and dtd (entity)

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

Page 10: Document Type Definition -  xml and dtd (entity)

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

Page 11: Document Type Definition -  xml and dtd (entity)

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

Page 12: Document Type Definition -  xml and dtd (entity)

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

Page 13: Document Type Definition -  xml and dtd (entity)

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

Page 14: Document Type Definition -  xml and dtd (entity)

H n ch :ạ ế– Không th s d ng tham chi u vòngể ử ụ ế

<!ENTITY NTTV “&COPY11; 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

Page 15: Document Type Definition -  xml and dtd (entity)

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

Page 16: Document Type Definition -  xml and dtd (entity)

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 “&#38;#60;”>

<!ENTITY gt “&#62;”>

<!ENTITY amp “&#38;#38;”>

<!ENTITY apos “&#39;”>

<!ENTITY quot “&#34;”>

Thực thể tổng quát nội2

04/23/16 16Document Type Definition

Page 17: Document Type Definition -  xml and dtd (entity)

&lt; Produces the left angle bracket <

&gt; Produces the right angle bracket >

&amp; Produces the ampersand &

&apos; Produces a single quote character ‘

&quot; Produces a double quote character “

Thực thể tổng quát nội2

04/23/16 17Document Type Definition

Page 18: Document Type Definition -  xml and dtd (entity)

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

Page 19: Document Type Definition -  xml and dtd (entity)

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

Page 20: Document Type Definition -  xml and dtd (entity)

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

Page 21: Document Type Definition -  xml and dtd (entity)

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

Page 22: Document Type Definition -  xml and dtd (entity)

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

Page 23: Document Type Definition -  xml and dtd (entity)

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

Page 24: Document Type Definition -  xml and dtd (entity)

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

Page 25: Document Type Definition -  xml and dtd (entity)

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

Page 26: Document Type Definition -  xml and dtd (entity)

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

Page 27: Document Type Definition -  xml and dtd (entity)

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.ạ ớ

Page 28: Document Type Definition -  xml and dtd (entity)

<?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

Page 29: Document Type Definition -  xml and dtd (entity)

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

Page 30: Document Type Definition -  xml and dtd (entity)

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

Page 31: Document Type Definition -  xml and dtd (entity)

H T BÀIẾH T CH NGẾ ƯƠ

31Document Type Definition04/23/16