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

Kỹ thuật XML Hướng Dẫn Tự Học Lập Trình XML

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

KỸ THUẬT XML
XML, KỸ THUẬT TIN HỌC NỒNG CỐT 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.
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>Seeing you off</Title>
</HEAD>
<body>
<H1>Tiển Em Đi</H1>
Người đi một nửa hồn tôi chết,<BR>
Một nửa hồn kia đợi lãnh quà.<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 sanh, 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

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"?>
<gicungduoc>
Chào XML! Mạnh giỏi?
</gicungduoc>
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 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à 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.
<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.
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.)
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)>

<!ELEMENT email (#PCDATA)>
<!ELEMENT homepage (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
]>
<! Cuối của DTD >
<document>
<title>Publishers of the Music of New York Women Composers </title>
<publisher_list>
<publisher>
<name>ACA - American Composers Alliance</name>
<email></email>
<homepage> /> <address>170 West 74th St. NY NY 10023</address>
<voice>212-362-8900</voice>
<fax>212-874-8605</fax>
</publisher>
<publisher>
<name>Alfred Publishing</name>
<address>15535 Morrison South Oaks CA 91403</address>
</publisher>
</publisher_list>
</document>
Cái DTD nầy qui định rằng mỗi Document phải có một đề tựa và một danh sách
các nhà xuất bản. Danh sách nầy có một hay nhiều nhà xuất bản. Mỗi nhà xuất
bản phải có tên, còn những thứ email, homepage, address, voice, fax với
dấu ? có nhgĩa là hoặc có một cái cũng được, không có cũng không sao. Thí dụ
nhà xuất bản Alfred Publishing chỉ có tên và địa chỉ mà thôi. Tất cả những dữ
kiện đều nằm dưới dạng text string. #PCDATA là viết tắt chữ "Parsed Character
Data". Ngôn ngữ cho DTD lấy từ SGML. Trong thí dụ trên nó có vẻ đơn giản

nhưng thật ra nó rất rắc rối và có nhiều giới hạn, thí dụ như không định nghĩa
chính xác được các loại dữ kiện (data type).
Do đó Microsoft đề xướng XML Schemas với những ưu điểm sau:
• Dễ học và dùng hơn DTD, chính Schema cũng là một trang
thuộc loại XML
• Nó định nghĩa chính xác được các loại dữ kiện (data type)
• Có hệ thống tên (name space) tốt hơn. (Sẽ có một bài nói
về Name Space trong dịp khác)
• Dùng lại được các Element qua cách thừa kế (inheritance)
• Linh động, dễ làm thêm các đặc điểm của Schemas.
Ta có thể viết một Schema để thay thế DTD nói trên như sau:
<?xml version="1.0"?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="title" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="name" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="email" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="homepage" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="address" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="voice" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="fax" content="textOnly"
dt:type="string"></ElementType>
<ElementType name="document " content="eltOnly" order="one">
<element type="title" minOccurs="1" maxOccurs="1"></element>

<element type="publisher_list" minOccurs="1"
maxOccurs="*"></element>
</ElementType>
<ElementType name="publisher_list" content="eltOnly" order="one">
<element type="name" minOccurs="1" maxOccurs="1"></element>
<element type="email" minOccurs="0" maxOccurs="1"></element>
<element type="homepage" minOccurs="0" maxOccurs="1"></element>
<element type="address" minOccurs="0" maxOccurs="1"></element>
<element type="voice" minOccurs="0" maxOccurs="1"></element>
<element type="fax" minOccurs="0" maxOccurs="1"></element>
</ElementType>
</Schema>
Bạn thấy trong khi DTD dùng một ngôn ngữ khác thì chính Schema nầy được
viết dưới dạng một trang XML. Mỗi element đều có data type, có thể là string,
int, number, boolean, float hay date. Nếu bây giờ bạn chứa cái Schema nầy
trong một file tên là "documentSchema.xml" rồi gạch bỏ phần DTD trong trang
XML của document, chỉ thêm vào Start Tag của document tên của Schema như
sau:
<document xmlns="x-schema:documentSchema.xml">
là trang XML sẽ được browser validate trước khi display. Nếu Internet Explorer
5 là Default Browser của máy vi tính bạn, bạn chỉ cần double click tên của file
XML để display trang XML. Để thấy trang XML document được display như thế
nào bạn nên download example codes tại đây.
XSL thêm dáng điệu cho XML
Thoạt đầu người ta dùng CSS (Cascading Style Sheet), rất thông dụng cho các
trang Web, để làm phương tiện diễn tả cách trình bày một trang XML. Nhưng
sau đó XSL đã mang lại một ngôn ngữ về sự trình bày rất mạnh mẽ và uyển
chuyển. XSL cũng được viết dưới dạng một trang XML. Thật ra chính XSL cũng là
một ngôn ngữ lập trình nên chẳng những nó biến đổi Style của trang XML mà
còn quyết định thứ nào được display và display theo thứ tự nào nữa.

Trong thí dụ dưới đây ta thử quan sát trang XML cho một thư viện:
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="Library.xsl"?>
<library xmlns="x-schema:LibrarySchema.xml">
<name>Thu vi?n Vovisoft</name>
<book hardback="yes">
<title>C++ Programming for Beginners</title>
<author>
<first-name>Claude</first-name>
<last-name>Schwartz</last-name>
</author>
<callno>005.682/C3</callno>

<online_url>http://vovisoftLibrary/online_books/005682C3.html</online_ur
l>
</book>
<journal series="XML Users Journal">
<title>XML Users Journal August 1999</title>
<date>1999-08-6</date>
<callno>005.233/C2</callno>
</journal>
<video>
<title>Titanic</title>
<director>
<name>James Cameron</name>
</director>
<callno>643.88/T</callno>
</video>
<book>
<title>The C Programming Language</title>

<author>
<first-name>Brian</first-name>
<last-name>Kernighan</last-name>
</author>
<author>
<first-name>Dennis</first-name>
<last-name>Ritchie</last-name>
</author>
<callno>005.724/C2</callno>

<online_url>http://VoviosoftLibrary/online_books/005724C2.html</online_u
rl>
</book>
</library>
Hàng thứ nhất cho browser biết hãy dùng "Library.xsl" để transform (biến đổi)
trang XML. Hàng thứ nhì bảo browser hãy dùng các qui luật trong file
"LibrarySchema.xml" để validate trang XML. Dù tên một file XSL có extension là
"XSL" thay vì "XML", file ấy vẫn được xem như là một trang XML khi ta muốn
display hay validate chính nó.
Trong trang XML trên có dữ kiện về hai quyễn sách (book), nhưng chúng không
nằm gần nhau. Thế mà khi được display, chi tiết của hai quyễn sách sẽ nằm kế
nhau. Đây là điều ta không thể làm được với CSS.
Tiếp theo đây là listing của "Library.xsl":
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="
xmlns=" result-ns="">
<! default rule >
<xsl:template>
<xsl:apply-templates></xsl:apply-templates>

</xsl:template>
<! root rule >
<xsl:template match="/">
<! Build the HTML page >
<html>
<head>
<title>
<xsl:value-of select="/library/name"></xsl:value-of>
</title>
</head>
<body>
<H1>
<xsl:value-of select="/library/name"></xsl:value-of>
</H1>
<H2>Catalog Listing</H2>
<BLOCKQUOTE>
<H3>Books:</H3>
<BLOCKQUOTE>
<! This template selects all the book elements >
<xsl:apply-templates
select="/library/book"></xsl:apply-templates>
</BLOCKQUOTE>
<H3>Journals:</H3>
<BLOCKQUOTE>
<! This template selects all the journal elements
>
<xsl:apply-templates
select="/library/journal"></xsl:apply-templates>
</BLOCKQUOTE>
<H3>Videos:</H3>

<BLOCKQUOTE>
<! This template selects all the video elements >
<xsl:apply-templates
select="/library/video"></xsl:apply-templates>
</BLOCKQUOTE></BLOCKQUOTE>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<! Lets make the title link to the online URL >
<EM>
<A>
<xsl:attribute name="href">
<xsl:value-of select="online_url"></xsl:value-of>
</xsl:attribute>
<xsl:apply-templates select="title"></xsl:apply-templates>
</A>
</EM>
<BR></BR>
<BR></BR>
<! Create a table for the other details >
<TABLE BORDER="1" CELLPADDING="10">
<TR>
<TD>
<B>Author(s):</B>
</TD>
<TD>
<xsl:apply-templates select="author"></xsl:apply-
templates>
</TD>

</TR>
<TR BGCOLOR="#CCCCFF">
<TD>
<B>Call No:</B>
</TD>
<TD>
<xsl:apply-templates select="callno"></xsl:apply-
templates>
</TD>
</TR>
</TABLE>
<BR></BR>
</xsl:template>
<xsl:template match="video">
<EM>
<xsl:apply-templates select="title"></xsl:apply-templates>
</EM>
<BR></BR>
<BR></BR>
<! Create a table for the details >
<TABLE BORDER="1" CELLPADDING="10">
<TR>
<TD>
<B>Director:</B>
</TD>
<TD>
<xsl:apply-templates select="director"></xsl:apply-
templates>
</TD>
</TR>

<TR BGCOLOR="#CCCCFF">
<TD>
<B>Call No:</B>
</TD>
<TD>
<xsl:apply-templates select="callno"></xsl:apply-
templates>
</TD>
</TR>
</TABLE>
</xsl:template>
<xsl:template match="journal">
<EM>
<xsl:apply-templates select="title"></xsl:apply-templates>
</EM>
<BR></BR>Date of Publication:
<xsl:apply-templates select="date"></xsl:apply-templates>
<BR></BR>
<TABLE BORDER="1" CELLPADDING="10">
<TR BGCOLOR="#CCCCFF">
<TD>
<B>Call No:</B>
</TD>
<TD ALIGN="CENTER">
<xsl:apply-templates select="callno"></xsl:apply-
templates>
</TD>
</TR>
</TABLE>
</xsl:template>

<xsl:template match="title">
<xsl:value-of></xsl:value-of>
<! insert the element content >
</xsl:template>
<xsl:template match="first-name">
<xsl:value-of></xsl:value-of>
</xsl:template>
<xsl:template match="last-name">
<xsl:value-of></xsl:value-of>
<BR></BR>
</xsl:template>
<xsl:template match="name">
<xsl:value-of></xsl:value-of>
<BR></BR>
</xsl:template>
<xsl:template match="date">
<xsl:value-of></xsl:value-of>
</xsl:template>
<xsl:template match="callno">
<FONT FACE="courier new">
<xsl:value-of></xsl:value-of>
</FONT>
</xsl:template>
</xsl:stylesheet>
Theo qui định trong XSL, trang XML sẽ có dạng như diễn tả giữa Tag
Pair <html>. Tên của Library được dùng cho cả Tittle của trang HTML
lẫn H1. Mỗi lần Tag Pair Blockquote được dùng là để đẩy display bên
trong nó xích qua bên phải một tí. Câu
<xsl:apply-templates select="/library/book"/>
bảo browser display tất cả books theo cách ghi rõ giữa Tag

Pair <xsl:template match="book"> của Template của book. Bên
trong Template của book bạn sẽ thấy có nhắc đến việc áp dụng
Template của author và callno. Tag <xsl:value-of/> có nghĩa là
display text string của element tại đó. Để ý tag<BR> đứng một mình là
bất hợp lệ trong XML, nên nó phải được viết là <BR/>. Bạn có thể đọc
thêm file "LibrarySchema.xml" để xem nó rắc rối hơn
"documentSchema.xml" bao nhiêu, bên trong có chú thích.
Kết luận
Chính bản thân ngôn ngữ XML không có gì ghê gớm, nhưng những áp
dụng của XML làm căng thẳng vấn đề. Nói đến XML ta phải nhắc đến
DTD hay Schemas và dĩ nhiên là XSL, một ngôn ngữ rất hùng mạnh và
uyển chuyển. Vì XML chứa dữ kiện theo cơ cấu đàng hoàng một cách
công cộng (không dựa vào kỹ thuật bí truyền của một công ty hay tổ
chức nào) nó có thể được dùng như một cơ sỡ dữ liệu (database) và
update display của từng phần nhỏ của trang Web. XML chắc chắn sẽ là
một bộ phận nồng cốt của lập trình trên mạng Web nên ta phải lưu ý và
đầu tư vào nó là điều không thể thiếu sót trong chiến lược của tổ chức
tin học chúng ta.

×