Tải bản đầy đủ (.pdf) (198 trang)

Giáo trình Công nghệ XML và Ứng dụng Khoa Công Nghệ Thông Tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.81 MB, 198 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG

GIÁO TRÌNH
CÔNG NGHỆ XML VÀ ỨNG DỤNG


MỤC LỤC

Chương 1: Tổng quan về XML ....................................................................................1
1.1.

Giới thiệu về XML ............................................................................................. 1

1.2.

Cấu trúc tài liệu XML ........................................................................................ 3

1.3.

Cú pháp XML và Well – formed tài liệu XML .................................................6

1.4.

Các đối tượng trong XML ...............................................................................29

1.4.1.

Element......................................................................................................29

1.4.2.



Attribute ....................................................................................................31

1.4.3.

Khi nào sử dụng Elements và Attributes...................................................32

1.4.4.

Namespace ................................................................................................ 34

1.4.5.

Encoding....................................................................................................38

1.5.

Viewing ............................................................................................................39

1.6.

XML Và CSS ...................................................................................................40

1.7.

Những điều cần ghi nhớ ...................................................................................42

Chương 2: DTD – Document Type Definition .......................................................... 47
2.1.


Giới thiệu về DTD ........................................................................................... 47

2.2.

Cấu tr c DTD v các ước t o DTD ............................................................... 49

2.3.

Khai báo DTD ..................................................................................................49

2.4.

Các thành phần trong DTD ..............................................................................51

2.4.1.

Khai báo Element trong DTD ...................................................................51

2.4.2.

Khai báo Attributes trong DTD.................................................................53

2.4.3.

Khai báo Entities trong DTD ....................................................................57

Chương 3: XML Schema ............................................................................................ 59
3.1.

Giới thiệu .........................................................................................................59


3.2.

Khai báo XML Schema ...................................................................................62

3.3.

Simple Types ...................................................................................................65

3.3.1.

XSD Simple Elements...............................................................................65

3.3.2.

XSD Restrictions/Facets ...........................................................................67

3.4.

Complex Types ................................................................................................ 73


3.4.1.

XSD Complex Element .............................................................................73

3.4.2.

XSD Empty Elements ...............................................................................76


3.4.3.

XSD Elements Only ..................................................................................77

3.4.4.

XSD Text-Only ......................................................................................... 77

3.4.5.

XSD Mixed Content ..................................................................................79

3.5.

XSD Indicators .................................................................................................80

3.5.1

Order Indicators ........................................................................................ 80

3.5.2

Occurrence Indicators ...............................................................................81

3.5.3

Group Indicators ........................................................................................ 84

3.6.


<any> element ..................................................................................................85

3.7.<anyAttribute> Element ....................................................................................... 87
3.8.

Substitution Element ........................................................................................ 89

3.9.

Phân chia lược đồ, các phong cách thiết kế XML Schema ............................. 94

3.10. Data Types – Các kiểu dữ liệu .........................................................................98
3.10.1. Kiểu chuỗi - String ....................................................................................98
3.10.2. Kiểu ngày tháng - Date and Time ...........................................................100
3.10.3. Kiểu số - Numeric ...................................................................................104
3.10.4. Kiểu hỗn hợp - Miscellaneous ................................................................106
Chương 4: XML DOM - Document Object Model ................................................108
4.1.

Giới thiệu .......................................................................................................108

4.2.

Nodes .............................................................................................................109

4.3.

Node Tree .......................................................................................................110

4.4.


Properties and Methods..................................................................................113

4.5.

XML DOM: Node Information .....................................................................119

4.6.

Node List ........................................................................................................122

4.7.

Get Node Values ............................................................................................130

4.8.

The XMLHttpRequest Object ........................................................................149

Chương 5: XPath .......................................................................................................163
5.1.

Giới thiệu .......................................................................................................163

5.2.

Các thuật ngữ trong XPath .............................................................................163

5.3.


Cú pháp Xpath ...............................................................................................164


5.4.

Toán tử – Operators .......................................................................................171

5.5.

XPath: Các ví dụ ............................................................................................172

Chương 6: Xquery .....................................................................................................181
6.1.

Giới thiệu .......................................................................................................181

6.2.

Duyệt các node ...............................................................................................182

6.3.

FLWOR ..........................................................................................................183

6.4.

Hiển thị dữ liệu trong HTML List .................................................................184

6.5.


XQuery: Các thuật ngữ và mối quan hệ.........................................................185

6.6.

Syntax – Cú pháp ...........................................................................................188

6.7.

Các toán tử so sánh ........................................................................................189

6.8.

Thêm các Elements và Attribute ....................................................................189

6.9.

Xây dựng hàm – functions .............................................................................191


DANH MỤC HÌNH ẢNH
Hình 1.1 Cấu trúc một tài liệu XML .................................................................................. 8
Hình 1.2 Ví dụ về 1 tài liệu XML ...................................................................................... 9
Hình 2.1 Cấu trúc DTD .................................................................................................... 54
Hình 4.1 Node tree .......................................................................................................... 115
Hình 4.2 Mối quan hệ trong cây ..................................................................................... 116
Hình 4.3 Danh sách node ............................................................................................... 127
Hình 4.4 Mối quan hệ node trong cây ........................................................................... 131

DANH MỤC BẢNG BIỂU
Bảng 1.1 Đặc điểm của HTML và XML ............................................................................ 6

Bảng 1.2 Thực thể tham chiếu .......................................................................................... 14
Bảng 2. 1 Các lo i thuộc tính ........................................................................................... 59
Bảng 2.2 Giá trị các thuộc tính ......................................................................................... 60
Bảng 3.1 Facets ................................................................................................................. 72
Bảng 3. 2 Các h n chế trên dữ liệu ................................................................................... 77
Bảng 3. 3 Các kiểu dữ liệu chuỗi .................................................................................... 104
Bảng 3.4 Kiểu dữ liệu ngày tháng ................................................................................. 108
Bảng 3.5 Bảng dữ liệu kiểu số ....................................................................................... 110
Bảng 4.1 Các lo i node ................................................................................................... 126
Bảng 5.1 Cú pháp node .................................................................................................. 170
Bảng 5.2 Ví dụ các biểu thức ......................................................................................... 170
Bảng 5.3 Biểu thức có Prediaces .................................................................................... 171
Bảng 5.4 Wildcard .......................................................................................................... 172
Bảng 5.5 Ví dụ wildcard ................................................................................................. 172
Bảng 5.6 Ví dụ chọn nhiều đường dẫn ........................................................................... 173
Bảng 5.7 Axis ................................................................................................................. 173
Bảng 5.8 Vị trí của biểu thức .......................................................................................... 175
Bảng 5.9 Toán tử Xpath ................................................................................................. 176


Chương 1: Tổng quan về XML
1.1.

Giới thiệu về XML

Trước khi XML ra đời đ c nhiều kiểu định
ng v n ản điện tử
như GML G n raliz Markup Languag của IBM SGML Stan ar G n raliz
Markup Languag của ANSI v o n m 1980 v HTML Hyp r T xt Markup
Languag . Tuy nhi n các phư ng pháp n y c nhiều nhược điểm như GML v SGML

kh ng th ch hợp để truyền ữ liệu tr n W
HTML chủ yếu ch trọng v o việc l m
cách n o hiển thị th ng tin h n l ch trọng đến nội ung truyền tải. Ch nh v vậy
XML Xt nsi l Markup Languag được t o ra để giải quyết các nhược điểm tr n.
So sánh giữa HTML v XML:
Bảng 1.1 Đặc điểm của HTML v XML
HTML

XML

HTML được thiết kế cho mục đ ch tr nh

XML được thiết kế cho mục đ ch lưu trữ v
truyền tải ữ liệu giữa các hệ thống khác

y ữ liệu

nhau
HTML ng để hiển thị ữ liệu v ch
trọng v o việc ữ liệu được hiển thị như

XML

ng để m tả ữ liệu v ch trọng

v o nội ung của ữ liệu

thế n o
HTML hiển thị th ng tin


XML m tả thông tin

Đặc trưng của XML:
Ng n ngữ đánh ấu markup tag ra đời nhằm hướng tới việc thể hiện ữ liệu
th o cách để

n nhận v

n giao tiếp đọc hiểu lẫn nhau v tổ chức ữ liệu để trao đổi

m kh ng ị lệ thuộc v o các chư ng tr nh ứng ụng v platform khi giao tiếp
Do vậy các ứng ụng v người l m ra phần mềm cần c một ng n ngữ hay
cách thức để tổ chức ữ liệu ễ ng cho người ứng ụng v máy t nh đọc hiểu m
kh ng ị lệ thuộc ất kỳ v o tool hay platform cụ thề


XML – Extensible Markup Language

1


o

Cho phép tổ chức lưu trữ ữ liệu th o cấu tr c th o ngữ nghĩa ễ
giao tiếp hay trao đổi. B n c nh đ
ữ liệu một cách ễ

ng

XML còn cho phép việc khai thác


ng th ng qua ất kỳ tr nh so n thảo đ n giản nhất

m kh ng cần tool hỗ trợ
o

Cho phép người sử ụng định nghĩa nội ung tag mới ph hợp với qui
định về c pháp linh động trong định nghĩa tag m kh ng ị
uộc
th o các tag qui định sẵn ph hợp với mục đ ch v nội ung của người sử
ụng

o

Nội ung v tổ chức được lưu trữ trong fil c phần mở rộng l xml

o

Các nội ung qui định cách viết nội ung viết xml tuân th o các qui định
của W3C chi tiết t i trang www.w3c.org



XML Parser
o

L một chư ng tr nh kiểm tra x m tập tin đ viết đ ng c pháp th o qui
định hay chưa

o


Được hỗ trợ cho người lập tr nh v ứng ụng để khai thác ữ liệu của
XML

o

C 02 lo i tất cả


Hỗ trợ kiểm tra x m XML c đ ng qui định định

ng của quá

tr nh giao tiếp hay kh ng vali ation th ng qua các qui định thiết
lập trong DTD hay Sch ma


Chỉ kiểm tra x m XML c viết đ ng qui luật qui định hay kh ng
kiểm tra w ll-form



kh ng kiểm tra vali ation

Các th tag của XML thường kh ng được định nghĩa trước m ch ng được
t o ra th o quy ước của người hoặc Chư ng tr nh t o ra XML th o những
quy ước của ch nh họ




XML sử ụng các khai áo kiểu ữ liệu DTD Docum nt Typ D finition hay
lược đồ Sch ma để m tả ữ liệu.

Ưu điểm của XML:


Dữ liệu độc lập l ưu điểm ch nh của XML. Do XML chỉ
ằng

ng để m tả ữ liệu

ng t xt n n tất cả các chư ng tr nh đều c thể đọc được XML.



Dễ ng đọc v phân t ch ữ liệu nhờ ưu điểm n y m XML thường được
để trao đổi ữ liệu giữa các hệ thống khác nhau



Dễ



Lưu trữ cấu h nh cho w

ng để t o 1 fil XML
sit
2


ng


1.2.


Cấu trúc tài liệu XML
Gồm có 02 phần
o

Document prolog: Chứa đựng các th ng tin tổng quan về t i liệu –
m ta ata v

ao ồm 02 phần



Khai báo: XML Declaration



Phần ổ trợ cung cấp th ng tin về t i liệu XML misc llan ous
ao gồm Document Type Declaration, comments, processing
instructions, whitespace, ….



To n ộ phần Docum nt prolog c hay kh ng c cũng được
nhưng khuyến cáo của W3C n n luôn có dòng XML
Declaration


o

Root Element: đây l tag lớn uy nhất của t i liệu chứa tất cả tag con
n trong v nội ung của t i liệu XML

H nh 1.1 Cấu tr c một t i liệu XML


Một v

ụ đ n giản về t i liệu XML

3


H nh 1.2 V


ụ về 1 t i liệu XML

Định nghĩa các thành phần trong cấu trúc XML
o

T i liệu XML n n ắt đầu với XML


claration ở òng đầu ti n

Cú pháp khai báo

<?xml version=”” encoding=”” standalone=”” ?>



Thuộc t nh v rsion trong c pháp xml tr n thể hiện các th nh
phần XML được viết phải tuân th o qui định trong v rsion. Thuộc
t nh n y ắt uộc phải sử ụng khi c khai áo xml ở tr n. Hiện
t i c 2 v rsion của XML cái đầu ti n XML 1.0 được định
nghĩa đầu ti n v o n m 1998 kể từ đ n trải qua nhiều lần sửa
đổi nhỏ nhưng vẫn giữ nguy n v rsion t n l 1.0 v đến 2008 th
đ l phi n ản thứ 5 của XML 1.0 n được ng rộng r i v
lu n được khuy n l n n sử ụng. Phi n ản thứ 2 l XML 1.1
được c ng ố ng y 4/2/2004 ản thứ 2 của XML 1.1 được c ng
ố ng y 16/8/2006 những thay đổi ch nh của ản 1.1 l cho phép
c khả n ng sử ụng các ký tự kết th c òng ựa tr n nền tảng
EBCDIC và Unicode 3.2 nhưng n kh ng được ng rộng r i v
chỉ ng khi ta muốn sử ụng các t nh n ng khác iệt đ . Muốn

4


iết

nhiều

h n

về

sự


khác

iệt

của

n

th

v o

http:// n.wikip ia.org/wiki/XML để x m


Thuộc t nh nco ing thể hiện nội ung chuyển đổi ký tự trong t i
liệu xml để pars r chuyển đổi nội ung v n ản đ ng định ng
chữ để chuyển đến cli nt. Thuộc t nh n y l c hay kh ng c cũng
được. Khi kh ng c mặc định l UTF-8



Thuộc t nh stan alon th ng áo cho pars r iết l t i liệu c
tham chiếu hay kh ng tham chiếu đến các ntity được định nghĩa


n ngo i t i liệu hay mặc định được khai áo ởi pars r




Giá trị y s: t i liệu kh ng tham chiếu đến các xt rnal ntity



Giá trị no: giá trị mặc định nếu thuộc t nh nco ing kh ng được
khai áo để thể hiện t i liệu sẽ tham chiếu đến xt rnal ntity

o

Processing Instructions


Các lệnh thực thi được y u cầu đến ộ pars r



C pháp: ắt đầu với <? V kết th c với ?> nhưng kh ng phải l
<?xml ?>

o

Whitespace


L các khoảng trắng – spac s ký tự xuống h ng – carriage
r turns ký tự ắt đầu h ng – linefeeds, và các tab – tabs

o




Document Type Declaration



Khai áo hay tham chiếu đến DTD hỗ trợ vali ation.

Comments


Cho phép ghi ch

giảng giải nội ung thực hiện v sẽ được pars r

ỏ qua khi parsing


Cú pháp: <!– nội ung ch th ch –>



Không được phép c comm nt lồng trong comm nt



Được xuất hiện

ất kỳ trong đâu ngo i trừ trước XML


claration kh ng được nằm trong phần t n tag

o

Kh ng được phép c ký tự “–” ở giữa comm nt

Marked-up tag


Được

ng trong phần thân của t i liệu



Bao gồm tag ắt đầu tag kết th c tag cho thân rỗng tham chiếu
đến các ntity tham chiếu đến các ký tự comm nts …
5




L tất cả các chữ v ký tự kh ng nằm trong các tag markup. Hay
l ký tự ất kỳ trong v n ản nằm trong thân tag hay ất kỳ đâu
ngoài tag



C thể kết hợp với các whit spac




Được parsing ởi pars r PCDATA v c thể kh ng được pars
ởi pars r v để nguy n giá trị để gửi tới ứng ụng CDATA



C pháp để chữ kh ng được pars <![CDATA[…]]>
o

Lưu ý: CDATA kh ng thể lồng th m CDATA v c pháp của
n phải ch nh xác giữa các ấu hiệu nghĩa l kh ng được c
th m ất kỳ khoảng trắng n o cả

1.3.

Cú pháp XML và Well – formed tài liệu XML

Một t i liệu xml vali ation th phải l t i liệu viết đ ng c pháp – well-formed.
Mặc định các ộ pars r chỉ kiểm tra w ll-form
o vậy muốn kiểm tra vali ation th
ộ pars r phải được thiết lập để thực hiện nội ung n y
Well-formed: các qui định tổng quát về cách thức viết XML đúng cú pháp


Tài liệu XML chỉ có duy nhất một tag làm root duy nhất và sẽ chứa tất cả các
node con bên trong
o

Nội dung này thể hiện khái niệm tư ng tự như m h nh cây chỉ có một

nốt root duy nhất và là cha duy nhất trong cây sau đ l các no con
n ưới



Các tag trong tài liệu xml phải tuân thủ qui luật là mở tag phải c đ ng tag
<a c>…</a c>



Nếu là tag rỗng thì phải dùng d ng cú pháp <abc/>



Ký tự đầu tiên của tên luôn bắt đầu với một chữ hay dấu g ch ưới (_)



Kế tiếp ký tự theo có thể là chữ, số, g ch ưới, g ch ngang, dấu chấm, và dấu
chấm phẩy



Trong tên không cho phép bất kỳ ký tự khoảng trắng, enter, tab (whitespace)
nào cả



T n n n đặt c ý nghĩa v




ng đọc hiểu



Các tên tag phải tuân theo qui luật đặt tên



Tên của các thuộc tính trong tag là duy nhất

6




Nếu tên thuộc tính có kết hợp với namespace (qualified name bao gồm
nam spac _pr fix:local_nam





th cũng phải tuân theo qui luật nó là duy nhất

o

Tên namespace là giống nhau


o

Tên local name là khác nhau

Thuộc tính luôn xuất hiện một cặp bao gồm
o

tên_thuộc_t nh = “giá trị của thuộc t nh” hay

o

tên_thuộc_t nh = „giá trị của thuộc t nh‟

Tất cả các tag trong tài liệu phải được lồng nhau th o đ ng thứ tự, tag không
được đ ng mở tùy ý



Tất cả khai báo namespace trong tài liệu XML phải có prefix khác nhau, duy
nhất v tuân đ ng luật về đặt t n tư ng tự như tag



XML là một ngôn ngữ có phân biệt hoa thường – case sensitive, do vậy, chúng
ta cần lưu ý khi sử dụng ký tự trong quá tr nh đặt tên và truy xuất

 XML Basic: Syntax Rules
Các luật c pháp của XML th rất đ n giản v logic các luật cũng ễ học v




sử ụng.
 Tất cả các element đều phải có tag đóng
Trong HTML một v i l m nt kh ng cần phải c tag đ ng thật sự đ ng quy
chuẩn th phải c nhưng ộ phân t ch c pháp của HTML vẫn chấp nhận mà không
áo lỗi nhưng sẽ ảnh hưởng đến phần nội ung kể từ đ trở đi)

This is a paragraph.



Trong XML th l i kh ng được như vậy tất cả l m nt đều phải c tag đ ng.

This is a paragraph.





 Phân biệt chữ hoa chữ thường
Trong XML th <L tt r> khác <l tt r>. Tag đ ng v tag mở phải giống nhau y
hệt.
<Message>This is incorrect</message>
<message>This is correct</message>

7


 Lồng nhau thì phải đúng thứ tự
Trong HTML lồng kh ng th o thứ tự cũng kh ng áo lỗi:
<b><i>This text is bold and italic</b></i>

Còn trong XML th tuyệt đối phải đ ng thứ tự:
<b><i>This text is bold and italic</i></b>


 Phải có 1 element gốc
T i liệu XML phải c chứa 1 l m nt m l cha của tất cả các l m nt khác.
El m nt n y gọi l root l m nt.
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

 Các giá trị của thuộc tính phải được bao lại bằng nháy kép
El m nt XML c thể c các thuộc t nh th o cặp như nam /valu như HTML.
Trong XML th các giá trị phải được nằm trong nháy kép. X m thử 2 v
đầu th sai v

ụ ưới v

ụ sau th đ ng:

<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
--------------------------------------------<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

 Các tham chiếu thực thể
Một v i ký tự c ý nghĩa đặc iệt trong XML. Nếu ta đặt 1 ký tự như “<” n
trong l m nt XML. N sẽ gây ra lỗi v các pars r sẽ cho n l ắt đầu 1 l m nt

mới.V

ụ:

<message>if salary < 1000 then</message>

Để tránh điều n y thay thế “<” ằng 1 thực thể tham chiếu
Ví ụ:
8




<message>if salary < 1000 then</message>

Dưới đây l

ảng thực thể tham chiếu trong XML:
Bảng 1.2 Thực thể tham chiếu

<

<

less than

>

>


greater than

&

&

ampersand

'



apostrophe

"



quotation mark

Lưu ý: Chỉ c

ấu < v & l kh ng hợp lệ trong XML mấy ký hiệu khác th cũng c

thể sử ụng được tuy nhiên tốt nhất l n n thay thế ch ng.
 Ghi chú trong XML
Cũng giống HTML đ l :
<!-- This is a comment -->

 Khoảng trắng được giữ nguyên trong XML

Trong HTML th các khoảng trắng ư thừa sẽ ị cắt đi hết chỉ giữ l i 1 cái
khoảng trắng. Còn trong XML th n kh ng ị cắt
 XML lưu trữ dòng mới như là LF (line Feed)
Các ứng ụng win ows lưu trữ 1 òng mới: Ký tự ắt đầu òng v ký tự xuống
dòng (CR + LF)
o Unix and Mac OSX uses LF.
o Old Mac systems uses CR.
o XML stores a new line as LF
 Một số ví dụ về well formed tài liệu XML
o

Ví dụ 1

9




T i liệu ho n to n w ll-form cho

tag thứ 2 ook c thứ tự con

kh ng đ ng thứ tự trong DTD v các tag khác nhưng luật w llform


kh ng đề cập đến thứ tự

Khi Vi w t i liệu n y tr n Brows r ch ng ta thấy

10



o

Ví dụ 2

 T i liệu n y kh ng w ll-form
pháp xml declaration
 Tool checking



Browser

11

v c khoảng trắng trong khai áo c


o

Ví dụ 3



T i liệu kh ng w ll-form

v tag mở kh ng tr ng tag đ ng

12



o

Ví dụ 4



T i liệu kh ng w ll-formed vì các khai báo trong DTD không có
chứa các khoảng trắng y u cầu

13


o

Ví dụ 5



T i liệu kh ng w ll-formed v c chứa khoảng trắng trong tag

14


o

Ví dụ 6




T i liệu kh ng w ll-form

v c chứa nhiều h n 1 no

15

root


o

Ví dụ 7



T i liệu kh ng w ll-form

16

v lồng tag t y ý


o

Ví dụ 8



T i liệu kh ng w ll-form


17

v mở tag v kh ng đ ng tag


o

Ví dụ 9



Tài liệu w ll-formed

18


o

Ví dụ 10



T i liệu kh ng w ll-form

v giá trị attri ut thiếu ấu đ ng ”

19



o

Ví dụ 11



T i liệu w ll-form

v comm nt được v

20




×