www.viet-ebook.co.cc
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àiliệ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.
www.viet-ebook.co.cc
<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àiliệ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àiliệuXML đề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àiliệuXML 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ìnhtà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,
www.viet-ebook.co.cc
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àiliệ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àiliệ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àiliệuXML đượ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àiliệu cho nhiều phương tiện khác
nhau, ví dụ như một máy in.
www.viet-ebook.co.cc
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:
www.viet-ebook.co.cc
<?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:
1. Trang XML phải bắt đầu bằng câu tuyên bố XML (XML declaration)
2. Mỗi bộ phận, gọi là "element" phải nằm giữa một Tag Pair.
3. 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/>.
4. 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.
5. 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
. 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. 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