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

Xử lý song song trên PVM và ứng dụng trong bài toán bảo mật

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 (1.45 MB, 99 trang )



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


TRỊNH THỊ XUÂN





XỬ LÝ TRUY VẤN TRÊN CƠ SỞ DỮ LIỆU
TÍCH HỢP XML




LUẬN VĂN THẠC SỸ






Hà Nội, Năm 2006


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



TRỊNH THỊ XUÂN





XỬ LÝ TRUY VẤN TRÊN CƠ SỞ DỮ LIỆU
TÍCH HỢP XML


Chuyên ngành: Công nghệ thông tin
Mã số: 1.01.10
LUẬN VĂN THẠC SỸ

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS ĐOÀN VĂN BAN



Hà Nội, Năm 2006


1
MỤC LỤC
MỘT SỐ TỪ VIẾT TẮT 4
MỘT SỐ THUẬT NGỮ 5
MỞ ĐẦU 7
CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN CỦA XML 8
I.1. XML là gì: 8

I.2. Cấu trúc của tài liệu XML: 10
I.3. Cấu trúc các thành phần và thuộc tính: 11
I.4. Cú pháp tài liệu XML: 11
I.5. Không gian tên: 11
I.6. Tài liệu XML hợp lệ: 13
I.6.1. Định nghĩa kiểu tài liệu – DTD: 14
a. Định nghĩa kiểu tƣ liệu DTD là gì? 14
b. Tạo khai báo và định nghĩa kiểu dữ liệu DTD: 14
c. Danh sách các phần tử con: 15
d. Trình tự đặt phần tử DTD: 15
e. Tạo lập phần tử con 15
f. Định nghĩa DTD ngoại: 16
g. Thực thể và thuộc tính DTD: 16
h. Các hạn chế của DTD: 18
I.6.2. Sơ đồ - Schema: 19
I.6.3. Bảng định kiểu: 19
I.7. XML đƣợc sử dụng nhƣ thế nào? 20
I.8. Các ứng dụng của XML: 21
I.8.1. XML để biểu diễn: 21


2
I.8.2. XML để truyền thông: 21
I.8.3. XML-RPC: 22
I.8.4. B2B: 22
I.9. Kết luận: 23
CHƢƠNG II: PHÂN TÍCH XML 24
II.1. Phân tích XML bằng DOM: 25
II.1.1. DOM là gì? 25
II.1.2. DOM XML: 26

II.1.3. Các giao diện quan trọng trong DOM: 29
II.1.4. Khi nào sử dụng DOM 34
II.2. Phân tích XML bằng SAX: 35
II.2.1. SAX là gì? 35
II.2.2. Các bƣớc sử dụng SAX: 35
II.2.3.Trƣờng hợp lựa chọn bộ phân tích SAX: 35
II.2.4. Phân tích bằng SAX: 36
II.2.5. Các giao diện Callback: 37
II.2.6. Nhận tài liệu: 38
II.2.7. Nhận các thành phần tài liệu: 38
II.3. Kết luận: 38
CHƢƠNG III: CHUYỂN ĐỔI GIŨA XML VÀ MÔ HÌNH DỮ LIỆU 40
III.1. Chuyển đổi CSDL quan hệ sang tài liệu XML:[3] 40
III.1.1. Chuyển đổi phẳng – FLAT TRANSLATION 44
III.1.2. Thuật toán sự chuyển đổi lồng – Nesting based Translation 44
III.1.3. Chuyển đổi sử dụng các phụ thuộc bao hàm: thuật toán CoT 48
III.1.4. Chuyển đổi mô hình quan hệ sang DOM trong XML: 54
III.2. Chuyển đổi tài liệu XML sang cơ sở dữ liệu quan hệ[3] 67


3
III.2.1. Thuật toán gộp cơ sở 67
III.2.2. Thuật toán gộp chia sẻ: 71
III.2.3. Thuật toán Inlining chuyển đổi DTD sang lƣợc đồ quan hệ 71
III.3. Kết luận: 76
CHƢƠNG IV: XỬ LÝ TRUY VẤN 77
IV.1. Xử lý truy vấn XML theo hƣớng truyền thống: 79
IV.2. Xử lý truy vấn XML dựa theo phân lớp 83
IV.3. XQuery: An XML Query Language 83
1. Giới thiệu: 83

2. Ngôn ngữ XQuery:[8] 84
3. Sử dụng ngôn ngữ truy vấn XQuery: 88
IV.4. Kết luận 94
KẾT LUẬN 95
TÀI LIỆU THAM KHẢO 97


4
MỘT SỐ TỪ VIẾT TẮT
XML: eXtensible Markup Language
B2B: Business to Business
CoT: Contrains – based Languge
DOM: Document Object Model
DTD: Document Type Definition
FT: Flat Translation
FDI: Format Public Interface
HTML: Hyper Text Markup Language
NeT: Nesting based Translation
OQL: Object Query Language
PCDATA: Parser Character Data
RDB: Relation Database
RSBMS: Relation Database Management System
SAX: Simple API XML
SGML: Standard Generalized Markup Language
SQL: Structured Query Language
URI: Uniform Modeling Language
W3C: World Wide Web Consortium
XSLT: eExtensible Style Language Transformation
XSL: eXtensible Style Language
WML: Wireless Markup Language

UIML: User Interface Markup Language
CML: Chemical Markup Language
XUL: XML User Interface Language
PR1: Primary Relation Type 1
PR2: Primary Relation Type 2
SR1: Secondary Relation Type 1
SR2: Secondary Relation Type 2
KAP: Key Attribute Primary
KAG: Key Attribute General
FKA: Foreign Key Attribute
NKA: Non Key Attribute
IDN: Inclusion Dependency


5

MỘT SỐ THUẬT NGỮ
Attribute: Thuộc tính
Coment: Chú thích
Node: Nút
Object: Đối tƣợng
Document: Tài liệu
Parser: Bộ phân tích
Relation Schema: Lƣợc đồ quan hệ
Text: Dữ liệu
XML Processing Instruction: Chỉ thị xử lý dữ liệu
Element: Thành phần
Root: Gốc
Entity: Thực thể
Attlist: Định nghĩa danh sách thuộc tính

Schema: Sơ đồ
Object: Đối tƣợng
Child: Con
Item: Thành phần
Relation: Quan hệ
Where: Điều kiện
In: tham chiếu trong
Foreign key: Khóa ngoài
Intersect: Phép giao
Optional Operator: Toán tử tùy chọn
Or Operator: Toán tử hoặc
Plus Operator: Toán tử dấu cộng
Project: Phép chiếu


7
MỞ ĐẦU
Hiện nay, XML đã và đang nổi lên như là một nhân tố chuẩn cho định
dạng dữ liệu trên Web. Giống như HTML, XML là một tập con của SGML.
Nhưng trong HTML các thẻ được mô tả với mục đích chính là mô tả cách
trình bày dữ liệu trong một trang Web, ngược lại trong XML thì các thẻ được
sử dụng để mô tả chính các dữ liệu lưu trữ trong tài liệu đó. Chính vì vậy một
chương trình nhận một tài liệu XML có thể được biểu diễn bằng nhiều cách
khác nhau, có thể trích lọc trực tiếp trên nội dung của dữ liệu XML đó, hoặc
cũng có thể xây dựng một cấu trúc XML mới để phù hợp với ứng dụng của
chương trình.
Ngày nay khi mà có nhiều các ứng dụng thương mại hoạt động trên Web
và nhu cầu trao đổi thông tin tự động giữa các doanh nghiệp (Business to
Business – B2B) ngày càng được đặt ra thì một hệ thống xử lý truy vấn trên
cơ sở dữ liệu XML tích hợp sẽ giúp cho người sử dụng thông thường có thể

khai thác và xử lý thông tin một cách hiệu quả nhất, bao gồm: biểu diễn, trao
đổi, lưu trữ và truy cập dữ liệu. Dữ liệu được trích rút từ hệ thống có cấu trúc
và ngữ nghĩa sao cho có thể được hiểu bởi cả người và máy tính vì vậy còn có
thể được sử dụng lại cho nhiều mục đích khác nhau. Luận văn này trình bày
cách thức để thực hiện xử lý được các truy vấn trên cơ sở dữ liệu tích hợp
XML.
Luận văn được chia thành 4 chương:
Chương 1: Các khái niệm cơ bản của XML
Chương 2: Phân tích XML
Chương 3: Chuyển đổi giữa XML và các mô hình dữ liệu
Chương 4: Xử lý truy vấn


8
CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN CỦA XML
I.1. XML là gì:
XML là viết tắt của Extensible Markup Language, XML được sử dụng
để mô tả các tài liệu và dữ liệu dưới một dạng chuẩn tức là dựa trên một định
dạng của văn bản để cho phép dễ dàng truyền tải dữ liệu thông qua các giao
thức chuẩn của mạng. XML là ngôn ngữ định dạng mở rộng và ngôn ngữ tổng
quát dùng để định nghĩa dữ liệu thông qua các thẻ. XML được đưa ra với mục
tiêu là tăng cường các kiểu dữ liệu nhưng loại bỏ tối đa tính phức tạp. XML
không thực sự là một ngôn ngữ mà là một chuẩn để tạo ra các ngôn ngữ thỏa
mãn các quy chuẩn XML.[1]
Hiện nay, để xử lý dữ liệu trên Web và phát triển ứng dụng mạng, số thẻ
sẽ làm việc tiếp tục tăng lên ngày càng nhiều hơn và XML thực sự là một giải
pháp cho sự tăng lên thường xuyên của các thẻ. Do:
- Thứ nhất, ngôn ngữ XML trong sáng, đơn giản, dễ đọc, bởi được biểu
diễn ở dạng thuần văn bản.
- Thứ hai, ngôn ngữ XML cho phép tự định nghĩa thẻ nên mỗi người có

thể tự đưa ra một tập thẻ của mình. Tuỳ vào mục đích sử dụng cụ thể mà các
tập thẻ đó có thể là quy ước trao đổi dữ liệu trong một lĩnh vực nào đó như
ngân hàng.


9

Hinh 1. 1 – XML là hoàn toàn độc lập cho các ứng dụng
XML là ngôn ngữ định dạng thiên về mô tả cấu trúc dữ liệu và định
nghĩa ngôn ngữ. Để thực hiện xử lý trích rút và hiển thị dữ liệu của tài liệu
XML có thể thực hiện một trong các cách:
- Sử dụng các mô hình tài liệu như DOM, SAX, DSO để trích rút dữ liệu
XML.
- Sử dụng bảng định kiểu CSS (Cascading Style Sheet) để định kiểu hiển
thị cho dữ liệu XML.
- Sử dụng ngôn ngữ định kiểu mở rộng XSL(Extension Style
Language).
Hiện nay, XML là một chuẩn ngày càng được dùng rộng rãi trong công
nghiệp phát triển phần mềm. Và thực tế hàng trăm ngôn ngữ định dạng
chuyên dụng được định nghĩa trên XML đã ra đời như XHTML, (Extension
HTML), WML(Wireless Markup Language), VoiceXML, UIML(User
Interface Markup Language), CML(Chemical Markup Language), MathML,
XUL(XML User Interface Language)…
XML tiến hành mô tả bất kỳ công việc nào dưới dạng văn bản và việc
định dạng của dữ liệu đó là hoàn toàn mở. Điều này có nghĩa rằng bất cứ dữ


10
liệu nào được mô tả dưới dạng như văn bản và nội dung của văn bản có thể
thu nhỏ lại thành các thẻ XML thì đều được coi như là tài liệu XML. Sự mở

rộng để trở thành ngôn ngữ không chỉ dựa vào cú pháp cơ bản của XML mà
còn dựa vào xem người phát triển có thể làm được gì.
I.2. Cấu trúc của tài liệu XML:
Mặc dù các thành phần, thuộc tính và văn bản là một phần rất quan trọng
cho việc thiết kế tài liệu XML. Tuy nhiên để cho làm việc có hiệu quả thì các
tài liệu XML phải tuân thủ theo một cấu trúc nhất định.
Ví dụ 1. 1:
<?xml version=”1.0” encoding=”UTF-8”? standalone=”yes”>
<thanh_phan_goc>
<thanh_phan_con_thu_nhat vi_tri=”1”>
<muc_1 con_thu=”0”>Day la muc 1 cua thanh phan</muc_1>
</thanh_phan_con_thu_nhat >
<thanh_phan_con_thu_hai vi_tri=”2”>
<muc_1 con_thu=”1”>
<muc_2>Day la muc 2 cua thanh phan</muc_2>
</muc_1>
</ thanh_phan_con_thu_hai >
</ thanh_phan_goc >
- Mọi tài liệu XML đều được bắt đầu bằng thẻ bắt đầu với <?xml và kết
thúc bằng ký tự ?> ở phía trên cùng của tài liệu. Thẻ này được coi là thẻ mô tả
tài liệu XML.
- Trong cặp thẻ <?xml ?> còn có các thuộc tính đi kèm để mô tả, như:
+ Thuộc tính version để xác định phiên bản của chuẩn W3C XML. Bộ
phân tích XML sẽ sử dụng thuộc tính version để xác định được các quy luật
cho phép trong việc thực hiện phân tích tài liệu XML.
+ Thuộc tính encoding để xác định bộ mã hóa chuẩn được sử dụng trong
tài liệu XML.


11

+ Thuộc tính standalone nhận hai giá trị logic “True” và “False” để
xác định tài liệu XML đang định nghĩa có sử dụng thêm tài nguyên từ các tệp
khác nữa không.
I.3. Cấu trúc các thành phần và thuộc tính:
Theo như mô tả của XML thì mọi tài liệu XML đều có chứa duy nhất
một thành phần gốc của tài liệu. Sau khi đã có thành phần gốc thì bắt đầu đi
mô tả các thành phần con bên trong của tài liệu.
I.4. Cú pháp tài liệu XML:
XML mô tả dữ liệu và nội dung nó chứa dưới dạng các thẻ, dữ liệu được
mô tả với cấu trúc chính xác và tuân theo những quy luật sẵn có để định dạng.
Đồng thời XML cũng có những quy tắc về mặt cú pháp khi tiến hành mô tả
dữ liệu. Các quy tắc về mặt cú pháp khi xây dựng tài liệu XML gồm:
- Tên thành phần XML phải giống nhau trong thẻ bắt đầu và thẻ kết thúc
(có phân biệt chữ hoa chữ thường).
- Thẻ kết thúc phải thêm ký hiệu „/‟ so với thẻ kết thúc.
- Giá trị của các thuộc tính phải được đặt giữa cặp dấu nháy kép “”.
- Nội dung chú thích được đặt giữa cặp thẻ <!- - và - ->.
- Mọi thẻ mô tả thành phần phải luôn luôn được đóng.
I.5. Không gian tên:
Do bản chất XML rất rộng, cho phép mọi cá nhân hay công ty đều có thể
tự tạo ra các kiểu tư liệu XML mô tả cho đặc thù riêng. Vì thế có những
trường hợp khi định nghĩa các tài liệu XML có các thẻ cùng tên nhưng mang
ý nghĩa khác nhau và được sử dụng với các mục đích khác nhau tùy từng cá
nhân hay công ty.


12
Cách tốt nhất để giải quyết vấn đề này là làm sao cho từng thành phần có
tên hoàn toàn riêng biệt không bị trùng đối với bất kỳ cá nhân hay cơ quan
nào. Từ đó hình thành khái niệm “Không gian tên”.

Không gian tên là phương thức cho phép phân biệt và xác định những
tên thành phần trùng nhau trong cùng một tài liệu XML. Không gian tên có
thể được sử dụng để mô tả các kiểu dữ liệu hay thông tin khác hoặc được
dùng để định nghĩa ra các tên viết tắt.
Trong XML không gian tên được xây dựng bằng cách sử dụng tiền tố
trước phần khai báo của từng thành phần. Khi đó tất cả các thành phần có
cùng tiền tố đều thuộc về cùng một “phạm vi” với nhau.
Ví dụ 1. 2:
<?xml version=”1.0” encoding=”UTF-8”?>
<person>
<name>
<title> Sir </title>
<ho> Pham </ho>
<ten> Khanh </ten>
</name>
<lylich>
<html>
<head><title> Lý lich cua Khanh</title></head>
<body>
<h1> Pham Khanh </h1>
<p> Khanh la giam doc cong ty phan mem</p>
</body>
</html>
</lylich>
</person>
Nhận thấy, có cả hai thành phần <title> trong cả thành phần <name> và
thành phần <lý lich>, vì thế để phân biệt chính xác khi sử dụng thì sử dụng
không gian tên.



13
Ví dụ 1. 3:
<?xml version=”1.0” encoding=”UTF-8”?>
<per:person>
< per:name>
< per:title> Sir </ per:title> < per:ho> Pham </ per:ho> < per:ten> Khanh </
per:ten>
</ per:name>
< per:lylich>
<xhml::html>
<xhml::head>
<xhml::title>Lý lich cua Khanh</xhml::title>
</xhml::head>
< xhml::body>
< xhml::h1> Pham Khanh </ xhml::h1>
< xhml::p> Khanh la giam doc phan mem</ xhml::p>
</ xhml::body>
</ xhml::html>
</per:lylich>
</per:person>
I.6. Tài liệu XML hợp lệ:
Khi xây dựng tài liệu XML có một số quy luật chặt chẽ cho việc xây
dựng các cấu trúc cơ bản cũng như các quy tắc về mặt cú pháp để có được các
tài liệu XML hợp khuôn dạng. Đồng thời cũng có một số định dạng để xác
định khung cho việc xây dựng tài liệu XML hợp lệ. Tính hợp lệ hay đúng đắn
của tài liệu XML được xác định thông qua định nghĩa kiểu tài liệu(DTD –
Document Type Definition) và sơ đồ XML.
Các tài liệu XML được so sánh với các quy luật đã xác định dựa vào
DTD hoặc dựa vào sơ đồ. Tài liệu XML hợp khuôn dạng được xây dựng dựa
vào hầu hết các yêu cầu đặt ra của một hay nhiều đặc trưng xác định sẽ được

coi là tài liệu XML đúng đắn.


14
Thông thường thì sẽ không cần có cả DTD và sơ đồ trong một tài liệu
XML vì cả hai đều cho phép xác định cùng một cấu trúc của tài liệu. Tuy
nhiên, để có được kết quả tốt nhất thì nên kết hợp cả sơ đồ và DTD trong một
tài liệu XML. Và tài liệu XML được tạo ra từ nhiều nguồn tài liệu khác nhau
thì hay kết hợp cả DTD và sơ đồ. Cả DTD và sơ đồ cho phép tham chiếu trực
tiếp đến các đặc trưng chính của cấu trúc tài kiệu từ đó cho phép hiển thị tài
liệu một cách tổng quát.
I.6.1. Định nghĩa kiểu tài liệu – DTD:
a. Định nghĩa kiểu tư liệu DTD là gì?
Một tài liệu XML được xem là hợp lệ và có giá trị khi toàn bộ các phần
tử trong tài liệu đều được định nghĩa kiểu mà nó sẽ chứa. Việc định nghĩa
kiểu dữ liệu cho các phần tử thẻ còn gọi là định nghĩa kiểu tư liệu.
Ví dụ 1. 4:
<?xml version=‟1.0” standalone=”yes”?>
<!DOCTYPE DOCUMENT[
<!ELEMENT DOCUMENT(EMPLOYEE)*>
<!ELEMENT EMPLOYEE(ID,NAME,SALARY>
<!ELEMENT ID(#PCDATA)>
<!ELEMENT NAME(#PCDATA)>
<!ELEMENT SALARY(#PCDATA)>]>
b. Tạo khai báo và định nghĩa kiểu dữ liệu DTD:
Để cho phép định nghĩa kiểu tư liệu cho các phần tử XML dùng thẻ
<!DOCTYPE> ở ngay vị trí đầu của tệp XML. Tiếp đến định nghĩa các kiểu
tư liệu các phần tử bên trong cặp dấu ngoặc vuông []. Sau đó mỗi phần tử
được bắt đầu định nghĩa bằng thẻ khai báo <!ELEMENT>.
Cú pháp: <!ELEMENT NAME CONTENT_MODE>

Trong đó:
* NAME là tên của phần tử muốn định nghĩa.


15
* CONTENT_MODE là xác định chế độ tạo ra phần tử. Có thể nhận
giá trị EMPTY, ANY hoặc trộn lẫn cả hai nội dung (bao gồm dữ liệu có thể
dùng phân tích hoặc các phần tử con khác).
c. Danh sách các phần tử con:
Để mô tả các phần tử DTD có thể chứa những phần tử con khác thì các
phần tử con được định tên và liệt kê trong cặp dấu ngoặc đơn.
Ví dụ 1. 5:
<?xml version=‟1.0” standalone=”yes”?>
<!DOCTYPE DOCUMENT[
<!ELEMENT DOCUMENT(EMPLOYEE)*>

]>
Chú ý: dấu * để xác định số phần tử có khả năng lưu trữ trong tài liệu
d. Trình tự đặt phần tử DTD:
Khi khai báo một phần tử có nhiều phần tử con thì thực hiện định nghĩa
lồng nhau các phần tử DTD theo một trình tự mà các phần tử xuất hiện.
e. Tạo lập phần tử con
Để định nghĩa một tập các DTD con của một thành phần sử dụng các ký
hiệu quy ước để định nghĩa, như: *, +,…
Ví dụ:
<!ELEMENT EMPLOYEE(ID,(NAME)+,DATE,SALARY)>

* Định nghĩa DTD cho các phần tử rỗng:
Cho phép định nghĩa các thành phần của DTD không chứa bất kỳ dữ liệu
nào cả kể cả #PCDATA và dữ liệu định dạng, để khai báo phần tử rỗng sử

dụng từ khóa EMPTY.
* Chú thích cho phần tử DTD:


16
Chú thích được dùng như chú thích của XML. Chú thích được sử dụng
với mục đích để giải thích và làm rõ hơn các thành phần được sử dụng trong
DTD. Nội dung của chú thích được đặt giữa cặp ký hiệu <! và >.
f. Định nghĩa DTD ngoại:
Định nghĩa DTD ngoại cho phép các phần tử thẻ dựa trên các tham chiếu
đã được định nghĩa sẵn từ các tài liệu XML trước đó. Các DTD xây dựng sẵn
thường được lưu trữ trong tệp “.dtd”.
Sử dụng định nghĩa DTD tham chiếu ngoại khiến cho các ứng dụng của
XML có thể dễ dàng chia sẻ và dùng chung với các ứng dụng khác hơn. Đây
là cách mà hầu hết các ứng dụng DTD đều hỗ trợ. Có hai cách chỉ định một
phần tử DTD tham chiếu ngoại: tham chiếu ngoại riêng, tham chiếu ngoại
chung.
* Tham chiếu ngoại riêng:
Định nghĩa DTD tham chiếu ngoại riêng được sử dụng cho một nhóm
người và mang tính cá nhân. Để khai báo và định nghĩa phần tử DTD tham
chiếu ngoại riêng sử dụng từ khóa SYSTEM trong chỉ thị khai báo
<!DOCTYPE> và kèm theo là đường dẫn tới tệp sử dụng chung đó.
* Tham chiếu ngoại dùng chung:
Tham chiếu ngoại dùng chung cho phép các thẻ DTD có khả năng làm
tham chiếu ngoại dùng chung và liên kết với nhiều tài liệu khác nhau, để tạo
tham chiếu dùng chung thì thay từ khóa SYSTEM ở phần trên bằng từ khóa
PUBLIC.
g. Thực thể và thuộc tính DTD:
* Thực thể:
Một thực thể là cách XML tham chiếu đến một mục dữ liệu; thực thể

thường là văn bản(text), tuy nhiên cũng có thể là dữ liệu nhị phân.


17
Các thực thể được khai báo trong phần định nghĩa DTD, sau đó trong tài
liệu XML sử dụng thực thể bằng cách tham chiếu đến nó trong tài liệu. Nói
cách khác, khai báo một thực thể trong DTD và tham chiếu đến chúng bằng
tham chiếu thực thể, tham chiếu này có thể trong nội dung tài liệu đối với
tham chiếu tổng quát hoặc trong DTD đối với thực thể tham số. Có hai loại
thực thể XML: thực thể tổng quát và thực thể tham số.
Ngoài ra, có thể định nghĩa riêng các thực thể bằng cách khai báo trong
DTD. Để khai báo sử dụng phần tử chỉ thị <!ENTITY> khi dùng DTD. Cú
pháp khai báo như sau:
<!ENTITY NAME DEFINITION>
- NAME là tên của thực thể. Tên của thực thể được dùng để tham chiếu
đến nội dung của nó
- DEFINITION là định nghĩa của thực thể. Nội dung của định nghĩa
đơn giản nhất là các văn bản muốn thay thế khi thực hiện tham chiếu đến.
*Thuộc tính:
Các kiểu thành phần là các danh từ của XML thì các thuộc tính thành
phần có thể được xem như là các tính từ. Dùng các thuộc tính để mô tả dữ liệu
mêta hoặc các tính chất của thành phần kết hợp.
Mỗi thuộc tính được xác định bởi các đặc tính sau:
- Tên thành phần chứa thuộc tính.
- Tên thuộc tính cần mô tả.
- Kiểu của thuộc tính.
- Giá trị mặc định của thuộc tính (nếu có).
Thuộc tính được sử dụng trong thẻ mở và thẻ rỗng của thành phần.
Thuộc tính nhằm mục đích cung cấp thêm thông tin cho phần tử thẻ. Để khai



18
báo thuộc tính dùng chỉ thị khai báo <!ATTLIST>, khi đó danh sách các
thuộc tính sẽ kết hợp với phần tử thẻ DTD nào đó.
Cú pháp định nghĩa thuộc tính:
<!ATTLIST ELEMENT_NAME
ATTRIBUTE_NAME TYPE DEFAULT_VALUE

ATTRIBUTE_NAME TYPE DEFAULT_VALUE>
Trong đó:
ELEMENT_NAME: là tên của phần tử mà thuộc tính sẽ kết hợp.
ATTRIBUTE_NAME; là tên các thuộc tính cần định nghĩa.
TYPE: là kiểu của thuộc tính tương ứng cần định nghĩa. TYPE có thể
nhận các nhiều giá trị khác nhau.
DEFAULT_VALUE: là giá trị mặc định của thuộc tính. Có thể nhận
các giá trị sau:
h. Các hạn chế của DTD:
- Các DTD không thể mở rộng.
- Mỗi tư liệu chỉ kết hợp với một DTD.
- Các DTD không làm việc với các không gian tên XML.
- Định kiểu dữ liệu rất yếu.
- Các phần mô tả mô hình nội dung hạn chế.
- Không có sự kế thừa đối tượng kiểu OO.
- Một tư liệu có thể chạy đè/bỏ qua một DTD bên ngoài dùng tập con nội
bộ.
- Cú pháp phi XML.
- Không hỗ trợ DOM.


19

I.6.2. Sơ đồ - Schema:
DTD là một trong các phương pháp định chuẩn các tư liệu được định
nghĩa trong XML 1.0. Ngoài ra còn có một số phương pháp khác cũng được
đề xuất với mục đích để tạo ra các tư liệu XML hợp lệ. Một trong các cách đó
là sơ đồ.
a. Định nghĩa:
“Sơ đồ” được định nghĩa là tổ chức hoặc cấu trúc của một cơ sở dữ liệu,
thường được phát sinh từ tiến trình lập mô hình dữ liệu.
Cấu trúc này thường được mô tả bằng một kiểu từ vựng có kiểm soát đặt
tên các mục của dữ liệu, và liệt kê mọi hạn chế có thể áp dụng (kiểu dữ liệu,
các giá trị hợp lệ/không hợp lệ, định dạng đặc biệt,…).
b. Cách xây dựng lược đồ:
- Lược đồ là một tài liệu XML bắt đầu bằng phần tử <schema> và trong
đó có thể đặt tên cho lược đồ dựa vào thuộc tính name.
Ví dụ 1.7:
<?xml version=‟1.0‟?>
<schema name=‟”name_schema”>

</schema>
- Ưu điểm nổi bật của lược đồ là cho phép định nghĩa và khai báo kiểu
dữ liệu thực sự mà người dùng muốn sử dụng.
- Để định nghĩa một phần tử của tài liệu XML, trong lược đồ sử dụng
phần tử khai báo <ElementType>.
I.6.3. Bảng định kiểu:
Bảng định kiểu được viết tắt là CSS, là một khái niệm đã quen thuộc với
những người lập trình Web. Đó là một cách thức để quản lý và thiết kế giao


20
diện các Web Site một cách đồng nhất. Trong trường hợp XML, trở về với

câu hỏi làm thế nào để trình duyệt hiểu và hiển thị XML, câu trả lời là do
CSS.
Đề tài liệu XML tham chiếu đến file định kiểu CSS, sử dụng chỉ thị sau
đi kèm phần đầu khai báo tài liệu:
<?xml-stylesheet type=”text/css” href= “style.css”>
Trình duyệt sẽ hiển thị tài liệu XML theo định dạng trong file.css. Khi
đó với CSS, các quy định về màu sắc, font chữ, màu nền sẽ làm cho tài liệu
XML thực sự sống động. Mặt khác CSS cũng là cách thức tách vấn đề trình
bày giao diện ra ngoài nội dung.
I.7. XML được sử dụng như thế nào?
Tất cả các ý tưởng chính của XML được đưa ra với mục đích làm sao có
thể sử dụng được XML mà không cần các công cụ hỗ trợ thêm khi làm việc
trong các môi trường lập trình đã có. Ngay từ khi hình thành, Java đã hỗ trợ
rất mạnh XML, Java cung cấp hầu hết các hàm API cho phép sử dụng trực
tiếp bằng các đoạn mã Java. Có hai thao tác cơ bản làm việc với XML trong
khi viết ứng dụng: Phân tích tài liệu XML đã có và thực thi dữ liệu XML đã
được phân tích đó.

Hinh 1. 2 – Mô hình sử dụng XML trong các ứng dụng


21
I.8. Các ứng dụng của XML:
XML có thể tự tạo ra tập các ngôn ngữ khác. Ứng dụng của XML mang
ý nghĩa cho biết một tập các thẻ hay tâp con XML hoạt động trong riêng một
lĩnh vực nào đó.
I.8.1. XML để biểu diễn:
Một ứng dụng cơ bản nhất của XML là cách mô tả và hiển thị nội dung.
Trong trường hợp này, tiến hành định nghĩa nội dung của ứng dụng như là dữ
liệu để hiển thị cho phía client và sau đó ứng dụng thể hiện nó dưới dạng định

dạng của dữ liệu.
I.8.2. XML để truyền thông:
Các dữ liệu của XML được sử dụng để chuyển đổi thông tin giữa các
ứng dụng khác nhau. Khả năng chuyển đổi này là dễ dàng được thực hiện bởi
vì dữ liệu XML là không cố định cho bất kỳ một client nào, client có thể là
làm việc trên máy tính, trên điện thoại di động, trên PDA,…. Chính vì lý do
này mà XML cung cấp khả năng đơn giản dữ liệu để truyền tải qua mạng.
Để các ứng dụng khác nhau có thể sử dụng được dữ liệu XML thì phải
được chuyển đổi thành dữ liệu tương ứng cho ứng dụng đó thông qua XSL
stylesheet.

Hinh 1. 3 – Sơ đồ chuyển đổi dữ liệu XML giữa các ứng dụng


22
I.8.3. XML-RPC:
Một trong ứng dụng đặc biệt của XML là XML-RPC. XML-RPC là sự
trao đổi giữa các thiết bị trong ứng dụng hay được dùng để chia sẻ một tập
các chức năng thực hiện thông qua các ứng dụng. RPC được sử dụng để tạo ra
các lời gọi thông qua mạng và cũng nhận các trả lời tương ứng thông qua
mạng.

Hinh 1. 4 – Cơ chế trao đổi và gửi thông điệp trong XML-RPC
I.8.4. B2B:
Business-to-business là sự trao đổi không phải giữa các ứng dụng khác
nhau mà là sự trao đổi giữa các công ty và có thể giữa các khu công nghiệp.
Trong trường hợp này, XML thực sự hiệu quả bởi vì không chỉ cho phép làm
việc với một phạm vi lớn các công ty mà còn cho phép trao đổi giữa các hệ
thống đã đóng.



23

Hinh 1. 5 – Cài đặt mạng khách hàng bằng cách sử dụng dữ liệu XML
I.9. Kết luận:
Trong phần này chúng ta đã xem xét một số vấn đề cơ bản của một tài
liệu XML. Như vậy có thể thấy XML có một số ưu điểm sau:
- Không bị giới hạn về số lượng thẻ, với XML có thể tự tạo ra các thẻ
phục vụ cho mục tiêu riêng của từng cá nhân hay tập thể. XML cho phép mọi
người xây dự thư việc thẻ riêng của mình để phù hợp nhất với công việc.
- Việc tìm kiếm dữ liệu thực hiện dễ dàng và hiệu quả. Các công cụ tìm
kiếm có thể dễ dàng phân tích các tài liệu XML. Các thẻ cung cấp cho các
động cơ tìm kiếm cơ chế thông minh.
- XML cho phép định nghĩa kiểu thẻ với tất cả các kiểu quy tắc, như các
thẻ thể hiện các quy tắc thương mại, các thẻ thể hiện mô tả dữ liệu hay các
quan hệ dữ liệu.
- Mã XML dễ đọc hơn, kể cả đối với người không có nhiều kinh nghiệm
trong lĩnh vực.


24
CHƯƠNG II: PHÂN TÍCH XML
Khi đã có một tài liệu XML thì công việc khó khăn là tiến hành đọc để
phân tích tài liệu XML đã có. Khi đó phải sử dụng bộ phân tích XML để
phân tích và đọc tài liệu XML. Bộ phân tích XML tiến hành phân chia các
thành phần của tài liệu XML thành các API. Các ứng dụng khách sau đó
tiến hành đọc để hiểu các tài liệu XML này thông qua các API đã có. Để
việc đọc có được kết quả chính xác thì bộ phân tích phải tiến hành kiểm tra
các tài liệu xem đã được xây dựng hợp lệ hoặc đúng cú pháp chưa để xác
định được các lỗi xử lý tương ứng.

Cấu trúc và cú pháp của tài liệu XML được mã hóa thành các thẻ và
các thuộc tính. Và để xác định được cấu trúc này thì cần phải có bộ phân
tích XML tương ứng.
Bộ phân tích là thư viện phần mềm để đọc tài liệu XML và kiểm tra
xem tài liệu đó đã hợp lệ hay chưa. Các ứng dụng khách sử dụng các
phương thức bằng cách thực hiện lời gọi tới các API để nhận các thông tin
từ bộ phân tích để có thể khôi phục lại được dữ liệu từ tài liệu XML. Bộ
phân tích cũng đồng thời thực hiện che giấu ứng dụng khách tất cả các
phần phức tạp và các thông tin không cần thiết, như bao gồm:
- Chuyển đổi tài liệu thành dạng Unicode.
- Tập hợp các thành phần phức tạp của tài liệu được phân chia thành
các thực thể.
- Giải quyết vấn đề tham chiếu đặc trưng.
- Hiểu các vùng CDATA.
- Kiểm tra hàng trăm các hằng hợp khuôn dạng đã có.
- Duy trì danh sách các không gian tên trong phạm vi của từng thành
phần.

×