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

Chuyển đổi dữ liệu XML sang cơ sở dữ liệu quan hệ cách tiếp cận dựa trên DOM

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.23 MB, 119 trang )

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN & TOÁN ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP

CHUYỂN ĐỔI DỮ LIỆU XML SANG CƠ
SỞ DỮ LIỆU QUAN HỆ
CÁCH TIẾP CẬN DỰA TRÊN DOM

Giảng viên hướng dẫn : Th.S LƯƠNG THỊ NGỌC KHÁNH
Sinh viên thực hiện: VƯƠNG VĂN MẠNH
TRỊNH THỊ TUYẾT NHI
TH
Lớp
: 06 3D
Khoá : 10

TP. Hồ Chí Minh, tháng 7 năm 2010

1


LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Ban Giám Hiệu, quý Thầy Cô của trường
Đại Học Tôn Đức Thắng, đặc biệt là các Thầy Cô trong khoa Công Nghệ Thông Tin
và Toán Tin Ứng Dụng đã tận tình giảng dạy, trang bị cho chúng em những kiến
thức cần thiết trong suốt những năm học tập tại trường. Ngoài ra, các Thầy cô
cũng đã hỗ trợ tạo nhiều điều kiện thuận lợi cho chúng em trong suốt quá trình
thực hiện đề tài này. Chúng em xin chân thành cảm ơn!.


Chúng em xin ghi nhận lòng biết ơn sâu sắc đến Th.S Lương Thị Ngọc Khánh
đã tận tình hướng dẫn, truyền đạt cho chúng em những kiến thức quý báu cùng
với những lời động viên khuyến khích của Cô trong những lúc chúng em gặp khó
khăn, trở ngại khi thực hiện đề tài.
Con xin ghi nhớ công ơn của Ba Mẹ đã sinh thành, nuôi dưỡng và dạy dỗ con
trưởng thành như ngày hôm nay. Ba Mẹ luôn là chỗ dựa tinh thần vững chắc cho
con khi con vấp ngã và gặp những khó khăn trong cuộc sống.
Cuối cùng chúng tôi xin gửi lời cám ơn đến bạn bè đã thăm hỏi, động viên và
giúp đỡ chúng tôi trong quá trình thực hiện đề tài.
Mặc dù chúng em đã nỗ lực hết sức để hoàn thành tốt đề tài của mình
nhưng những sai sót trong đề tài là điều không thể tránh khỏi, kính mong Thầy Cô
thông cảm và tận tình chỉ bảo cho chúng em, mong các bạn đóng góp ý kiến để
chúng tôi có thể hoàn thiện đề tài của mình hơn.
TP. Hồ Chí Minh 7/2010
Sinh viên thực hiện
Vương Văn Mạnh – Trịnh Thị Tuyết Nhi.

2


Nhận xét của Giáo Viên Hướng Dẫn
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

3


Nhận xét của Giáo Viên Phản Biện
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

4


Mục lục
MỞ ĐẦU ...................................................................................................................... 12
NỘI DUNG ................................................................................................................... 15
Phần 1: Cơ sở lý thuyết .............................................................................................. 15
Chương 1: Tổng quan về XML và XML DOM ....................................................... 15
1.1.

Giới thiệu Tổng quan về XML ................................................................... 15

1.1.1.

Lịch sử phát triển của XML................................................................. 15

1.1.2.

XML là gì? .......................................................................................... 18

1.1.3.

Lợi ích khi sử dụng XML .................................................................... 18

1.1.4.


Một số ứng dụng của XML ................................................................. 21

1.1.5.

Tạo một tài liệu XML.......................................................................... 22

1.1.6.

Kết luận............................................................................................... 23

1.2.

Một số khái niệm cơ bản về XML .............................................................. 24

1.2.1.

Nguyên tắc của ngôn ngữ XML .......................................................... 24

1.2.2.

XML Elements (Các phần tử XML) .................................................... 28

1.2.2.1. Định nghĩa ....................................................................................... 28
1.2.2.2. Nguyên tắc đặt tên cho những phần tử XML .................................... 29
1.2.3.

XML Attributes (các thuộc tính XML) ................................................ 30

1.2.4.


XML Document (tài liệu XML) .......................................................... 30

1.2.5.

Một tài liệu XML hợp lệ ..................................................................... 31

1.2.6.

Document Type Definition (DTD) ...................................................... 31

1.2.6.1. Định nghĩa ....................................................................................... 31

5


1.2.6.2. Xác định thuộc tính .......................................................................... 33
1.2.6.3. Một số hạn chế của DTD ................................................................. 33
1.2.7.

Schema XML (Lược đồ XML) ............................................................ 34

1.2.7.1. Định nghĩa ....................................................................................... 34
1.2.7.2. Lợi ích của XML Schema so với DTD ............................................. 35
1.2.7.3. Xác định phần tử trong lược đồ ........................................................ 36
1.2.8.

XML Parser (Bộ phân tích XML) ........................................................ 36

1.2.9.


XML DOM (XML Document Object Model) ...................................... 37

1.2.10. XML Namespace ................................................................................ 37
1.2.11. XML CDATA ..................................................................................... 40
1.2.11.1. PCDATA _Parsed Character Data (dữ liệu được phân tích)............ 40
1.2.11.2. CDATA _UnParsed Character Data (dữ liệu không được phân tích) ..
1.2.12. Các ký tự trong tài liệu XML .............................................................. 42
1.2.13. Một số công nghệ XML ...................................................................... 42
1.2.14. Các giao diện lập trình XML ............................................................... 44
1.2.14.1. DOM (Document Object Model) .................................................... 44
1.2.14.2. SAX (Simple API for XML) .......................................................... 45
1.2.14.3. JDOM ............................................................................................ 46
1.2.14.4. Java API cho kiểm ngữ XML (JAXP) ............................................ 47
1.3.

XML DOM ................................................................................................ 48

1.3.1.

Những khái niệm cơ bản về DOM ....................................................... 48

1.3.1.1. Khái niệm DOM .............................................................................. 48

6


1.3.1.2. DOM với chức năng như một API ................................................... 51
1.3.1.3. Lợi ích và điểm hạn chế khi sử dụng DOM ..................................... 52
1.3.2.


XML DOM ......................................................................................... 53

1.3.2.1. XML DOM là gì? ............................................................................ 53
1.3.2.2. Các kiểu nút khác nhau của XML trong mô hình DOM ................... 55
1.3.2.2.1. Tạo hệ phân cấp ......................................................................... 55
1.3.2.2.2. Sự khác nhau giữa các phần tử và các nút trong DOM ............... 57
1.3.2.3. Các kỹ thuật parser một tài liệu XML .............................................. 58
1.3.2.3.1. SAX Parser (Simple API for XML) ............................................ 59
1.3.2.3.2. DOM Parser (Document Object Model) ..................................... 59
1.3.3.

Truy xuất tài liệu XML với DOM bằng ngôn ngữ Java ....................... 61

1.3.3.1. DOM làm việc như thế nào ? ........................................................... 61
1.3.3.2. Các đối tượng trong DOM ............................................................... 62
1.3.3.3. Một số kỹ thuật lập trình với DOM .................................................. 63
1.3.3.3.1. Phân tích một tài liệu XML ........................................................ 63
1.3.3.3.2. Các thao tác trên một tài liệu XML............................................. 68
1.3.3.3.2.1. Lấy phần tử gốc .................................................................... 68
1.3.3.3.2.2. Lấy nút con của một nút ....................................................... 70
1.3.3.3.2.3. Tạo mới tài liệu XML ........................................................... 72
1.4.

Kết luận ..................................................................................................... 77

Chương 2: Cơ sở dữ liệu quan hệ. So sánh dữ liêu quan hệ và dữ liệu XML ........... 78
2.1.

Cơ sở dữ liệu quan hệ ................................................................................ 78


7


2.1.1

Sơ lược về cơ sở dữ liệu ...................................................................... 78

2.1.1.1. Cơ sở dữ liệu là gì ? ......................................................................... 78
2.1.1.2. Quản lý dữ liệu ................................................................................ 80
2.1.1.3. Mô hình cơ sở dữ liệu (Database Model) ......................................... 81
2.1.1.4. Hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management
System_ Viết tắt là RDBMS) ........................................................................ 82
2.1.2

Thiết kế cơ sở dữ liệu quan hệ ............................................................. 83

2.1.2.1. Phụ thuộc hàm ................................................................................. 83
2.1.2.1.1. Định nghĩa ................................................................................. 83
2.1.2.1.2. Hệ tiên đề cho phụ thuộc hàm .................................................... 85
2.1.2.2. Khoá của lược đồ quan hệ ................................................................ 88
2.1.2.2.1. Định nghĩa ................................................................................. 89
2.1.2.2.2. Thuật toán tìm khóa ................................................................... 89
2.1.2.2.3. Lưu ý về các khoá chính và khoá ngoại ...................................... 91
2.1.2.3. Chuẩn hoá lược đồ quan hệ .............................................................. 91
2.1.2.3.1. Định nghĩa ................................................................................. 91
2.1.2.3.2. Các dạng chuẩn .......................................................................... 92
2.1.2.3.2.1. Dạng chuẩn thứ 1 ................................................................. 92
2.1.2.3.2.2. Dạng chuẩn thứ 2 ................................................................. 93
2.1.2.3.2.3. Dạng chuẩn thứ 3 ................................................................. 93

2.1.2.3.2.4. Dạng chuẩn Boye Codd ........................................................ 94
2.2.

So sánh dữ liệu quan hệ và dữ liệu XML ................................................... 94

8


Chương 3: Ánh xạ dữ liệu XML sang dữ liệu quan hệ: Cách tiếp cận dựa trên
DOM ...................................................................................................................... 96
3.1.

Đặt vấn đề.................................................................................................. 96

3.2.

Các phương pháp tiếp cận để giải quyết vấn đề .......................................... 98

3.3.

Cách giải quyết vấn đề ............................................................................... 99

3.3.1.

Ánh xạ lược đồ .................................................................................. 100

3.3.1.1. Đơn giản hoá DTD......................................................................... 102
3.3.1.2. Tạo lập và giản lược đồ thị DTD bởi thuật toán Inline() ................. 102
3.3.1.3. Sinh lược đồ quan hệ...................................................................... 104
3.3.2.


Ánh xạ dữ liệu ................................................................................... 106

3.3.2.1. Định nghĩa ..................................................................................... 106
3.3.2.2. Bổ đề 1 .......................................................................................... 113
3.3.2.3. Bổ đề 2 .......................................................................................... 113
3.3.2.4. Định lý ........................................................................................... 114
3.4.

Kết luận ................................................................................................... 115

Phần 2: Cơ sở thực hành........................................................................................... 116
Chương 4: Cài đặt thuật toán................................................................................. 116
Chương 5: Đánh giá và kết luận ............................................................................ 116
5.1.

Đánh giá .................................................................................................. 116

5.2.

Hướng phát triển ...................................................................................... 116

TÀI LIỆU THAM KHẢO ........................................................................................... 117

9


Danh mục các từ viết tắt
API


Application Programming Interface

CNTT

Công nghệ thông tin

CSDL

Cơ sở dữ liệu

DBMS

Hệ quản trị cơ sở dữ liệu _ Database Management System

RDBMS

Hệ quản trị cơ sở dữ liệu quan hệ _ Relational Database Management

System
DOM

Document Object Model

DTD

Document Type Definition

HTML

HyperText Markup Language


XML

eXtensible Markup Language

SQL

Structured Query Language

W3C

World Wide Web Consortium

10


Danh mục các hình vẽ
Hình 1.1.1.a: Tim Berners-Lee Cha đẻ của WWW đã phát minh ra HTML năm
1990
Hình 1.1.1.b: GuTim Bray
Hình 1.3.1.1: Cấp độ khác nhau của DOM
Hình 1.3.2.2.2: Các nút trong DOM
Hình 1.3.2.3.2.a: DOM Parser
Hình 1.3.2.3.2.b: Hoạt động của XML DOM Parser
Hình 1.3.3.1: Quá trình làm việc của DOM, XML parser
Hình 2.1: Một CSDL đơn giản
Hinh 3.3.c: Quá trình chuyển đổi XML sang RDB
Hình 3.3.1: Ánh xạ lược đồ XML sang lược đồ quan hệ
Hình 3.3.2.: Thao tác gộp
Hình 3.3.2: Ánh xạ dữ liệu XML sang dữ liệu quan hệ


11


MỞ ĐẦU
Ngày nay, Internet phát triển mạnh mẽ làm cho HTML (HyperText Markup
Language - ngôn ngữ đánh dấu siêu văn bản) một ngôn ngữ lý tưởng để hiển thị trang
Web được nhiều người biết đến. Tuy vậy, HTML không thể phát triển xa hơn nữa
trong thế giới ảo, nó được đánh giá là khá tồi khi mô tả nội dung trang web dưới dạng
dữ liệu để có thể thao tác dễ dàng được ở bất cứ thời điểm và hoàn cảnh nào. Điều này
đã làm cho người ta suy nghĩ đến XML. Vậy XML là gì?.
XML là ngôn ngữ lập trình tương đối mới, nhưng đang ngày càng trở nên phổ
dụng trong nhiều ứng dụng đa dạng. XML xuất hiện cung cấp cho chúng ta một cách
thức mô tả dữ liệu có cấu trúc mà bản thân tên gọi của nó đã nêu rõ eXtensible Markup
Language (ngôn ngữ tăng cường). Do đó, ở đâu có dữ liệu nhập/xuất, lưu trữ hoặc
truyền từ nơi này đến nơi khác thì ở đó trở thành mảnh đất đầy tiềm năng thích hợp với
các khả năng của XML. Có lẽ nổi tiếng nhất vẫn là các ứng dụng có liên quan đến web.
Nhưng có nhiều ứng dụng khác không thuộc web vẫn thích hợp với XML. Ví dụ: Để
thay thế cho các dữ liệu truyền thống hoặc để chuyển giao thông tin tài chính giữa các
doanh nghiệp,…
Có thể nói, XML là một ngôn ngữ chung thống nhất cho toàn bộ dữ liệu trên
web, giúp cho các nhà phát triển sức mạnh để đem lại mọi thông tin và dữ liệu có cấu
trúc cần thiết từ bất cứ chương trình nào tới tận màn hình của người sử dụng.
Mặc dù XML rất hiệu quả trong quá trình trao đổi, truy suất trên Internet, nhưng
nó không thể có được những tính năng tuyệt vời của cơ sở dữ liệu quan hệ như: lưu trữ
hiệu quả với dung lượng cực lớn, sao chép dự phòng, phục hồi dữ liệu, tối ưu hệ
thống,... Ngoài ra, số lượng ngày càng tăng của các tài liệu XML đòi hỏi sự cần thiết để
lưu trữ và truy vấn tài liệu XML một cách hiệu quả. Vì vậy, trong phạm vi của đề tài
này, chúng tôi sẽ trình bày “quá trình chuyển đổi dữ liệu XML sang dữ liệu quan
hệ : cách tiếp cận dựa trên DOM”. Chúng tôi chọn cơ sở dữ liệu Microsoft SQL


12


Server 2005 để lưu trữ dữ liệu trong quá trình thực hiện chuyển đổi. Trước khi đi vào
nội dung chính của đề tài, chúng tôi sẽ tìm hiểu một số khái niệm cơ bản về XML cũng
như XML DOM và cơ sở dữ liệu quan hệ cũng như đặc điểm nổi bật của cơ sở dữ liệu
quan hệ.
Nội dung chính của luận văn chia làm 2 phần:
Phần 1: Cơ sở lý thuyết: Trong phần này được chia làm 3 chương:
Chương 1: Tổng quan về XML và XML DOM:
Chương này đề cập đến lịch sử phát triển của XML, một vài khái niệm cơ bản
về ngôn ngữ XML: tại đây bạn có thể định nghĩa các thành phần, các thẻ gán và các
thuộc tính riêng. Từ đó cho thấy các thẻ gán không có ý nghĩa trình bày, chúng chẳng
qua là một cách mô tả cấu trúc dữ liệu. Chương này còn nói đến lợi ích khi sử dụng
XML, một số ứng dụng XML, cách tạo ra một tài liệu XML và thế nào là một tài liệu
XML well-formed?. Ngoài ra, bạn còn biết 2 cách để tài liệu XML hợp lệ đó là định
nghĩa kiểu tư liệu cho các phần tử dựa vào khai báo DTD hoặc dựa vào lược đồ XML.
Bên cạnh đó, bạn còn được giới thiệu tổng quan về XML DOM và cách truy suất tài
liệu XML thông qua DOM như thế nào?.
Chương 2: Cơ sở dữ liệu quan hệ. So sánh sự khác nhau giữa dữ liệu quan hệ
và dữ liệu XML.
Trong chương này, bạn được giới thiệu lại một số kiến thức cơ bản về cơ sở dữ
liệu và cơ sở dữ liệu quan hệ, cách thiết kế cơ sở dữ liệu quan hệ?. Sự khác và giống
nhau giữa dữ liệu XML và dữ liệu quan hệ. Từ đó nhận thứ được các điểm mạnh và
điểm yếu của mỗi cơ sở dữ liệu.
Chương 3: Ánh xạ dữ liệu XML sang dữ liệu quan hệ: Cách tiếp cận dựa trên
DOM.

13



Chương này đề ra vấn đề tại sao phải chuyển đổi dữ liệu XML sang dữ liệu
quan hệ?. Và cách tiếp cận để giải quyết vấn đề dựa trên hai thuật toán là New Inlining:
Chuyển đổi lược đồ XML sang lược đồ quan hệ và thuật toán XInsert: Chuyển đổi dữ
liệu XML sang dữ liệu quan hệ.
Phần 2: Cơ sở thực hành: Phần này bao gồm 2 chương:
Chương 4: Cài đặt thuật toán
Chương này nhằm cài đặt 2 thuật toán New Inlining và XInsert để chuyển đổi
dữ liệu XML sang dữ liệu quan hệ. Kết quả của hai thuật toán này là nhiều bảng dữ
liệu có quan hệ với nhau.
Chương 5: Đánh giá và kết luận
Chương này tóm tắt lại các vấn đề được đặt ra, các vấn đề đã được giải quyết và
các vấn đề chưa được giải quyết, và nêu ra một số hướng phát triển trong tương lai.

14


NỘI DUNG
Phần 1: Cơ sở lý thuyết
Chương 1: Tổng quan về XML và XML DOM
1.1.

Giới thiệu Tổng quan về XML
Trong suốt chương này, Chúng tôi chỉ xin trình bày những nét cơ bản nhất và lợi

ích của ngôn ngữ XML đối với sự phát triển không ngừng của CNTT.
1.1.1.

Lịch sử phát triển của XML


XML được triển khai nhờ sự đóng góp của rất nhiều người trong 10 năm qua.
Cách đây hơn 10 năm SGML ra đời (Standard Generalised Markup Language), một
ngôn ngữ quốc tế vô cùng phức tạp, dùng để mô tả các tài liệu phức tạp và có cấu trúc
tinh vi. SGML là ngôn ngữ rất khó học và các công cụ để phát triển nó cũng khá đắt
tiền.
Năm 1990, Tim Berners-Lee ở CERN đã phát minh ra HTML, một phần nhỏ
của SGML, nhưng dễ sử dụng hơn, có thể được viết bằng tay mà không cần phải có
một chương trình nào giúp đỡ. Sự thành công của HTML vượt quá sức tưởng tượng
của chính tác giả, nhưng vào đầu năm 1995, các nhà phát triển đã bắt đầu nhận ra sự
giới hạn của HTML, mặc dù Microsoft, Netscape cố gắng thêm thắt rất nhiều thứ vào
HTML nhưng cũng không ngăn được việc lộ rõ những giới hạn của HTML.

15


Hình 1.1.1.a: Tim Berners-Lee Cha đẻ của WWW đã phát minh ra HTML năm
1990
Mùa hè năm 1996, Jon Bosak ở Sun Microsystem khởi đầu nhóm cộng tác W3C
SGML, được gọi là nhóm XML. Mục đích của nhóm là đơn giản hoá SGML để nó dễ
sử dụng như HTML, đồng thời lại mạnh mẽ và linh động. Tim Bray và C.M. SperbergMcQueen viết hầu hết Specification (bản điều kiện kỹ thuật) nguyên thủy của XML.
Trước đó Bray đã có kinh nghiệm nhiều năm quản lý dự án “New Oxford English
Dictionary”. Ông muốn XML hội tụ các điều kiện sau:
 Đơn giản đủ cho lập trình viên áp dụng
 Dễ cho Search Engine (Alta Vista, Yahoo, InfoSeek,…) phân loại
 Không giới hạn trong tiếng anh của nước Mỹ

16



Hình 1.1.1.b: GuTim Bray
Chính vì vậy phiên bản Specification nháp đầu tiên của XML được phát hành
vào tháng 11 năm 1996. Tháng 7 năm 1997, Microsoft lần đầu tiên đưa ra một áp dụng
thực sự của XML, Channel Definition Format (CDF), sử dụng để xuất bản các trang
Web tới các vị khách đã đóng tiền đặt mua trước theo tháng. Vào thời gian đó, CDF đã
được tích hợp vào IE 4.0. Sau đó Microsoft và Inso Corporation đã cùng hợp tác để
xuất bản XSL (eXtensible Style Language) để làm Style Sheet diễn tả cách trình bày
một trang XML.
Tháng 1 năm 1998 Microsoft đã đưa ra một chương trình miễn phí tên MSXSL
để generate một trang HTML từ một cặp trang XML và XSL. Sau này IE5.0 đã hỗ trợ
việc hiển thị một trang XML đơn.
Tháng 2 năm 1998, W3C đã phê chuẩn cho thi hành chính thức Version 1.0 của
XML Specification.
Vậy để nắm rõ hơn về XML và tầm quan trọng của nó, chúng ta sẽ đi vào định
nghĩa trong phần tiếp theo.

17


1.1.2.

XML là gì?

Như đã được nói trong phần giới thiệu, XML (eXtensible Markup Language) là
ngôn ngữ đánh dấu mở rộng (ngôn ngữ đặc tả dữ liệu) được tạo nên bởi liên minh
mạng toàn cầu (W3C – World Wide Web Consortium). XML là ngôn ngữ có kiến trúc
gần giống với HTML nhưng mạnh hơn HTML về nhiều mặt, ra đời sau HTML nhưng
nó nhanh chóng trở thành một chuẩn phổ biến trong việc chuyển đổi thông tin qua các
trang web sử dụng giao thức HTTP. Trong khi HTML là ngôn ngữ chủ yếu về hiển thị
dữ liệu thì XML lại đang phát triển mạnh về việc truyền tải, trao đổi và thao tác dữ

liệu. XML đưa ra một định dạng chuẩn cho cấu trúc dữ liệu hoặc thông tin bằng việc tự
định nghĩa định dạng của tài liệu, nhờ đó dữ liệu được lưu trữ bằng XML sẽ độc lập
với việc xử lý.
Nói cách khác, XML là một bộ quy luật về cách chia một tài liệu ra làm nhiều
phần, rồi đánh dấu và ráp các phần khác nhau lại để dễ nhận diện chúng. XML cho
phép người dùng có thể tự định nghĩa các thẻ (tag) để đánh dấu các phần trong tài liệu,
những thẻ này làm cho XML đa dạng hơn những ngôn ngữ thông thường như HTML.
Vì vậy, XML được mệnh danh là công nghệ tiên tiến của tương lai. Bản thân
XML tuy không có gì khó hiểu nhưng các công cụ chuẩn được định ra để làm việc với
XML như: DOM – Document Object Model, Xpath, XSL, XML Schema, … thì rất
hữu hiệu, và các chuẩn này được phát triển không ngừng.
1.1.3.

Lợi ích khi sử dụng XML

Trong quá trình trưởng thành và phát triển, XML đã đối mặt và đương đầu với
nhiều thử thách trong việc thuyết phục các nhà lập trình rằng XML là sự lựa chọn hàng
đầu vì nó dễ dàng để hiểu, dễ dàng để đọc, và dễ dàng thực hiện.
XML không sinh ra để thay thế cho HTML nhưng để trở thành một sự bổ xung
lý tưởng cho HTML, giải quyết một số vấn đề cơ bản cho HTML chẳng hạn như:

18




XML được thiết kế để phát triển và mở rộng một ngôn ngữ đánh dấu

mới theo một hệ thống chuẩn. Từ trước đến nay, HTML chưa bao giờ được
cung cấp một khả năng mở rộng linh hoạt tuân theo một chuẩn nhất định. Để

thay đổi hoặc sửa chữa chuẩn HTML, dường như chúng ta sẽ phải đối mặt với
toàn bộ thế giới.


XML được thiết kế để chỉ ra rõ ràng các quy tắc rằng XML markup được

tạo ra như thế nào và các công cụ phát triển (development tool) và các trình
duyệt có thể phân tích nó như thế nào. Sự tối nghĩa trong các quy tắc về HTML
tag và cấu trúc của nó đã tạo ra quá nhiều trường hợp ngoại lệ đối với các sản
phẩm và trình duyệt liên quan đến HTML. Như là một hệ quả tất yếu, những
người phát triển không thể dễ dàng tạo ra các công cụ HTML mới (và các kỹ
thuật liên quan) mà không có những công cụ phát triển nâng cấp liên tục, người
sử dụng thì không thấy rõ được sự phát triển cho đến khi trình duyệt của họ
được nâng cấp và hỗ trợ các kỹ thuật phát triển này .


HTML là một ngôn ngữ chú trọng hoàn toàn tới việc sẽ trình bày nội

dung bên trong của trang Web ra ngoài như thế nào, còn XML thì mô tả nội
dung bên trong của trang Web để có thể dễ dàng thao tác trực tuyến. Vấn đề ở
chỗ là một trang HTML đôi lúc không nói lên được điều gì về dữ liệu mà nó
mang, còn HTML markup chỉ cho chúng ta thấy dữ liệu đó được phô diễn trên
màn hình như thế nào, còn để hiểu được dữ liệu đó chúng ta cần tới XML.


Cuối cùng, XML có thể được sử dụng với tất cả mọi người, ngay cả với

những ai chưa có một chút xíu kinh nghiệm lập trình.
XML cung cấp khả năng làm tăng thêm tính linh động của các văn bản dạng
HTML với các XML tags (thẻ). XML tags cho phép trình duyệt có thể biết rõ về các

thông tin mà mình trình bày cho người sử dụng, qua đó đem lại một số khả năng mới
rất tiện dụng cho Web:

19




Giảm bớt tải trọng của hệ phục vụ: Các ứng dụng web dùng XML để

giảm bớt tải trọng trên các hệ phục vụ web. Để thực hiện, chúng lưu trữ tất cả
thông tin trên hệ khách càng lâu càng tốt, rồi gửi thông tin đến các hệ phục vụ
đó trong một tư liệu XML lớn.


XML đơn giản hóa việc trao đổi dữ liệu. Bởi vì những tổ chức khác

(hoặc thậm chí là các phần khác nhau trong cùng tổ chức) hiếm khi làm chuẩn
hóa trên một bộ công cụ duy nhất, chúng sẽ phải làm một số lượng đáng kể công
việc để trao đổi thông tin. Sử dụng XML, mỗi nhóm sẽ tạo nên một lợi ích riêng
mà có thể chuyển đổi những định dạng dữ liệu bên trong trở thành XML và
ngược lại. Trên hết, đây là cơ hội tốt để nhà cung cấp phần mềm có thể đưa ra
các công cụ chuyển đổi những ghi chép cơ sở dữ liệu của họ (danh bạ LDAP
hoặc lệnh mua, v.v...) thành XML và ngược lại.


XML cho phép mã hóa thông minh. Bởi vì những văn bản XML được

tổ chức để nhận dạng từng thông tin quan trọng (cũng như mối quan hệ giữa các
thông tin), có thể viết mã để xử lí văn bản XML mà không cần con người tác

động. Những nhà cung cấp phần mềm đã dành rất nhiều thời gian và tiền bạc
xây dựng các công cụ phát triển XML, điều đó có nghĩa là viết mã đó, là một
quá trình tương đối đơn giản.


XML cho phép tìm kiếm thông minh. Mặc dù công cụ tìm kiếm đã cải

thiện dần trong nhiều năm qua, tuy nhiên nhận được những kết quả không chính
xác vẫn phổ biến xảy ra. Nếu bạn đang tìm kiếm một ai đó mang tên “Chip”
trong những trang HTML, bạn sẽ tìm thấy một loạt các trang web về chip sô-côla, chip máy tính, chip gỗ, và nhiều thứ vô dụng khác. Tìm kiếm văn bản XML
cho <first-name> các yếu tố chứa từ Chip sẽ mang lại cho bạn những kết quả tốt
hơn rất nhiều.

20


1.1.4.

Một số ứng dụng của XML

Từ những lợi ích trên mà XML đã được sử dụng rộng rãi trong nhiều ứng dụng
khác nhau:


Giao dịch thương mại (Business-to-business transport): Dữ liệu

thương mại, hoá đơn, yêu cầu mua hàng, thông tin thuế … có thể được truyền
qua đường điện tử giữa các nhà sản xuất bằng định dạng XML. XML có rất
nhiều ưu điểm so với định dạng EDI (Electronic Data Interchange).



Cấu trúc Web site: Bản thân XML đã có tính cấu trúc và phân tán, các

nhà phát triển Web site có thể dễ dàng sử dụng XML trong việc tăng tính phân
tầng và cấu trúc duyệt (navigations) đối với những trang Web của họ. Hơn nữa,
sử dụng XML sẽ giúp cho việc lưu trữ thông tin người sử dụng, trạng thái Web
site, điều khiển luồng dữ liệu trong trang Web … trở nên dễ dàng hơn bao giờ
hết bằng cách kết hợp XML và XSLT.


Điều khiển cơ sở dữ liệu: XML cũng đóng góp vào sự phát triển trong

việc tương tác với cơ sở dữ liệu, ví dụ như việc nhận dữ liệu từ câu truy vấn
SQL hoặc cập nhật dữ liệu từ một bản ghi XML. Bằng việc mô tả dữ liệu theo
định dạng XML, chúng ta không cần thiết phải có một chút khái niệm nào về
cấu trúc thật sự của dữ liệu.


Quản lý văn bản: Hầu hết các công ty đều ngập tràn trong biển giấy tờ,

và điều này đã tiêu tốn không biết bao nhiêu thời gian của họ. XML được sử
dụng để mã hoá các văn bản sang dạng XML, giúp cho việc quản lý các văn bản
trở nên hiệu quả hơn rất nhiều.

21


1.1.5.

Tạo một tài liệu XML


Các văn bản XML đều bắt đầu với một khai báo XML, khai báo này sẽ đưa ra
cho bộ kiểm ngữ những thông tin cơ bản có trong văn bản. Khai báo XML có thể có,
nhưng không bắt buộc. Nếu có, nó phải là thứ đầu tiên trong văn bản.
Tuyên bố có thể chứa tới ba cặp giá trị-tên (nhiều người gọi đó là những thuộc
tính, dù thực chất về kỹ thuật thì không phải vậy). Phiên bản là phiên bản XML được
sử dụng; giá trị lúc này phải là 1.0. Encoding là chỉ bảng mã chữ cái được sử dụng
trong văn bản này, ISO-8859-1 là chữ cái tham khảo trong khai báo trên bao gồm
những chữ cái rất phổ biến trong hầu hết các ngôn ngữ Tây Âu. Nếu không có
encoding nào được chỉ ra, bộ kiểm ngữ XML sẽ cho là những chữ cái trong bộ UTF-8,
một tiêu chuẩn Unicode phù hợp với từng chữ cái và chữ tượng hình của các ngôn ngữ
trên thế giới.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no>
Cuối cùng, standalone, có thể là có hoặc không, xác định tài liệu này có thể
được xử lý cùng với hay không với bất cứ tập tin nào khác. Chẳng hạn, nếu văn bản
XML không tham khảo các tập tin khác, bạn nên chỉ rõ standalone="yes". Nếu văn bản
XML tham khảo những tập tin khác mà mô tả nội dung văn bản, bạn nên chỉ rõ
standalone="no". Bởi vì standalone="no" là một mặc định, bạn sẽ hiếm khi thấy
standalone trong các tuyên bố XML.
Bây giờ hãy thử xem một văn bản XML mẫu. Với XML, chúng ta có thể đưa ý
nghĩa vào các thẻ trong văn bản. Quan trọng hơn, máy tính sẽ dễ dàng hơn trong việc
xử lý thông tin. Chúng ta có thể rút được ngày đặt hàng ra từ văn bản này đơn giản là
bằng cách bao bọc nó bởi các thẻ <OrderDate> và </OrderDate>, được biết một cách
máy móc là phần tử <OrderDate>.

22


<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Order>

<OrderDate>2002-6-14</OrderDate>
<Customer>Helen Mooney</Customer>
<Item>
<ProductID>2</ProductID>
<Quantity>1</Quantity>
</Item>
<Item>
<ProductID>4</ProductID>
<Quantity>3</Quantity>
</Item>
</Order>
Tài liệu XML trong ví dụ mẫu trên bao gồm 1 Element gốc: <Order>.
<OrderDate>, <Customer>, <Item> là Element con của Element gốc. <ProductID>,
<Quantity> là con của element Item.
1.1.6.

Kết luận

Kết thúc phần 1.1, chúng ta có thể hình dung một cách tổng quan về ngôn ngữ
XML, chẳng hạn như: Lịch sử ra đời của XML như thế nào?, XML là gì?, Lợi ích và
ứng dụng của nó đối với lĩnh vực công nghệ ra sao? Và một tài liệu XML trông như thế
nào?. Từ đó ta có thể tạo các ứng dụng phức hợp hoặc đơn giản theo như tình huống
của ta đảm bảo.

23


Phần lớn năng lực có được từ XML là do cách khắt khe mà các tư liệu phải
được viết. Để xem xét chi tiết hơn các quy tắc tạo XML well-formed và hiểu rõ hơn về
cấu trúc XML cũng như việc thực hiện truy vấn trên tập tin XML như thế nào?, chúng

ta sẽ đi vào tìm hiểu tiếp ở những phần sau.
1.2.

Một số khái niệm cơ bản về XML

1.2.1.

Nguyên tắc của ngôn ngữ XML

Bất cứ một ngôn ngữ nào cũng đều có một nguyên tắc nhất định, ví dụ trong
SQL dùng các từ khoá như: Select … From…Where….; Insert to… để quản lý thông
tin dữ liệu,… hoặc trong HTML thì sử dụng những thẻ có sẵn (từ khoá) để trình bày,
biều diễn thông tin: <html> </html>, <tittle> </tittle>, <body> </body>,

,

, …còn đối với XML, mặc dù các thẻ XML do người dùng đặt ra nhưng nó cũng
cần phải tuân thủ những nguyên tắc sẽ được trình bày dưới đây.
Một tài liệu XML phải tuân thủ các thẻ (tags), các element (phần tử), các thuộc
tính (attribute), các giá trị (value),… chứa bên trong nó để parser có thể nhận diện và
phân biệt mọi thứ. Khi đó, tài liệu XML được gọi là Well-Formed. Vậy một tài liệu
XML được gọi là Well-formed khi nó phải tuân thủ theo các luật sau:
 Phải có một root (gốc) Element duy nhất, gọi là Document Element,
nó chứa tất cả các Elements khác trong tài liệu.
Ví dụ: Đoạn code dưới đây là sai:
<Product ProductID="1">Chair</Product>
<Product ProductID="2">Desk</Product>
Đoạn code sau là đúng:
<Catalog>
<Product ProductID="1">Chair</Product>

24



<Product ProductID="2">Desk</Product>
</Catalog>
 Mỗi opening Tag phải có một closing Tag giống như nó.
Ví dụ: Đoạn code sau không well-formed vì có tag mở Item nhưng không
có tag đóng.
<Order>
<OrderDate>2002-6-14</OrderDate>
<Customer>Helen Mooney</Customer>
<Item>
<ProductID>2</ProductID>
<Quantity>1</Quantity>
<Item>
<ProductID>4</ProductID>
<Quantity>3</Quantity>
</Item>
</Order>
Sửa lại đoạn code cho đúng well-formed như sau:
<Order>
<OrderDate>2002-6-14</OrderDate>
<Customer>Helen Mooney</Customer>
<Item>
<ProductID>2</ProductID>
<Quantity>1</Quantity>

25


×