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

Tài liệu XML, kỹ thuật tin học trong tương lai pptx

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 (206.87 KB, 12 trang )

XML, kỹ thuật tin học trong tương lai

Nếu phải tiên đoán kỹ thuật tin học nào chắc chắn sẽ thịnh hành trong tương
lai, ta không cần phải học chiêm tinh cũng nhắc đến XML. Vì hiện nay cả
Microsoft lẫn phái đối lập (Sun, Oracles, IBM v.v..) đều ôm chầm lấy XML và
dùng nó trong mọi ứng dụng. Vậy XML là gì? XML, viết tắt của chữ
eXtensible Markup Language, là một bộ qui 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.




Có lẽ bạn đã dùng qua HTML để viết các trang Web. Trong một trang Web ta dùng những Tag
Pairs (cặp nhãn hiệu mở đóng) để đánh dấu như <BODY> và </BODY>. Hãy quan sát một trang
Web dưới đây:
<HTML>
<HEAD>
<TITLE>Zensoft Website</Title>
</HEAD>
<body>
<H1>Chuyên Thiết kế</H1>
Website, Gia công phần mềm,<BR>
Theo yêu cầu.<BR>
</body>
</Html>
Trong HTML Web page các Tag Pair đều được định nghĩa trước và không chứa đựng ý nghĩa gì
về dữ kiện mà chúng kẹp bên trong, trừ trường hợp cho TITLE. Thí dụ H1 có nghĩa display hàng
chữ bên trong (Tiển Em Đi) theo cở lớn nhất, nhưng hàng chữ ấy có thể là bất cứ thứ gì, không
nhất thiết phải là tựa đề của bài thơ ở đây. Còn XML thì cho phép ta tự do đặt tên các Tag Pair
để dùng khi cần. Nếu tính ra, Dynamic HTML có đến khoảng 400 Tags mà nếu muốn dùng ta


phải nhớ hết. Trong khi đó, XML không có giới hạn về con số Tags và ta không cần phải nhớ
Tag nào cả. Ý nghĩa của các Tag rất linh động và ta có thể sắp xế
p các tags của XML theo loại
cho hợp lý. Thí dụ muốn làm một trang XML về gia phả ta cần những Tag diễn tả nhân vật, ngày
sinh, ngày tử, chỗ chôn, gia đình, cưới, ly dị .v.v..
Phân biệt DỮ LIỆU với CÁCH TRÌNH BÀY
XML diễn tả cấu trúc và ý nghĩa của các phần của tài liệu chớ không quan tâm đến cách trình
bày tài liệu. Ngược lại HTML bao gồm vừa cách trình bày, thí dụ như <B> </B> được dùng cho
BOLD (chữ đậm), vừa cấu trúc, thí dụ như các Tag dùng bên trong một TABLE .
Khi muốn trình bày các dữ kiện của một trang XML theo kiểu nào ta dùng một Style Sheet cho
nó. Thí dụ ta muốn trình bày cùng một trang XML với những dữ kiện về giá cả khẩu phần trên
một PC và một Mobile Phone (điện thoại di động), ta sẽ dùng hai Style Sheet khác nhau, một cho
PC, cái kia cho Mobile Phone.

Trong trường hợp nầy, XML tiện ở chỗ khi giá cả khẩu phần thay đổi trên thị trường ta không
cần phải làm một trang HTML mới cho chúng, chỉ tiếp tục dùng cùng một Style Sheet với dữ
kiện mới.

Đi xa hơn nữa, sự trình bày không nhất thiết phải trên một màn ảnh cho người ta xem, nó có thể
dưới hình thức âm thanh hay multimedia (vừa hình ảnh, vừa âm thanh). Tưởng tượng trong tuổi
già bạn nằm trên Bãi Sau (Vũng Tàu) nghe đọc truyệ
n Kiếm Hiệp của Kim Dung qua kỹ thuật
dùng XML chứa truyện bằng Unicode cho chữ Việt và một Style Sheet biến chữ Việt nhận từ
Internet qua Mobile Phone thành âm thanh, có nhiều giọng nam, nữ và khi nào trong Style Sheet
có dùng BOLD thì người đọc nói lớn hơn.
Trao đổi dữ kiện, tài liệu
Vì cả tài liệu XML đều nằm dưới dạng Text String nên nếu gởi đi xa có hư mất chút đỉnh, đầu
kia cũng đoán ra được. Giả dụ vào thế kỹ 23 sau n
ầy có ai bắt được một tài liệu XML của năm
2000, nhưng trong đó có vài chữ bị mờ, họ cũng đoán <FA ILY>Trương Thúy Sơn <FAM LY>

có nghĩa là <FAMILY>Trương Thúy Sơn <FAMILY>. Mặc dầu ta nói ai muốn đặt ra TAG nào
trong XML cũng được, nhưng thí dụ mỗi nghề nghiệp như hóa học, y học, toán học, âm nhạc ấn
định một số TAGs, mỗi TAG có ý nghĩa theo sự đồng ý trước trong nghề của mình, người ta có
thể dùng XML và Style Sheet để quy định cách chứa dữ kiện và ngay cả cách trình bày cho riêng
nghề của mình.
Một công ty xây cất có thể dùng một chương trình chạy tự động (Robot) để dọ giá những vật liệu
tư từ các công ty cung cấp qua cách dùng XML. Đây là khởi đầu cho việc giao dịch kinh doanh
tự động (Business-To-Business hay B2B).

Có một quy ước về cách dùng XML để trao đổi dữ kiện đã được triển khai gọi là "Open
Financial Exchange Format (OFX)". Người ta thiết kế OFX để cho các chương trình tài chánh
như Microsoft Money và Quicken trao đổi dữ kiện hay gởi các dữ kiện tài chánh đến nhà băng
.v.v..
Vì XML là một chuẩn công cộng, không thuộc về một công ty nào, nên người dùng không sợ
phải đụng chạm ai về copyright, ba-tăng, hay bị giới hạn cách sử dụng .v.v..Thí dụ như với XML
ta có thể tránh phải lệ thuộc hoàn toàn vào MSWord khi gởi một tài liệu vì sợ đầu kia người ta
không có MSWord. Miễn là tất cả các Word Processors đều đọc, viết XML được, ta có thể dùng
XML làm phương tiện trao đổi các tài liệu. Người dùng ở mỗi nơi có thể tự do chọn một Word
Processor theo sở thích.
XML không những cho bạn định nghĩa các phần của tài liệu mà còn đặt qui ước về sự liên hệ của
các phần ấy. Thí dụ bạn đang làm một trang Web để ghi tên những người bạn cần liên lạc, bạn có
thể đòi hỏi cho mỗi người đều bắt buộc phải có số điện thoại và Email. Để khi đánh dữ kiện vào
bạn sẽ không thiếu chi tiết nào.
Cuối cùng XML sẽ trở thành như một cơ sở dữ kiện với dạng phổ thông để ta dùng cách linh
động.
Một chút lịch sử của XML
XML được triển khai nhờ sự đóng góp của rất nhiều người trong mười năm qua. Cách đây hơn
10 năm ta có SGML (Standard Generalised Markup Language), một ngôn ngữ quốc tế rất phức
tạp, dùng để diễn tả tài liệu đa dạng và có cấu trúc tinh vi. Tuy rằng nó làm gì cũng được nhưng
quá rắc rối, khó học, khó dùng và nhất là các dụng cụ của nó cũng rất đắt tiền.


Nên Tim Berners-Lee ở CERN, hồi năm 1990, sáng chế ra HTML, một phần nhỏ của SGML,
nhưng dễ dùng, thích hợp với người phàm, mắt thịt như chúng ta, có thể được viết bằng tay,
không cần một chương trình nào giúp đở (authoring tool). Sự thành công của HTML vượt quá
sức tưởng tượng của chính soạn giả của nó.

Đến khoảng năm 1995 người ta bắt đầu thấy sự giới hạn của HTML, dầu nó được Netscape,
Microsoft thêm thắt đủ thứ, bởi sự thịnh hành của Web. Do đó nhiều chuyên gia có ý định viếng
thăm trở lại SGML, nhưng ớn nó quá.

Mùa hè 1996, Jon Bosak ở Sun Microsystem khởi đầu nhóm cộng tác (working group) W3C
SGML, bấy giờ được gọi là nhóm XML. Mục đích của nhóm là đơn giản quá SGML để nó dễ
dùng như HTML mà đồng thời mạnh mẽ, linh động (tức là vừa tốt, vừa đẹp, vừa bền lại vừa rẻ).
Tim Bray và C.M. Sperberg-McQueen 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 các điều kiện sau:

đơn giản đủ cho lập trình viên áp dụng
không giới hạn trong tiếng Anh của nước Mỹ
dễ cho Search Engine (như Yahoo, AltaVista, Infoseek .v.v..) sắp loại
Bản Specification nháp đầu tiên của XML được phát hành vào tháng 11 năm 1996, năm sau là
nhiều nhuận bản. Tháng 7 năm 1997 Microsoft đem trình làng áp dụng thật sự đầu tiên của
XML, Channel Definition Format (CDF). Họ dùng CDF để xuất bản các trang Web đến những
khách đã đóng tiền tháng (subscribers). CDF là một phần của Internet Explorer 4.0. Tháng năm
1997 Microsoft và Inso Corporation 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 giêng năm 1998 Microsoft cho 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 thì Internet Explorer 5 có thể display trực
tiếp một trang XML (bên trong có ghi phải tìm trang XSL ở đâu), không cần cho thấy kết quả

trang HTML.
Đến tháng 2 năm 1998 W3C phê chuẩn cho chính thức thi hành Version 1.0 của XML
Specification.
Viết m
ột trang XML đơn giản
Ta hãy thử viết một trang XML đơn giản nhất:
<?xml version="1.0" standalone="yes"?>
<ThegioiWebsite>
Zensoft chuyên Thiết kế website...
</ThegioiWebs>
Bạn có thể dùng Notepad để viết trang trên và chứa trong một file tên là "chaohoi.xml" . XML
dùng Unicode, nên bạn có thể dùng Notepad của hệ điều hành Windows để Edit và chứa file
dưới dạng Unicode thay vì text (xem Unicode cho chữ Việt). File XML có thể là Unicode hay
một dạng nén của Unicode gọi là UTF-8 (nó dùng 1 byte để biểu diễn một mẫu tự nếu có thể
được, nếu không được thì dùng 2 bytes như bình thường). Nếu bạn không có ý định dùng chữ
Việt thì chỉ cần dùng ASCII text bình thường cho XML là được rồi.

Mỗi trang XML đều bắt đầu bằng một "XML processing instruction" (lệnh xử lý XML).
Processing instruction bắt đầu với <? và chấm dứt với ?>. Chữ đầu tiên ngay sau <? là huấn lệnh
xử lý, trong trường hợp nầy là "xml".

Trong câu processing instruction nói trên cũng có hai Attributes (phụ từ), đó là "version" (ấn
bản) và "standalone" (đứng một mình) . Giá trị của chúng là "1.0" và "yes". Ở đây muốn nói rằng
trang XML nầy được viết theo đúng XML 1.0 Specification và nó có thể làm việc một mình,
không cần phải import (kéo thêm vào) file nào khác.

<ThegioiWebsite> và </ThegioiWebsite> là một Tag Pair. Nó kẹp một dữ kiện bên trong. Thật
ra ta có thể đặt tên cho Tag nầy thứ gì cũng được. Tức là cùng một trang XML nói trên, ta đã có
thể viết theo một trong ba cách sau đây:
<?xml version="1.0" standalone="yes"?>

<greeting>
Welcome to Zensoft Website
</greeting>
hay

<?xml version="1.0" standalone="yes"?>
<chaohoi>
Zensoft chúc các bạn một ngày làm việc vui vẻ!
</chaohoi>
hay

<?xml version="1.0" standalone="yes"?>
<tailieu>
Zensoft tư vấn miễn phí về IT cho khách hàng.
</tailieu>
Mặc dù các Tag có tên khác nhau, nhưng cả ba trang XML đều có cùng cấu trúc và dữ liệu. Tuy
nhiên, nếu đã có dự kiến chúng ta nên chọn tên các Tag cho có ý nghĩa rõ ràng để dễ trình bày
trang XML cách trong sáng sau này.
Trên đây, tôi mới giới thiệu cho các bạ
n khái niệm và cách viết 1 trang XML đơn giản. Phần sau,
tôi sẽ giới thiệu tiếp về Well-Formed XML, Kiểm soát ý nghĩa (Validating) của XML, XSL.
Phần trước đã giới thiệu qua về khái niêm của XML, lịch sử của XML, cách phần biệt Dữ Liệu
với Trình Bày và viết một trang XMl đơn giản. Trong phần này, chúng ta sẽ đề cập đến những
quy luật mà XML phải tuân theo và cách kiểm soát ý nghĩa của XML.



Trước tiên, Chúng ta nói về các quy luật mà XML sẽ phải tuân theo hay còn được gọi là Well -
Formed XML. Bản thân XML có thể có rất nhiều Tag, nhưng nếu không tuân theo Well -
Formed thì coi như không dùng được, không có chương trình xử lý nào sẽ chịu làm việc với dữ

liệu bên trong nó. Do đó, một trang XML cần phải theo đúng các quy luật sau đây:
- Trang XML phải bắt đầu bằng câu tuyên bố XML (XML declaration)
- Mỗi bộ phận, gọi là "element" phải nằm giữa một Tag Pair.
- Nếu Tag nào không chứa gì ở giữa thì phải chấm dứt bằng "/>", thí dụ như <BR/> hay <HR/>.
- Một trang XML phải có một element độc nhất chứa tất cả các elements khác. Đó là root của
tree biểu diễn trang XML.
- Các Tag Pair không được xen kẻ nhau (thí dụ như <name>John Stanmore<address>25 King
Street</name></address> là bất hợp lệ vì <address> nằm trong Tag Pair name).
và thêm một vài qui luật về cách dùng các mẫu tự đặc biệt. Ngoài ra các Tag Pair phải đánh vần
đúng y như nhau kể cả chữ hoa, chữ thường, (thí dụ: <STUDENT> và </Student> là bất hợp lệ)
và tất cả giá trị các Attribute đều phải nằm giữa hai ngoặc kép (thí dụ: standalone=yes là bất hợp
lệ, phải dùng standalone="yes" mới được.)
Kiểm soát ý nghĩa (Validating) của XML
XML chứa các dữ kiện bằng cách dùng những Tag Pair, nhưng tự nó không đòi hỏi các dữ kiện
nào cần phải hiện diện hay chúng phải liên hệ nhau như thế nào. Có một cách để thực hiện việc
ấy là ghi vào phần đầu của một trang XML những qui luật ấn định các dữ kiện phải như thế nào
để trang XML đuợc xem là có ý nghĩa. Tập hợp các qui luật ấy được gọi là Document Type
Definition (DTD). Thí dụ, một DTD có thể nói rằng mỗi document chứa một đề tựa và một hay
nhiều quyễn sách, và mỗi quyễn sách phải có một ISBN độc nhất, một đề tựa độc nhất và một
hay nhiều tác giả.
Mục đích của DTD là làm sau cho nhiều người hay chương trình khác nhau có thể đọc file lẫn
nhau. Dưới đây là một trang XML với DTD ở đằng đầu:
<?xml version="1.0" standalone="yes"?>
<!-- Bắt đầu DTD -->
<!DOCTYPE document [
<!ELEMENT document (title, publisher_list)>

<!-- document children -->
<!ELEMENT title (#PCDATA)>
<!ELEMENT publisher_list (publisher*)>


<!-- publisher children -->
<!ELEMENT publisher (name, email?, homepage?, address?, voice?, fax?)>
<!ELEMENT name (#PCDATA)>

×