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

Giáo trình Công nghệ XML (Ngành: Hệ thống thông tin) - CĐ Kinh tế Kỹ thuật TP.HCM

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 (3.28 MB, 197 trang )

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH


GIÁO TRÌNH
MƠN HỌC : CƠNG NGHỆ XML
NGHỀ: HỆ THỐNG THƠNG TIN
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành kèm theo Quyết định số:
/QĐ-CĐKTKT ngày
tháng
năm 20
của Hiệu trưởng Trường Cao đẳng Kinh tế - Kỹ thuật Thành phố Hồ Chí Minh)

Thành phố Hồ Chí Minh, năm 2020


ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH


GIÁO TRÌNH
MƠN HỌC: CƠNG NGHỆ XML
NGHỀ: HỆ THỐNG THƠNG TIN
TRÌNH ĐỘ: CAO ĐẲNG

THÔNG TIN CHỦ NHIỆM ĐỀ TÀI
Họ tên: Huỳnh Khắc Duy
Học vị: Thạc sỹ


Đơn vị: Khoa Công Nghệ Thông Tin
Email:
TRƯỞNG KHOA

TỔ TRƯỞNG
BỘ MÔN

CHỦ NHIỆM
ĐỀ TÀI
Huỳnh Khắc Duy

HIỆU TRƯỞNG
DUYỆT

Năm 2020
KHOA CÔNG NGHỆ THÔNG TIN

2


TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể được phép
dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh
thiếu lành mạnh sẽ bị nghiêm cấm.

KHOA CÔNG NGHỆ THÔNG TIN

3



LỜI GIỚI THIỆU
Hiện nay việc ứng dụng Công nghệ thông tin vào các ngành nghề khác trở nên phổ
biến, trong nhiều lĩnh vực. Cơng nghệ thơng tin đã góp phần làm cho công việc trở nên
thuận lợi.
Môn công nghệ XML là mơn học giúp sinh viên có kiến thức nền tảng công nghệ
XML các ứng dụng của XML để xây dựng các ứng dụng thực tế.
Giáo trình này sẽ cung cấp cho người học các kiến thức từ cơ bản cho đến chuyên sâu
về công nghệ XML.
…………., ngày……tháng……năm………
Tham gia biên soạn
1. Huỳnh Khắc Duy

KHOA CÔNG NGHỆ THÔNG TIN

4


MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU XML ................................................................................. 12
1.1 Thế giới XML ...................................................................................................... 12
1.2 Trình soạn thảo .................................................................................................... 15
1.3 Cấu trúc tài liệu XML .......................................................................................... 15
1.4 Không gian tên XML ........................................................................................... 21
CHƯƠNG 2. SỰ HỢP LỆ............................................................................................. 25
2.1. Document Type Definition (DTD) ..................................................................... 25
2.2. Lược đồ XML (XML Schemas) ......................................................................... 36
CHƯƠNG 3. XỬ LÝ TÀI LIỆU XML ......................................................................... 52
3.1. Mơ hình DOM .................................................................................................... 52
3.2. Ngôn ngữ Xpath .................................................................................................. 76

3.3 XSLT.................................................................................................................... 85
CHƯƠNG 4. CƠ SỞ DỮ LIỆU ..................................................................................102
4.1. XQuery..............................................................................................................102
4.2. XML và cơ sở dữ liệu .......................................................................................138
CHƯƠNG 5. LẬP TRÌNH ..........................................................................................146
5.1. Lập trình hướng sự kiện ....................................................................................146
5.1.1. LINQ to XML ................................................................................................ 147
CHƯƠNG 6. GIAO TIẾP ...........................................................................................158
6.1 RSS ATOM và CONTENT Syndication ...........................................................158
6.2 Web service ........................................................................................................171
6.3. SOAP và WSDL ............................................................................................... 173
6.4. AJAX ................................................................................................................179
CHƯƠNG 7. HIỂN THỊ..............................................................................................184
7.1 XHTML và HTML 5 .........................................................................................184
7.2 Scalable vector Graphics (SVG) ........................................................................194

KHOA CÔNG NGHỆ THÔNG TIN

5


GIÁO TRÌNH MƠN HỌC/MƠ ĐUN
Tên mơn học: Cơng nghệ XML
Mã mơn học: MH3101343
Vị trí, tính chất, ý nghĩa và vai trị của mơn học:
- Vị trí: là mơn học chun ngành, học kỳ 4.
- Tính chất: mơn học lý thuyết, mơn bắt buộc.
- Ý nghĩa và vai trị của mơn học:
Mục tiêu của mơn học:
-


Về kiến thức:
+ Phân tích được cấu trúc của một tài liệu XML.
+ Phân biệt được DTDs và lược đồ XML.
+ Liệt kê được các bước xử lý tài liệu XML bằng DOM, SAX, Xquery, Xpath.
+ Xác định được các vần đề cần thiết cho một web service.
+ Đưa ra được các bước suy luận giữa cơ sở dữ liệu với XML.

-

Về kỹ năng:
+ Tạo được tài liệu XML.
+ Chuyển thể tài liệu XML với XSLT.
+ Đặc tả cấu trúc XML với DTD và Schema.
+ Phát triển được chương trình làm việc giữa cơ sở dữ liệu với XML.
+ Xây dựng được web service.

-

Về năng lực tự chủ và trách nhiệm:
+ Rèn luyện thói quen tự giác nghiên cứu bài học trước khi đến lớp.
+ Tạo thói quen làm bài tập thực hành thường xun.

KHOA CƠNG NGHỆ THÔNG TIN

6


III. Nội dung môn học:
1. Nội dung tổng quát và phân bổ thời gian:

Thời gian (giờ)
Số
TT

1

2

3

4

5

6

7

Tên chương, mục
Chương 1. Giới thiệu XML
1.1. Thế giới XML
1.2. Trình soạn thảo
1.3 Cấu trúc tài liệu XML
1.4 Không gian tên XML
Chương 2. Sự hợp lệ
2.1. Document Type Definition (DTD)
2.2. Lược đồ XML (XML Schemas)
Chương 3. Xử lý tài liệu XML
3.1. Mơ hình DOM
3.2. Ngơn ngữ Xpath

3.3. XSLT
Chương 4. Cơ sở dữ liệu
4.1. XQuery
4.2. XML và cơ sở dữ liệu
Chương 5. Lập trình
5.1 Lập trình hướng sự kiện
5.2 LINQ to XML
Chương 6. Giao tiếp
6.1 RSS ATOM và CONTENT
Syndication
6.2 Web service
6.3 SOAP và WSDL
6.4 AJAX
Chương 7. Hiển thị
7.1 XHTML và HTML 5
7.2 Scalable vector Graphics (SVG)
Cộng
2. Nội dung chi tiết:

Tổng
số


thuyết

Thực hành

10

2


8

10

2

8

10

2

6

10

2

8

10

2

8

15

3


10

10

2

8

75

15

56

Chương 1. Giới thiệu XML

Kiể
m
Tra

2

2

4

Thời gian: 10 giờ

Mục tiêu:

-

Phát biểu được sự hình thành và phát triển của XML.

-

Trình bày được cấu trúc của một tài liệu XML và kiểm tra được khn dạng
của nó.

-

Khai báo được khơng gian tên trong trang XML.

KHOA CƠNG NGHỆ THƠNG TIN

7


-Vận dụng trình soạn thảo để tạo tập tin XML.
Nội dung:
1.1. Thế giới XML
1.2. Trình soạn thảo
1.3 Cấu trúc tài liệu XML
1.4 Không gian tên XML
Chương 2. Sự hợp lệ

Thời gian: 10 giờ

Mục tiêu:
-


Trình bày khái niệm về DTD và XML Schemas và lợi ích của chúng.

-

Sử dụng được DTD và XML Schemas để đặc tả cấu trúc của tài liệu XML.

Nội dung:
2.1. Document Type Definition (DTD)
2.2. Lược đồ XML (XML Schemas)
Chương 3. Xử lý tài liệu XML

Thời gian: 10 giờ

Mục tiêu:
-

Truy xuất được tài liệu XML bằng mơ hình DOM và ngôn ngữ Xpath.

-

Định dạng được tài liệu XML bằng XSLT.

Nội dung:
3.1. Mơ hình DOM
3.2. Ngơn ngữ Xpath
3.3. XSLT
Chương 4. Cơ sở dữ liệu

Thời gian: 10 giờ


Mục tiêu:
-

Trình bày được cú pháp của ngôn nghữ Xquery và mối quan hệ giữa Xquery,
Xpath và XSLT.

-

Hiểu được tại sao cơ sở dữ liệu cần XML.

-

Sử dụng các cơ sở dữ liệu MySQL, SQL server, Exist với XML.

Nội dung:
4.1. XQuery
4.2. XML và cơ sở dữ liệu
Chương 5. Lập trình

Thời gian: 10 giờ

Mục tiêu:
KHOA CÔNG NGHỆ THÔNG TIN

8


-


Phát biểu được khái niệm lập trình hướng sự kiện.

-

Truy xuất được tài liệu XML bằng SAX và LINQ.

Nội dung:
5.1 Lập trình hướng sự kiện
5.2 LINQ to XML
Chương 6. Giao tiếp

Thời gian: 15 giờ

Mục tiêu:
-

Phát biểu được các loại giao tiếp giữa các hệ thống thông tin.

-

Tạo được RSS, web service loại SOAP và WDSL.

-

Kết nối được AJAX và XML trên trang web.

Nội dung:
6.1 RSS ATOM và CONTENT Syndication
6.2 Web service
6.3 SOAP và WSDL

6.4 AJAX
Chương 7. Hiển thị

Thời gian: 10 giờ

Mục tiêu:
-

Phân biệt được XML, HTML và XHTML.

-

Sử dụng Javascript với XML.

-

Tạo được tập tin SVG.

Nội dung:
7.1 XHTML và HTML 5
7.2 Scalable vector Graphics (SVG)
IV. Điều kiện thực hiện môn học:
1. Phịng học chun mơn hóa/nhà xưởng: Phịng học thực hành.
2. Trang thiết bị máy móc: Máy chiếu, máy tính có phần mềm Dreamweaver,
Trình duyệt Web.
3. Học liệu, dụng cụ, nguyên vật liệu: Bảng, bút viết bảng.
4. Các điều kiện khác: máy tính có kết nối Internet.
V. Nội dung và phương pháp, đánh giá:
1. Nội dung:
KHOA CÔNG NGHỆ THÔNG TIN


9


- Kiến thức:
Được đánh giá qua bài kiểm tra và thực hành cuối mơn đạt được các u cầu
sau:
+

Trình bày được các khái niệm cơ bản, các công cụ sử dụng XML.

+

Phân tích các thành phần trong XML.

- Kỹ năng:
Đánh giá kỹ năng thực hành của sinh viên trong các bài thực hành:
+

Tạo được tập tin XML.

+

Sử dụng được các công cụ kết nối XML.

+

Tạo được ứng dụng sử dụng XML hoàn chỉnh dựa trên các kiến thức đã
học.


- Năng lực tự chủ và trách nhiệm:
+

Nhận thức được tầm quan trọng của việc sử dụng XML.

2. Phương pháp:
STT

Phương pháp

01

Kiểm tra thường xun

02

Kiểm tra định kỳ

03

Thi kết thúc mơn học

Hình thức
Thực hành trên
máy tính
Thực hành trên
máy tính
Báo cáo tiểu luận

Số cột


Thời gian
thi

2
2

90 phút

VI. Hướng dẫn thực hiện môn học:
1. Phạm vi áp dụng mơn học: Áp dụng cho khóa học trình độ cao đẳng.
2. Hướng dẫn về phương pháp giảng dạy, học tập môn học:
- Đối với giáo viên, giảng viên:
+ Giáo viên có thể vận dụng phương pháp thuyết trình, giảng giải kết hợp
phương pháp gợi mở, phát vấn để người học nghề có thể tham gia tích cực vào
bài giảng.
+ Phương tiện, dụng cụ giảng dạy: Ngoài phương tiện giảng dạy truyền
thống giáo viên cịn có thể sử dụng Máy chiếu Projector, Laptop, sơ đồ, tranh
ảnh minh hoạ giúp làm rõ và sinh động nội dung bài học.
+ Trong điều kiện có thể kết hợp giảng dạy lý thuyết và thực hành trong
cùng một phịng học chun mơn hố có máy tính được nối mạng LAN và
mạng Internet, có sử dụng các phương tiện dạy học bằng hình ảnh.
- Đối với người học:
+ Thực hiện đầy đủ và nghiêm túc các qui định đối với môn học và của
giáo viên.
+ Hoàn thành đầy đủ các bài thực hành và tham dự các buổi kiểm tra trên
KHOA CÔNG NGHỆ THÔNG TIN

10



lớp.
+ Kết thúc khóa học, người học sẽ nộp bài tiểu luận và báo cáo để xác định
việc họ có hồn thành chương trình học hay khơng
+ Học sinh tham gia đầy đủ các buổi lên lớp (không nghỉ quá 30% thời
lượng học)
3. Những trọng tâm cần chú ý:
- Trình độ giáo viên: ít nhất phải có bằng cử nhân hoặc bằng cấp tương
đương tính theo kinh nghiệm dạy học trước đó. Có chứng chỉ dạy nghề.
- Nguồn lực đào tạo: Những nguồn lực sau đây được khuyến khích sử dụng
để bổ trợ những phương pháp giảng dạy đề xuất.
+ Cơ sở vật chất, trang thiết bị giảng dạy: Lớp học có đầy đủ máy vi tính cho
học sinh thực tập.
+ Sách, giáo trình và tài liệu tham khảo.
+ Kế hoạch giảng dạy và giáo án chi tiết của giáo viên đóng vai trị tài liệu
chính được sử dụng trong quá trình giảng dạy.
- Phương pháp đào tạo: Giáo viên kết hợp nhiều chiến lược giảng dạy để
giúp tất cả người học thuộc mọi đối tượng có những tiến bộ nhất định nào đó.

KHOA CƠNG NGHỆ THƠNG TIN

11


Chương 1. Giới thiệu xml
CHƯƠNG 1. GIỚI THIỆU XML
1.1 Thế giới XML
Hiện nay XML (eXtensible Markup Language) chiếm vị trí rất quan trọng trong
việc chuyển tải, trao đổi dữ liệu và liên lạc giữa các ứng dụng. Điều này càng
được khẳng định khi các hệ điều hành từ WindowsXP trở đi và các hệ điều hành

khác bên trong nó chứa rất nhiều tập tin XML. Hơn nữa khi bộ .Net ra đời càng
làm cho XML trở nên thịnh hành và ngày càng được ứng dụng rộng rãi.
Sử dụng kỹ thuật XML khơng chỉ có tập đồn Microsoft mà ngay cả Sun, IBM,
Oracles điều hỗ trợ XML sử dụng nó trong các hệ điều hành và các ứng dụng.
XML là ngôn ngữ xây dựng cấu trúc tài liệu văn bản, dựa theo chuẩn SGML
(Standard Generalized Markup Language: siêu ngơn ngữ có khả năng sinh ngôn
ngữ khác). SGML được phát triển cho việc định cấu trúc và nội dung tài liệu điện
tử, do tổ chức ISO (International Organization for Standards) chuẩn hóa năm
1986.
SGML do IBM đưa ra, song không thể không kể đến những đóng góp của các
cơng ty khác. XML được W3C (World Wide Web Consortium - tổ chức độc lập
định ra tiêu chuẩn cho trình duyệt Web, máy chủ và ngôn ngữ) phát triển, nhưng
đặc tả XML lại do Netscape, Microsoft và các thành viên của dự án Text
Encoding Initiative
(TEI) xây dựng. Tổ chức W3C XML Special Interest Group có đại diện từ hơn
100 công ty cùng nhiều chuyên gia được mời khác.
Lý do ra đời của XML vì SGML rất rắc rối khó sử dụng và HTML có nhiều
giới hạn nên năm 1996 tổ chức W3C thiết kế XML. XML version 1.0 được định
nghĩa trong hồ sơ February 1998 W3C Recommendation.
Điểm quan trọng của kỹ thuật XML là nó khơng thuộc riêng về một cơng ty?
nào, nó là một sản phẩm mà trí tuệ của nó thuộc về cả thế giới, là một tiêu chuẩn
được mọi người công nhận vì được soạn ra bởi W3C (World Wide Web
Consortium).
Bản thân của XML rất đơn giản, nhưng các công cụ chuẩn được định ra để làm
việc với XML như Document Object Model - DOM, XPath, XSL,... thì lại rất
hữu hiệu, và chính các chuẩn này được phát triển khơng ngừng.
XML cũng giống như HTML đều là ngôn ngữ đánh dấu, nhưng điều cần nói ở
đây là sự ra đời của XML nhằm để khắc phục một số mặt hạn chế của HTML.
HTML và XML đều sử dụng các thẻ nhưng các thẻ của HTML là một bộ dữ
liệu được xây dựng và định nghĩa trước, nghĩa là người lập trình phải tuân thủ

theo các thẻ đã định nghĩa của HTML, hiện HTML có khoản hơn 400 thẻ, để nhớ
hết 400 thẻ này cũng khơng có gì khó khăn đối với người lập trình web chun
nghiệp nhưng thật khó đối với những người khơng chun. Hơn nữa, các thẻ của
HTML khơng nói lên được mơ tả dữ liệu trong đó. Nhưng đối với XML thì hồn
tồn khác bởi vì tag trong XML là do người lập trình tự định nghĩa và mỗi thẻ là
một mơ tả dữ liệu mà người lập trình muốn truyền đạt.
Ngôn ngữ định dạng
Ngôn ngữ định dạng (Markup Language ) là tất cả những gì dùng để mơ tả nội
dung một tài liệu, đó là cách mà nội dung của tài liệu được diễn dịch. Tuy nhiên,
ngôn ngữ định dạng chúng ta thường sử dụng trước đây là HTML.
Ví dụ: Tạo tập tin document.html
KHOA CƠNG NGHỆ THƠNG TIN

12


Chương 1. Giới thiệu xml
<HTML>
<HEAD> <TITLE> Hello HTML</TITLE> <HEAD>
<BODY>
<CENTER>
<H1> Hello From HTML <H1>
</CENTER>
Well come to the wild and woolly word of HTML
</BODY>
</HTML>
Kết quả của tập tin document.html hiển thị trên trình duyệt:

HTML và XML có mối quan hệ rất gần với nhau. Cả hai đều dựa trên chuẩn
ngôn ngữ định dạng tổng quát SGML. Câu hỏi đặt ra là: XML sẽ được sử dụng

và nó hiển thị trên trình duyệt như thế nào?
Sau đây chúng ta sẽ chuyển nội dung tập tin document.html sang thành tập tin
document.xml như sau:
<?xml version ="1.0" encoding="UTF-8"?>
<DOCUMENT>
<GREETING>
Hello From XML
</GREETING>
<MESSAGE>
Well come to the wild and woolly word of HTML
</MESSAGE>
</DOCUMENT>
Kết quả hiển thị trên trình duyệt của tập tin document.xml

KHOA CÔNG NGHỆ THÔNG TIN

13


Chương 1. Giới thiệu xml

Hai kết quả hoàn toàn khác nhau. Đối với tập tin document.xml thì chúng sẽ hiển
thị đúng với tập tin gốc bởi vì trình duyệt khơng hiểu được các thẻ do ta tự định
nghĩa. Chính vì vậy, để trình duyệt có thể hiểu được các thẻ do ta định nghĩa và
hiển thị chúng, ta phải dùng bảng định kiểu (Style Sheet)
Có 2 cách chỉ ra bảng định kiểu khi định dạng:
- Dùng CSS (Cascade Style Sheet)
- Dùng XSL (Extensible Style Language)
Ví dụ: Ta dùng bảng định kiểu CSS để hiển thị nội dung tập tin document.xml
trên

Bước 1:Ta thêm đoạn code (in đậm) vào tập tin document.xml trên như sau:
<?xml version ="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css"href="document.css"?>
<DOCUMENT>
<GREETING>
Hello From XML
</GREETING>
<MESSAGE>
Well come to the wild and woolly word of HTML
</MESSAGE>
</DOCUMENT>
Bước 2:Tạo tiếp tập tin document.css:
GREETING
{
display:block; font-size:18pt;
color:#FF0000; text-align:center;
}
MASSAGE {display:block; font-size:18pt; color:#000000;}
Bây giờ, kết quả khi chạy tập tin document.xml trên trình duyệt sẽ có hình dạng
sau và khơng cịn hiển thị nội dung tập tin gốc nữa.
KHOA CÔNG NGHỆ THÔNG TIN

14


Chương 1. Giới thiệu xml

1.2 Trình soạn thảo

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

Khái niệm về cấu trúc tài liệu XML và đặc tả cấu trúc tài liệu XML:
Về cấu trúc tài liệu XML":
– Chỉ tương ứng cấu trúc của nội dung chính.
– Cách thức tổ chức, sắp xếp của các thẻ (có hay khơng có nội dung) trong nội dung
chính.
Về đặc tả cấu trúc tài liệu XML:
– Mô tả ngắn gọn, chính xác cấu trúc tài liệu XML.
– Mơ tả ngắn gọn, chính xác cách thức tổ chức, sắp xếp của các thẻ.
Ngơn ngữ đặc tả cấu trúc:

KHOA CƠNG NGHỆ THÔNG TIN

15


Chương 1. Giới thiệu xml
Có rất nhiều ngơn ngữ được đề xuất để mô tả tài liệu XML như DTD, XML Schema,
XML-Data, Schematron, RELAX NG,… Trong số đó có 2 ngôn ngữ thông dụng là
DTD và XML Schema.
Đặc điếm của DTD:
– Ra đời rất sớm.
– Cho phép mô tả văn bản có cấu trúc bất kì.
– Đơn giản, dễ học và sử dụng.
– Chỉ cho phép đặc tả một số “kiểu dữ liệu đơn giản” trong nội dung chính của tài liệu
XML.
Đặc điểm của XML Schema:
– Được đề xuất bởi W3C.
– Chỉ áp dụng cho tài liệu XML.
– Khó học và khó sử dụng hơn DTD.
– Cho phép đặc tả chi tiết về các “kiểu dữ liệu” được sử dụng trong nội dung chính của

tài liệu XML.
Hãy xét qua ví dụ sau:
<?xml version=“1.0” encoding=“utf-8” ?>
<PHAN_SO>
<Tu_so>4</Tu_so>
<Mau_so>3</Mau_so>
</PHAN_SO>
Đặc tả tài liệu trên với DTD:
<!ELEMENT PHAN_SO (Tu_so, Mau_so) >
<!ELEMENT Tu_so #PCDATA >
<!– Tu_so : Số nguyên // > 0 –>
<!ELEMENT Mau_so #PCDATA>
<!– Mau_so : Số nguyên // > 0 –>
]>
Đặc tả với XML Schema:
<?xml version=“1.0” encoding=“utf-8”?>
<xs:schema id=“PHAN_SO” targetNamespace=“ />xmlns:xs=“ /><xs:elementname=“PHAN_SO” type=“PHAN_SO” />
<xs:complexType name=“PHAN_SO”>
<xs:sequence>
minOccurs=“1” maxOccurs=“1” />
KHOA CÔNG NGHỆ THÔNG TIN

16


Chương 1. Giới thiệu xml
minOccurs=“1” maxOccurs=“1” />

</xs:sequence>
</xs:complexType>
<xs:simpleTye name=“SO_NGUYEN_DUONG”>
<xs;restriction base=“xs:int”>
<xs:minExclusive value=“0” />
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sử dụng đặc tả cấu trúc:
Có 2 trường hợp chính cần thiết sử dụng các tài liệu đặc tả cấn trúc:
– Trường hợp 1: sử dụng cho việc trao đổi thông tin giữa người – người.
– Trường hợp 2: sử dụng cho việc trao đổi thông tin giữa người – hệ thống xử lý.
Trường hợp 1 là trường hợp phổ biến nhất, với trường hợp này, tài liệu đặc tả cấu trúc
+ được sử dụng như phương tiện giao tiếp giữa chuyên viên tin học có liên quan đến
tài liệu XML tương ứng.
+ có thể được lưu trữ theo bất kì định dạng nào thích hợp cho việc sử dụng (trình bày,
xem, báo cáo,…)
Trường hợp 2 chỉ được sử dụng khi
+ có hệ thống xử lý (phần mềm, hàm, đối tượng thư viện) “hiểu” và thực hiện các xử
lý tương ứng nào đó với tài liệu đặc tả cấu trúc (xứ lý thông dụng nhất là kiểm tra một
tài liệu XML có theo đúng cấu trúc được mơ tả trong tài liệu đặc tả cấu trúc hay
không).
+ thật sự có nhu cầu cần đến các xử lý của hệ thống xử lý nói trên.
Một số kĩ thuật đặc tả nội dung:
1. Sử dụng thẻ thực thể:
Ý nghĩa chung của các thẻ thực thể là cho phép tài liệu XML tham chiếu đến một tập
hợp các giá trị đã chuẩn bị trước dưới dạng một tên gợi nhớ (tên thực thể).
Mỗi cách thức tham chiếu và “loại” của tập hợp giá trị được tham chiếu tương ứng với
một ý nghĩa/mục tiêu (dạng sử dụng) riêng và sẽ yêu cầu dạng thẻ khai báo thực thể
thích hợp.

Có 4 dạng sử dụng chính của các thực thể:
– Tham chiếu đến một chuỗi giá trị bên trong tài liệu XML đang xét.
– Tham chiếu đến các kí tự đặc biệt được định nghĩa trước.
– Tham chiếu đến một tập hợp các giá trị bên ngoài tài liệu.
– Tham chiếu đến một tài liệu XML khác.
*Cách thức khai báo và sử dụng chung các thẻ khai báo thực thể (cho cả 4 dạng trên)
như sau:
Khai báo:
KHOA CÔNG NGHỆ THÔNG TIN

17


Chương 1. Giới thiệu xml
Khai báo thực thể X
Khai báo thực thể Y
]>
Sử dụng
&X; <– Sử dụng tham chiếu của X –>
&Y; <– Sử dụng tham chiếu của Y –>
– Dạng 1: ý nghĩa
+ tăng cường tính dễ đọc của tài liệu XML.
+ tăng cường tính dễ bảo trì của tài liệu XML.
Dạng khai báo và sử dụng:
<?xml version=“1.0” encoding=“utf-8”?>
<!ENTITY Ten_1 “Chuoi_1”>
<!ENTITY Ten_2 “Chuoi_2”>
]>

<Goc>
<A X=“&Ten_1;”>
<B>
&Ten_2;
</B>
</A>
<C Y=“&Ten_1;”>&Ten_2</C>
<D Y>&Ten_2;</D>
</Goc>
Tài liệu XML trên khai báo và sử dụng 2 thực thể:
Thực thể thứ nhất: Tên là Ten_1 và được sử dụng trong thuộc tính của 2 thẻ A, C.
Thực thể thứ hai: Tên là Ten_2 và được sử dụng trong nội dung của 3 thẻ B, C, D.
– Dạng 2: ý nghĩa là cho phép sử dụng một số kí tự đặc biệt.
Sử dụng kí tự đặc biệt được định nghĩa trước
< kí tự <
> kí tự >
" kí tự “
' kí tự ‘
& kí tự &
Sử dụng các kí tự thơng qua mã số trong cách mã hóa.
+ Nếu dùng hệ thập phân:
&#So_thap_phan; kí tự có mã số là số thập phân
KHOA CÔNG NGHỆ THÔNG TIN

18


Chương 1. Giới thiệu xml
Ví dụ: 0 kí số 0
a kí tự a

+ Nếu dùng hệ thập lục phân:
&#xSo_thap_luc_phan; kí tự có mã số là số thập lục phân
Ví dụ: 0 kí số 0
A kí tự a
– Dạng 3: ý nghĩa là cho phép tham chiếu đến tập tin chưa giá trị cần sử dụng nào đó.
Các giá trị này không nhất thiết phải theo định chuẩn XML. Cách sử dụng này của
thực thể thông thường để bổ sung vào nội dung các hình ảnh, âm thanh,…
Dạng khai báo thơng dụng: <!ENTITY Ten_thuc_the SYSTEM Ten_tap_tin >
Thực thể Ten_thuc_the tham chiếu đến tập tin có vị trí được cho bởi Ten_tap_tin.
Ghi chú: + Ten_tap_tin bao hàm cả đường dẫn.
+ Có thể dùng địa chỉ URL như Ten_tap_tin.
Ví dụ: Giả sử đã có tập tin hinh.jpg lưu trữ hình ảnh của một nhân viên trong thư mục
hiện hành
<!ENTITY Hinh_nhan_vien SYSTEM “hinh.jpg” >
]>
<NHAN_VIEN Hinh=“&Hinh_nhan_vien;” … >

</NHAN_VIEN>
– Dạng 4: ý nghĩa là cho phép phân rã tài liệu XML thành các tài liệu con được lưu trữ
trong các tập tin độc lập.
Dạng khai báo thơng dụng: <!ENTITY Ten_thuc_the SYSTEM Ten_tap_tin >
Ví dụ: Giả sử đã có các tập tin Thu_tien_1.xml, Thu_tien_2.xml,… Thu_tien_12.xml
lưu trữ thông tin về các phiếu thu tiền trong tháng 1, 2,… 12 của năm đang xét.
Tập tin Thu_tien.xml lưu trữ thông tin về các phiếu thu trong năm đang xét như sau
<!ENTITY Thu_tien_1 SYSTEM “Thu_tien_1.xml” >
<!ENTITY Thu_tien_2 SYSTEM “Thu_tien_2.xml” >

<!ENTITY Thu_tien_12 SYSTEM “Thu_tien_12.xml” >

]>
<THU_TIEN>
&Thu_tien_1;
&Thu_tien_2;

&Thu_tien_12;
</THU_TIEN>
KHOA CÔNG NGHỆ THÔNG TIN

19


Chương 1. Giới thiệu xml
2. Sử dụng tên:
Tên thẻ, tên các thuộc tính trong tài liệu XML thuộc về 1 trong 2 loại sau:
– Tên khơng có tiền tố: mơ tả đầy đủ các quy tắc đặt tên cho các tên thẻ, thuộc tính là
cơng việc khơng đơn giản và đặc biệt là cũng không cần thiết. Chẳng hạn, tên là chuỗi
bao gồm các kí tự a-z, A-Z, kí số 0-9, một số kí tự như “-”, “_”, “.”,…
– Tên có tiền tố: có dạng 2 chuỗi kí tự cách nhau bởi kí tự “:” Chuoi_tien_to :
Chuoi_ten
Ví dụ:
<A:MAT_HANG … />
<B:MAT_HANG … />
Nếu chỉ sử dụng tài liệu XML đơn lẻ, riêng cho các ứng dụng cục bộ thì khơng cần
thiết dùng tiền tố trong tên. Tuy nhiên, nếu cần thiết tiếp nhận. kết xuất toàn bộ/một
phần tài liệu XML từ/đến một ứng dụng khác thì việc tên với tiền tố là rất cần thiết.
Tiền tố của tên sẽ dùng để phân biệt được nguồn gốc của một thẻ trong tài liệu XML
được tạo thành từ nhiều tài liệu XML khác có các thẻ trùng phần tên khơng tiền tố.
Xét tài liệu XML với việc sử dụng các tiền tố A tương ứng tên công ty A trong giao
dịch thương mại điện tử.

<A:The_goc>
<A:The_1 … />
<A:The_2 … >
Nội dung
</A:The_2>

<A:The_2>
Nội dung
</A:The_2>

<A:The_3 … />
</A:The_goc>
Việc sử dụng thuộc tính xmlns cho phép đơn giản hóa tài liệu XML trên
<The_goc xmlns=“A”>
<The_1 … />
<The_2>
Nội dung
</The_2>

<The_2>
KHOA CÔNG NGHỆ THÔNG TIN

20


Chương 1. Giới thiệu xml
Nội dung
</The_2>
<The_3 …/>
</The_goc>

Cú pháp khai báo của thuộc tính xmlns như sau:
+ Dạng 1: <Ten_the xmlns=“Chuoi_tien_to” … >

</Ten_the>
Khai báo trên có ý nghĩa rằng, tất cả các tên trong thẻ đang xét (bao hàm chính thẻ
này) nếu khơng có tiền tố thì tiền tố chính là Chuoi_tien_to.
+ Dạng 2: <Ten_the xmlns:Chuoi_tien_to_1=“Chuoi_tien_to_2” … >

</Ten_the>
Khai báo trên có ý nghĩa rằng tất cả các tên bên trong thẻ đang xét (bao hàm chính thẻ
này) nếu có tiền tố là Chuoi_tien_to_1 thì tiền tố thực sự là Chuoi_tien_to_2. Khai
bào này thường được dùng khi trong tài liệu XML có sử dụng đồng thời nhiều tiền tố
khác nhau và khai báo dạng 1 chỉ có thể áp dụng được với một trong số các tiền tố đó
và các tiền tố cịn lại thì q dài.

1.4 Khơng gian tên XML
Khơng gian tên (namespace).
XML cho phép chúng ta tự do định nghĩa các thẻ, như nó cho chúng ta dùng cùng một
tên nhưng lại nói đến nhiều loại dữ liệu khác nhau trong cùng một tài liệu XML. Xem
ví dụ sau:
<?xml version="1.0"?>
<BookOrder OrderNo="1234">
<OrderDate>20 01-01-01</OrderDate>
<Customer>
<Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName>
</Customer>
<Book>
<Title>Treasure Island</Title>

KHOA CÔNG NGHỆ THÔNG TIN

21


Chương 1. Giới thiệu xml
<Author>Robert Louis Stevenson</Author>
</Book>
</BookOrder>
Ta thấy trong ví dụ trên có phần tử Title nói đến hai loại dữ liệu khác nhau, một nói về
tên tác giả một nói về tiêu đề sách, điều này làm cho ta nhầm lẫn giữa hai loại dữ liệu.
Hơn thế nữa nếu tài liệu của chúng ta được sử dụng chỉ cho một mục đ ích riêng rẻ thì
khơng có vấn đề gì nh ưng khi tài liệu của chúng ta kết hợp với một tài liệu khác khác
thì tài liệu kết hợp này sẽ có vấn đề vì chúng ta đâu chắc chắn rằng tài liệu khác mà
chúng ta muốn kết hợp khơng có sử dụng thẻ trùng với thẻ của chúng ta định nghĩa
hay khơng.
Ví dụ như khi chúng ta tích hợp tài liệu XML của chúng ta với ứng dụng khác như
VML hay MathML mà chẳng may giữa các tài liệu này có cùng định nghĩa thẻ NAME
chẳng hạn. Lúc này trình phân tích sẽ khơng biết nên hiểu thẻ NAME của tài liệu của
bạn hay của VML hay của MathML.
Vì vậy chúng ta cần phải khai báo khơng gian tên để khắc phục điều này.
Khai báo không gian tên (namespace)
Để khai báo một không gian tên ta chỉ cần đưa thêm thuộc tính xmlns:prefix vào bên
trong phần tử gốc, prefix là tên của không gian tên, mỗi không gian tên cần mang một
định danh duy nhất. Một không gian tên có thể là một địa chỉ internet hoặc một địa chỉ
nào đó miễn là địa chỉ này phải duy nhất. Ví dụ sau đây sẽ tạo ra một không gian tên
hs và áp dụng cho tất cả các phần tử con:
<?xml version="1.0"?>
<BookOrder xmlns:hs=" /><hs:Customer >
<hs:Title>Mr.</Title>

<hs:FirstName>Graeme</FirstName>
<hs:LastName>Malcolm</LastName>
</hs:Customer>
</BookOrder>
Không gian tên mặc định (namespace default)

KHOA CÔNG NGHỆ THÔNG TIN

22


Chương 1. Giới thiệu xml
Nếu tài liệu của chúng ta các phần tử chỉ sử dụng duy nhất một không gian tên thì
chúng ta có thể khai báo khơng gian tên mặc định cho các phần tử con của một phần tử
cha bằng cách chỉ ghi thuộc tính xmlns và bỏ đi prefix.
<?xml version="1.0"?>

<BookOrder xmlns =" /><Customer >
<Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName> </ Customer>
</BookOrder>
Chúng ta xem tiếp ví dụ sau:
<?xml version="1.0"?>
<BookOrder >
<OrderDate>2001-01-01</OrderDate>
<Customer xmlns=" /><Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName>
</Customer>

<Book xmlns=" /><Title>Treasure Island</Title>
<Author>Robert Louis Stevenson</Author>
</Book>
</BookOrder>
Ví dụ trên chúng ta thấy có hai khơng gian tên mặc định, một cho phần tử Customer và
một cho phần tử Book. Nhưng điều đáng nói ở đây là nếu như trong tài liệu có nhiều
Customer và nhiều Book thì chúng ta khơng thể viết đi viết lại không gian tên mãi
được, rất mất thời gian.
Cách giải quyết tốt nhất là ta khai báo các không gian tên này ngay ở đầu tài liệu và
mỗi không gian tên được phân biệt bởi các định danh.
<?xml version="1.0"?>
KHOA CÔNG NGHỆ THÔNG TIN

23


Chương 1. Giới thiệu xml

xmlns=" />
xmlns:cus=" />
xmlns:bok

=" >

<OrderDate>2001-01-01</OrderDate>
<cus:Customer >
<cus:Title>Mr.</cus:Title>
<cus:FirstName>Graeme</cus:FirstName>
<cus:LastName>Malcolm</cus:LastName>

</cus:Customer>
<bok:Book >
<bok:Title>Treasure Island</bok:Title>
<bok:Author>Robert Louis Stevenson</bok:Author>
</bok:Book>
</BookOrder>
Ví dụ trên dùng 3 khơng gian tên, mộ t không gian tên mặc đị nh và hai không gian tên
có định danh là cus và bok. Trong ví dụ trên nh ững phần tử khơng có định danh của
khơng gian tên đi trước thì được hiểu là sử dụng khơng gian tên mặc định
như phần tử
<OrderDate>2001-01-01</OrderDate>

KHOA CƠNG NGHỆ THÔNG TIN

24


Chương 2. Sự hợp lệ

CHƯƠNG 2. SỰ HỢP LỆ

2.1. Document Type Definition (DTD)
DTD (Document Type Definition) là kiểu tài liệu dùng để định nghĩa kiểu dữ liệu cho
các phần tử trong tài liệu XML. Khi chúng ta định nghĩa các phần tử trong XML là tùy
thích, miễn sao cho nó hợp quy tắc của tài liệu XML. Tuy nhiên để tường minh hơn thì ta
nên định nghĩa kiểu dữ liệu cho từng phần tử trong tài liệu XML.
Trong chương trước chúng ta đã học cách viết một tài liệu hợp khuôn dạng. Tuy nhiên
một tài liệu XML được xem là hợp khn dạng và có giá trị khi tồn bộ các phần tử trong
tài liệu được được định nghĩa kiểu dữ liệu mà nó chứa. Với cách định nghĩa kiểu tư liệu
(DTD) khi chúng ta đọc một tài liệu XML nào thì chỉ cần đọc phần DTD thì chúng ta sẽ

biết được cấu trúc của tài liệu XML.
Trước khi đi vào phần chi tiết về cách tạo một tài liệu DTD, chúng ta hãy xem ví dụ sau:
<?xml version="1.0"?>
<!ELEMENT note (to,from,heading,body)>
(#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
Phầ n DTD trong ví dụ này được hi ểu như sau: Tài liệu XML có một phần tử gốc tên là
note, phần tử gốc này có 3 phần tử con là from, heading, body và 3 phần tử con này có
kiểu dữ liệu text.
Định nghĩa một tài liệu DTD
Để viết một tài liệu DTD cũng rất dễ, chỉ cần chúng ta tuân thủ đúng một số quy tắc của
W3C là được. Đầu tiên chúng ta hãy tìm hiểu về các phần tử (emlement), thuộc tính, thực
thể của DTD.
Phần tử <!DOCTYPE>
Phần tử này có chức năng dùng để khai báo bắt đầu định nghĩa kiểu tư liệu DTD.
Định nghĩa kiểu tư liệu có 2 dạng, đó là DTD tham chiếu nội và DTD tham chiếu ngoại.
DTD tham chiếu nội là DTD được định nghĩa ngay trong tài liệu XML còn DTD tham
chiếu ngoại là DTD được định nghĩa bên ngoài tài liệu XML. Bây giờ chúng ta sẽ tìm
hiểu từng cú pháp một.

Định nghĩa DTD tham chiếu nội
Để bắt đầu định nghĩa kiểu tư liệu DTD tham chiếu nội chúng ta dùng cú pháp sau:
KHOA CÔNG NGHỆ THÔNG TIN

25


×