|
Sự Bùng Nổ XML!!!
Ðiều gì
đã khiến XML hiện nay chiếm vị
trí số một và có vai trò rất quan
trọng trong việc truyền tải và trao
đổi dữ liệu liên lạc
giữa các ứng dụng và các hệ
điều hành khác nhau,... Ngay cả
Microsoft, Sun, IBM, Oracles,... đều hỗ
trợ XML và dùng nó trong mọi ứng
dụng. Theo như sự đánh giá của
những nhà khởi xướng XML cho
rằng nó có thể đẩy lùi sự
bất ổn từ HTML đồng thời
tạo nên cuộc cách mạng trong
truyền tải và trao đổi dữ
liệu,...
1/
Ðôi Nét Về Lịch Sử 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. Ngôn ngữ đánh dấu tiêu
chuẩn tổng quát (SGML - Standard Generalized
Markup Language), một ngôn ngữ biểu
thị dữ liệu trong những ứng
dụng xử lý văn bản đa
dạng và có cấu trúc tinh vi. Nhược
điểm của nó là rất rắc
rối, khó học, khó sử dụng,...
Chính vì lẽ đó vào năm 1990 Tim
Berners-Lee ở CERN, đã tạo ra HTML (là
một ứng dụng của SGML), một
phần nhỏ của SGML, nhưng mọi người
lại rất dễ dùng. Không ngờ
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 rồi đến một ngày vào năm
1995 người ta bắt đầu thấy
sự giới hạn của HTML, mặc dù
nó được Netscape, Microsoft cố
gắng thêm thắt, bởi sự thịnh
hành của Web. Do đó, nhiều người
có ý định quay trở lại SGML, nhưng
lại ái ngại.
Ðúng lúc đó vào 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 là đơn giản hoá SGML để
nó dễ dùng như HTML mà đồng
thời mạnh mẽ, dễ dùng,...
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
- Dễ cho Search
Engine (như AltaVista, Yahoo, Infoseek,...)
phân loại
- Không giới
hạn trong tiếng Anh của nước
Mỹ
Chính vì lẽ đó,
bản Specification đầu tiên của XML
được ra đời vào tháng 11 năm
1996. Tháng 7 năm 1997 Microsoft áp dụng đầ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 5
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.
Ðến tháng 1 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.0 có thể hiển thị
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.
Vào tháng 2 năm 1998 Tổ hợp Web toàn
cầu W3C phê chuẩn cho chính thức
thi hành Version 1.0 của XML Specification.
2/ XML là gì?
XML viết tắt của chữ eXtensible
Markup Language (ngôn ngữ nâng
cấp có thể mở rộng) 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
chỉ đạo bởi Tổ hợp Web toàn
cầu (W3C), XML trở thành một đặc
điểm kỹ thuật chính thức.
Tổ hợp Web toàn cầu W3C gọi
XML là "một cú pháp thông dụng cho
việc biểu thị cấu trúc trong
dữ liệu". Dữ liệu có cấu
trúc tham chiếu đến dữ liệu
được gán nhãn cho nội dung, ý nghĩa,
hoặc công dụng.
Ví dụ : 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>Welcome To Lê Hưng</Title>
</HEAD>
<body>
<H1>Ðịnh
Nghĩa</H1>
A:
"Sao anh lại cắt dây điện
ở phòng họp?"<BR>
B: "Vì
dây điện nhà tôi thiếu
mất một khúc".<BR>
A: "Như
vậy là lấy công làm tư!"
<BR>
B: "Không,
như vậy là lấy dài nuôi
ngắn!" <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 (Ðịnh Nghĩa) 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ừ (Ðịnh
Nghĩa) ở đâ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ề môn Văn học ta cần
những Tag diễn tả nhân vật, ngày
sanh, ngày tử,...
3/ Vì
sao XML quan trọng?
Những tay thiết kế Web cho rằng
nội dung là trên hết. Chẳng may, thông
thường thì nội dung có liên quan
chặt chẽ đến cách thức nó
được hiển thị. Từ trước
đến nay đã có bao nhiêu lần
bạn nhìn thấy câu "Best viewed at
800-by-600-pixel resolution" (hiển thị
tốt nhất ở độ phân giải
800x600) khi duyệt qua một trang Web?
Thay vì phải chỉ rõ phương
thức hiển thị, XML sẽ giúp
giải quyết vấn đề đó
bởi vì những người xây dựng
Web sẽ có khả năng chỉ định
cấu trúc của tài liệu. Ví dụ,
bạn có thể chỉ định tựa
đề của tài liệu, tác giả,
một danh sách các liên kết có liên quan,...
Khi đó bất kỳ một thiết
bị nào với một trình duyệt XML
đều có thể thể hiện một
phiên bản của tài liệu được
tạo đặc trưng cho thiết bị
đó.
Tuy nhiên, có lẽ tính năng ưu việt
nhất của XML đó là khả năng
mở rộng kế thừa. Các tổ
chức và công ty sẽ có khả năng
mở rộng XML để đáp ứng
những thử thách và các ứng dụng
mới. Một ngôn ngữ dựa trên XML
hiện đang được sử
dụng - CDF của Microsoft - và còn nhiều
ngôn ngữ khác đang trong quá trình hoàn
thiện sắp được đưa ra,
bao gồm Resourse Definition Format (RDF) và Open
Software Description (OSD).
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>Lê Quang Anh Hưng <FAM LY> có nghĩa
là <FAMILY>Lê Quang Anh Hưng <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ư cơ
khí, y học, Tin họ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 cơ khí 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ì 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, hay bị giới hạn cách
sử dụng,... Thí dụ như với XML
ta có thể tránh phải lệ thuộc hoàn
toàn vào Microsoft Word khi gởi một tài
liệu vì sợ đầu kia người
ta không có Microsoft Word. 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.
Vào năm 1998 hoặc 1999 thì còn quá sớm
để xác định được XML
sẽ đi đến đâu. Nhưng đến
thời điểm hiện tại thì XML
được thừa nhận là một
chuẩn giao dịch thông tin, một lý do chính
để hiểu tại sao có quá nhiều
sự xôn xao tập trung quanh XML. Tổ
hợp Web toàn cầu W3C đã chính thức
đưa ra chuẩn XML ver1.0.
4/
SGML, HTML, và XML có quan hệ với nhau như
thế nào?
Ngôn ngữ đánh dấu tiêu chuẩn
tổng quát (SGML - Standard Generalized Markup
Language) là một phương pháp biểu
thị dữ liệu trong những ứng
dụng xử lý văn bản. Nó đã
tồn tại hơn một thập kỷ
nay; cả XML lẫn HTML đều là
những định dạng tài liệu có
nguồn gốc từ SGML. Vì vậy,
tất cả chúng đều cùng chia sẻ
một số đặc tính chẳng
hạn như một cú pháp tương
tự và cách dùng các nhãn trong dấu
ngoặc nhọn. Nhưng HTML là một
ứng dụng của SGML, trong khi XML là
một bộ trình con của SGML.
Sự phân biệt là rất quan trọng. Cơ
bản, HTML không thể dùng để định
nghĩa nên các ứng dụng mới trong
khi XML có thể thực hiện được
việc này. Ví dụ, cả RDF lẫn CDF
đều là những ứng dụng
được định nghĩa bằng
XML. XML và HTML thực sự giống như
hai anh em họ hơn là hai anh em ruột:-).
Tổ hợp Web toàn cầu W3C đã phát
triển một biểu đồ lớn
để làm sáng tỏ mối quan hệ này.
XML thực sự tương thích với
SGML - bất cứ một công cụ tạo
hoặc duyệt SGML nào cũng có thể
đọc được những tài
liệu XML. Tuy nhiên, XML đỡ phức
tạp hơn SGML, và nó được
thiết kế để chạy trên
một mạng băng tầng hữu
hạn ví dụ như Internet. Theo Tim Bray -
đồng biên tập viên XML - thì ý tưởng
đằng sau XML là tận dụng lợi
ích của SGML, loại bỏ những
phần phức tạp, duy trì tính nhẹ nhàng,
và làm cho nó hoạt động được
trên Web.
HTML, SGML, và XML sẽ tiếp tục
được sử dụng ở những
vị trí thích hợp; sẽ không có ngôn
ngữ nào trong số chúng thể hiện
bất cứ tính chất lỗi thời nào
khác. HTML vẫn duy trì cách thức đơn
giản nhất để phát hành dữ
liệu nhanh chóng trên Web, thường là
những dữ kiện ngắn hạn ví
dụ như các chương trình nghị
sự hoặc các tờ bướm
quảng cáo. Nếu dữ kiện có
một công dụng dài hạn hơn và
cần một cấu trúc chặt chẽ hơn,
thì các nhà xây dựng Web sẽ chuyển
sang XML. Không giống như HTML và XML, SGML có
thể sẽ chẳng bao giờ có
được sự chấp nhận
phổ biến trên Internet, đơn
giản bởi vì nó chưa bao giờ
được thiết kế hoặc
được tối ưu cho các nhu
cầu của một giao thức mạng.
Mức tối đa, với những ứng
dụng phát hành có cấu trúc chặt
chẽ ở mức độ cao, SGML sẽ
tiếp tục phù hợp với mọi yêu
cầu.
5/ XML được
thực hiện như thế nào?
XML được sử dụng trong hai cách
khác nhau. Một cho sự trao đổi
lẫn nhau giữa người và máy, ví
dụ như từ một máy chủ Web
đến trình duyệt của một người
sử dụng. Một cách khác cho sự trao
đổi dữ liệu giữa các ứng
dụng hoặc giữa máy với máy. Trong
hai trường hợp, dường như
bạn sẽ cần đến một cơ
cấu ba tầng: một căn cứ cơ
sở dữ liệu; một máy chủ
tầng giữa, nơi logic công việc
hoạt động theo dữ liệu; và máy
khách hàng, nơi dữ liệu được
trình bày và xử lý sâu hơn. Cơ sở
dữ liệu có thể nhận thông tin
từ nhiều nguồn dữ liệu khác
nhau, có lẽ đã được định
dạng XML. Tầng giữa khi đó có
thể kéo dữ liệu lại với nhau
và đưa nó sang tầng trình bày cuối
cùng. Ngày nay, các trang Web đôi khi được
phân phối theo cách này - NEWS.COM của CNET
phát hành từ một cơ sở dữ
liệu. Nhưng để vào một khung
duyệt mới của một trang, chẳng
hạn như tùy chọn mới về máy
in thân thiện của NEWS.COM, thì máy chủ
phải phát sinh một trang mới. Một tài
liệu XML được định
dạng hoàn hảo sẽ cho phép ứng
dụng máy khách hàng hiệu chỉnh
lại diện mạo tài liệu cho
nhiều phương tiện khác nhau, ví
dụ như một máy in.
6/ Một định nghĩa
kiểu tài liệu (DTD) là gì?
Một định nghĩa kiểu tài
liệu (DTD - Document Type Definition) là một
bộ những qui tắc cú pháp cho các nhãn.
Nó cho bạn biết những nhãn nào
bạn có thể sử dụng trong một
tài liệu, chúng nên được xếp
theo thứ tự nào, những nhãn nào có
thể xuất hiện bên trong các nhãn khác,
những nhãn nào có các thuộc tính,...
Nguồn gốc được phát triển
cho việc sử dụng với SGML, một
DTD có thể là một bộ phận
của một lài liệu XML, nhưng thường
nó là một tài liệu riêng biệt
hoặc một loạt các tài liệu.
Bởi vì bản thân XML không phải là
một ngôn ngữ, mà là một hệ
thống cho việc định nghĩa các
ngôn ngữ, cho nên nó không có một DTD chung
như trong HTML. Thay vào đó, mỗi tổ
chức hoặc công nghệ muốn dùng XML
cho việc trao đổi dữ liệu
đều có thể định nghĩa nên
những DTD sở hữu riêng. Nếu
một tổ chức dùng XMT để gán
nhãn các tài liệu chỉ cho việc sử
dụng nội bộ, thì có thể tạo
nên DTD riêng cho mình. Ví dụ, bản tạp
chí tương tác Wall Street có một DTD
chỉ rõ từng bản in, với những
thông tin về các trang, các bài báo những bài
tóm tắt... Tạp chí này hiện tại dùng
DTD của SGML (được gọi là ngôn
ngữ nâng cấp Dow Jones), nhưng hiện
nó cũng đang phát triển một phiên
bản XML.
Những định nghĩa DTD không thoát
khỏi sự tranh cãi. Trong khi một số
người cảm thấy chúng làm tăng
giá trị thực chất của công
việc, thì một số khác lại cho
rằng chúng kìm hãm sự sáng tạo. Tuy
nhiên có một số người nghĩ
rằng chúng có ích không đủ để
tiến xa hơn. Microsoft đang cố
gắng khắc phục cho trường
hợp phàn nàn sau cùng này với kế
hoạch đưa ra XML-Data, nhưng các nhà
phê bình cho rằng những cải tiến này
nên được thực hiện bên trong
bản thân kỹ thuật DTD.
7/
Thử viết một trang XML đơn
giản.
Một trang XML
đơn giản nhất:
|
<?xml version="1.0"
standalone="yes"?>
<gicungduoc>
Chào XML!
Mạnh giỏi?
</gicungduoc>
|
Bạn có thể dùng phần mềm
XML Spy 2.0 để viết XML, tại thời điểm Tôi
trình bày là đã có phiên bản ver 2.0 lâu rồi.
Bạn cũng 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, bạn nên dùng
Notepad của Windows NT/2000 để Edit và
chứa file dưới dạng Unicode thay vì
text. 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à 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.
<gicungduoc> và </gicungduoc> 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>
Chào XML!
Mạnh giỏi?
</greeting>
hay
<?xml version="1.0"
standalone="yes"?>
<chaohoi>
Chào XML!
Mạnh giỏi?
</chaohoi>
hay
<?xml version="1.0"
standalone="yes"?>
<tailieu>
Chào XML!
Mạnh giỏi?
</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.
8/ Well-Formed XML.
Mặc dù bạn có
thể đặt ra bao nhiêu Tag cũng
được, nhưng mỗi trang XML
cần phải theo một số qui luật
để được xem là Well-Formed
(Có đầu, có đuôi).
Nếu một trang XML không Well-Formed thì coi như
xài không đuợ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 của nó. Do
đó một trang XML cần phải theo
đúng các qui 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.)
Tài liệu tham khảo:
Applied XML: A Toolkit for Programmers - Includes
CD-Rom,...
IBM's XML support. www.ibm.com/xml/
........
........
Lê Quang Anh Hưng
|