Xem mẫu

  1. 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ư và . Hãy quan sát một trang Web dưới đây: Zensoft Website Chuyên Thiết kế Website, Gia công phần mềm, Theo yêu cầu. 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ư đượ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
  2. 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 Trương Thúy Sơn có nghĩa là Trương Thúy Sơn . 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
  3. 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: Zensoft chuyên Thiết kế website...
  4. 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 . Chữ đầu tiên ngay sau
  5. 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ư hay . - 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ư John Stanmore25 King Street là bất hợp lệ vì 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ụ: và 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:
  6. ]> Trang Web CNTT của VIệt Nam Zensoft Group ngocdv.zensoftvn@gmail.com ngocdv.zensoftvn@gmail.com http://Zensoft.vn 121B Cầu Đất, Ngô Quyền, Hải Phòng 2601557 3531923 NgocDV Zensoft Group 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:
  7. 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 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. XSL trang điểm thêm 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:
  8. Thư Viện Zensoft C++ Programming for Beginners Claude Schwartz 005.682/C3 http://zensoft.vn/online_books/005682C3.html XML Users Journal August 1999 1999-08-6 005.233/C2 Titanic James Cameron 643.88/T The C Programming Language Brian Kernighan Dennis Ritchie 005.724/C2 http://zensoft.vn/online_books/005724C2.html 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ể
  9. làm được với CSS. Tiếp theo đây là listing của "Library.xsl": Catalog Listing Books: Journals: Videos:
  10. Author(s): Call No: Director:
  11. Call No: Date of Publication: Call No:
  12. Theo qui định trong XSL, trang XML sẽ có dạng như diễn tả giữa Tag Pair . 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 bảo browser display tất cả books theo cách ghi rõ giữa Tag Pair 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 có nghĩa là display text string của element tại đó. Để ý tag đứng một mình là bất hợp lệ trong XML, nên nó phải được viết là . 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.  
nguon tai.lieu . vn