DOM cho phộp sử dụng cỏc phƣơng thức và thuộc tớnh trờn để truy cập và xử lý dữ liệu của cỏc nỳt trong tài liệu XML bằng JavaScript (hay VBScript). DOM cung cấp cỏc phƣơng thức để truy cập đến toàn bộ cỏc nỳt trong tài liệu XML nhƣ:
parentNode: là cha của nỳt hiện tại.
firstChild: là nỳt con đầu tiờn của danh sỏch cỏc nỳt con.
lastChild: là nỳt con cuối cựng của danh sỏch cỏc nỳt con.
previousSibling: là nỳt đứng kề sau một nỳt.
nextSibling: là nỳt đứng kề trƣớc một nỳt.
attributes: là danh sỏch thuộc tớnh của một nỳt (nếu cú).
Ngoài ra, cũn cung cấp cỏc phƣơng thức và thuộc tớnh khỏc để xử lý cỏc nỳt trờn cõy tài liệu XML theo mụ hỡnh DOM:
documentElement: trả về nỳt gốc của tài liệu XML.
doctype: trả về kiểu của nỳt gốc.
childNodes: trả về danh sỏch cỏc nỳt con trong tài liệu XML.
length: trả về số nỳt trong danh sỏch cỏc nỳt.
item (i): phƣơng thức truy cập nỳt thứ i trong danh sỏch
nodeName: xỏc định tờn của một nỳt
nodeValue: trả về giỏ trị của một nỳt
createElement (): khởi tạo một thành phần mới trong tài liệu.
createTextNode (): dựng để khởi tạo dữ liệu Text cho một nỳt.
Thớ dụ, một đoạn mó viết bằng Javascript đọc dữ liệu của thành phần HOCPHAN trong tài liệu bai1_Pascal.xml (thớ dụ trờn):
<Script Language = “JavaScript”> Function readXMLDocument ()
{
var xmldoc, baigiangNode, hocphanNode;
xmldoc = new ActiveXObject (“Microsoft.XMLDOM”); xmldoc.load (“bai1.xml”); baigiangNode = xmldoc.documentElement; hocphanNode = baigiangNode.firstChild; text = hocphanNode.firstChild.nodeValue; ... } </Script> 2.9. Đỏnh giỏ XML 2.9.1. Ưu điểm
XML là hữu ớch hơn HTML, nú cho phộp tự định nghĩa cỏc thành phần thẻ và tựy ý mục đớch sử dụng chỳng. XML là ngụn ngữ tạo ngụn ngữ khỏc hay núi cỏch khỏc, cú thể tạo ra cỏc ngụn ngữ định dạng tựy biến dựa trờn XML. Đõy chớnh là một trong những khả năng mạnh nhất của XML. XML cung cấp khả năng định nghĩa dữ liệu cú cấu trỳc. Nú khụng chỉ cho phộp lƣu dữ liệu vào file XML dựa trờn thẻ, mà cũn cho phộp cỏc thành phần thẻ tớch hợp với nhau tạo thành một cấu trỳc dữ liệu phõn cấp hoàn chỉnh.
XML rừ ràng cú cấu trỳc hệ thống rất thuận lợi trong việc tỡm kiếm thụng tin dựa trờn cỏc thẻ trong tài liệu XML. XML độc lập với hệ thống, cú thể trao đổi dữ liệu dạng XML bằng cỏc phƣơng tiện khỏc nhau giữa cỏc ứng dụng của cỏc hệ thống khỏc nhau.
Tớnh mở rộng và mềm dẻo của XML: cho phộp nú tự mụ tả dữ liệu chứa trong nhiều loại ứng dụng cũng nhƣ cho phộp tớch hợp dữ liệu từ nhiều tài liệu XML lại tạo thành tài liệu XML mới.
Về tớnh toỏn cục bộ và thao tỏc trờn dữ liệu: Dữ liệu XML đƣợc phõn tớch, soạn thảo, thao tỏc bằng tay cựng với cỏc phộp toỏn đƣợc thực thi tại chƣơng trỡnh mỏy khỏch. Ngƣời dựng cú thể thao tỏc với dữ liệu theo nhiều cỏch hơn là hiển thị chỳng. XML theo mụ hỡnh DOM cho phộp dữ liệu đƣợc thao tỏc với cỏc lệnh scripting hoặc cỏc ngụn ngữ lập trỡnh khỏc. Tớnh toỏn dữ liệu cú thể thực hiện mà khụng cần trả về mỏy chủ.
Theo cỏch nhỡn trờn dữ liệu, trong khi HTML mụ tả sự xuất hiện của dữ liệu thỡ XML mụ tả dữ liệu của chớnh nú. Sự hiển thị tỏch rời với dữ liệu, thỡ dữ liệu đƣợc định nghĩa trong XML cho phộp nhiều cỏch nhỡn khỏc nhau, kết quả từ việc kết hợp dữ liệu thớch hợp. CSS và XSL cung cấp cơ cấu khai bỏo để mụ tả cỏc cỏch nhỡn đặc thự từ dữ liệu.
Về vận chuyển dữ liệu trờn Web, bởi vỡ XML là dạng dữ liệu text nờn XML cú thể đƣợc truyền trờn Web thụng qua sử dụng HTTP giống nhƣ HTML mà khụng phải thay đổi mạng mỏy tớnh đang tồn tại.
Về nộn dữ liệu, XML là nộn hoàn toàn bởi vỡ đặc tớnh lặp lại của cỏc thẻ để mụ tả cấu trỳc dữ liệu. Nộn dữ liệu XML phụ thuộc ứng dụng và mức độ lớn nhỏ của dữ liệu.
Do mụi trƣờng truyền thụng trờn mạng nờn việc đũi hỏi tốc độ truyền là vụ cựng quan trọng. Việc dữ liệu đƣợc chuyển dƣới dạng những file XML là một phần giải quyết vấn đề này.
XML ngày nay gần nhƣ một chuẩn thống nhất giỳp ngƣời dựng cú thể ỏnh xạ cỏc cơ sở dữ liệu của cỏc đơn vị khỏc nhau thành cơ sở dữ liệu của mỡnh. Do đú nú cú thể giỳp hai hệ thống khỏc nhau cú thể trao đổi dữ liệu với nhau.
2.9.2. Nhược điểm
Dựa trờn cỏc đặc điểm cho thấy XML cú nhiều lợi điểm, tuy nhiờn XML khụng là ngụn ngữ thật hoàn hảo để sử dụng cho lập trỡnh Web. Bờn cạnh cỏc ƣu điểm thỡ XML cũng cú một số nhƣợc điểm nhƣ
XML là khụng khoan dung, để cỏc trỡnh duyệt Web đọc và diễn dịch dữ liệu, XML đũi hỏi chỳ tõm đến chữ hoa, chữ thƣờng, thẻ đỳng,... ngoài ra, cỏc trỡnh duyệt kiểm tra cỳ phỏp một cỏch nghiờm ngặt, đũi hỏi tài liệu XML là hợp khuụn dạng và hợp lệ.
Do XML là ngụn ngữ văn bản rất dài dũng, khi cần xử lý kiểu dữ liệu số thỡ XML khụng sử dụng đƣợc kiểu nhị phõn mà phải dựng một chuỗi ký tự để mụ tả cho số này.
XML là ngụn ngữ để tạo nờn cấu trỳc và mụ tả dữ liệu mà khụng là ngụn ngữ xử lý dữ liệu. Vỡ vậy, chỉ sử dụng XML thỡ khụng thể xõy dựng nờn ứng dụng.
Hiện nay, chỉ cú một số ớt trỡnh duyệt xem đƣợc tài liệu XML nhƣ IE 5.0, Netscape 6.0 cũn cỏc trỡnh duyệt cũ xem tập tin XML là văn bản lạ. Ngoài ra, hai cụng cụ hỗ trợ XLINK và XPOINT chƣa cú trỡnh duyệt nào hỗ trợ.
2.10. So sỏnh giữa XML và cụng nghệ khỏc
2.10.1.So sỏnh XML với HTML
Dạng tài liệu của XML và HTML rất giống nhau cũng gồm cỏc thẻ và dữ liệu, bắt buộc phải cú một cặp thẻ làm thành phần gốc, cú cỏc thẻ mở đầu, thẻ kết thỳc,... HTML và XML đều là cỏc ngụn ngữ định dạng văn bản đƣợc phỏt triển dựa trờn ngụn ngữ SGML. Là cỏc ngụn ngữ thớch hợp để phỏt triển cỏc ứng dụng trờn Web.
Điểm khỏc biệt nổi bật nhất giữa XML và HTML là XML cho phộp ngƣời lập trỡnh tự tạo cỏc thẻ để tự mụ tả ý nghĩa riờng cũn HTML chỉ cho phộp sử dụng cỏc thẻ đƣợc định nghĩa sẵn.
Tài liệu XML đũi hỏi phải đƣợc định dạng đỳng (đỳng cỳ phỏp), nếu khụng quỏ trỡnh xử lý sẽ dừng và bỏo lỗi. Với HTML trỡnh xử lý sẽ bỏ qua những thẻ nú khụng hiểu. XML là ngụn ngữ thiờn về cấu trỳc dữ liệu và mụ tả dữ liệu cũn HTML là ngụn ngữ thiờn về trỡnh bày dữ liệu, ở XML cú sự phõn biệt giữa hiển thị và trỡnh bày cũn HTML thỡ kết hợp cả hai hỡnh thức này.
Tờn cỏc thẻ XML là trực quan hơn cỏc thẻ HTML. Cụ thể là nội dung cỏc trang HTML khụng mụ tả đƣợc cấu trỳc của dạng thụng tin nhận đƣợc. Do đú rất khú đƣa thụng tin này vào cơ sở dữ liệu một cỏch tự động hay trỡnh bày thụng tin nhận đƣợc với một hỡnh thức khỏc. XML hỗ trợ nhiều phƣơng phỏp mó húa dữ liệu hơn HTML.
2.10.2. So sỏnh XML với ASP, PHP
Về cơ bản thỡ ngụn ngữ định dạng mở rộng XML là hoàn toàn khỏc với cụng nghệ ASP và PHP.
Cú một điểm tƣơng đồng là tự bản thõn chỳng khụng thể tạo nờn một ứng dụng hoàn chỉnh. Tuy nhiờn, chỳng đều cú khả năng tớch hợp cao với ngụn ngữ lập trỡnh Script hay với cỏc ngụn ngữ khỏc nhƣ HTML, Java, C++, ...
Về mặt dữ liệu, XML là ngụn ngữ để tạo nờn cấu trỳc và mụ tả dữ liệu mà khụng là ngụn ngữ xử lý dữ liệu, để cú thể xử lý dữ liệu chẳng hạn nhƣ trờn mỏy khỏch thỡ cần kết hợp với cỏc lệnh scripting. Trong khi đú, ASP hay PHP là ngụn ngữ xử lý dữ liệu trờn mỏy chủ, chỳng cung cấp cỏc chức năng để thực hiện cỏc tỏc vụ đối với hệ thống tập tin và truy cập dữ
liệu nhƣ tạo mới, sao chộp, xúa bỏ và sửa chữa bảng dữ liệu, tạo và kết xuất dữ liệu, nạp dữ liệu từ tập tin,...
Túm lại, ngụn ngữ XML cú nhiều điểm lợi mà ngụn ngữ HTML khụng cú. Nhƣng ngụn ngữ XML khụng hoàn toàn cú thể thay thế ngụn ngữ HTML, mà chỳng cần đƣợc hỗ trợ cho nhau. Trong khi ngụn ngữ XML đƣợc xem là ngụn ngữ dựng để mụ tả cấu trỳc dữ liệu, và cỏc cụng nghệ ASP và PHP là cỏc giải phỏp dành cho việc xử lý cơ sở dữ liệu, thỡ nếu cú sự kết hợp của cỏc cụng nghệ này sẽ cú những ứng dụng trờn Web một cỏch thuận lợi và hoàn chỉnh.
CHƢƠNG 3
THÍ DỤ XML TẠI TRƢỜNG ĐẠI HỌC QUY NHƠN
Từ trƣờng đại học sƣ phạm, trƣờng Đại học Quy Nhơn đƣợc hoạt động nhƣ trƣờng đa ngành, đa lĩnh vực, đỏp ứng nhu cầu giỏo dục và đào tạo tại miền Trung của đất nƣớc. Trong cụng cuộc đổi mới, hiện đại hoỏ cụng tỏc giỏo dục và đào tạo, tăng cƣờng năng lực quản lớ và điều hành bằng cụng nghệ thụng tin, dựa trờn những điều tỡm hiểu đƣợc về XML, em thực hiện việc thử nghiệm cài đặt một trỡnh soạn thảo XML Writer và xõy dựng một thớ dụ ứng dụng về soạn bài giảng. Việc này nhằm (i) gúp phần nõng cao chất lƣợng giỏo dục và đào tạo với trợ giỳp của cụng nghệ thụng tin; (ii) kiểm nghiệm một số vấn đề đó đƣợc trỡnh bày ở hai chƣơng trờn.
3.1. Trỡnh soạn thảo XML Writer
3.1.1. Giới thiệu
XML Writer là một trỡnh soạn thảo chuyờn nghiệp, nhằm phục vụ cho cỏc chức năng soạn thảo và hiệu chỉnh nội dung tập tin dữ liệu XML.
Đõy là phần mềm rất mạnh, nú cho thực hiện nhiều điều nhƣ cỏc thẻ hiển thị bằng màu sắc phõn biệt, cho phộp kiểm tra tớnh hợp lệ cũng nhƣ tớnh hợp khuụn dạng của tài liệu, hỗ trợ soạn thảo cỏc tập tin nhƣ định nghĩa kiểu tƣ liệu DTD, lƣợc đồ XML, tạo bảng định kiểu CSS, tạo tập tin định kiểu mở rộng XSL,... Ngoài ra, nú cũn cho phộp xem tài liệu XML tƣơng tự Explorer của Microsoft.
Phần mềm XML Writer đƣợc lấy về từ địa chỉ Internet http://www.xmlwriter.net
3.1.2. Thực hiện cài đặt XML Writer
Download phần mềm XML Writer từ địa chỉ trờn và sao chộp vào ổ đĩa bất kỳ, thớ dụ ổ đĩa E, sau đú thực hiện cỏc bƣớc cụ thể nhƣ sau:
Bƣớc 1: Chọn Start/Run/XMLWriter/XMLwriterSetup. Sau đú, nhấn OK sẽ xuất hiện cửa sổ cài đặt nhƣ sau:
Bƣớc 2: Nhấn Next để tiếp tục, sẽ xuất hiện cửa sổ phớa dƣới.
Bƣớc 4: Xỏc định vị trớ để lƣu trữ phần mềm XML Writer. Sau đú nhấn vào Next để tiếp tục cài đặt.
Bƣớc 6: Khởi tạo biểu tƣợng của XML Writer. Tiếp tục nhấn vào Next để thực hiện bƣớc tiếp theo.
Bƣớc 7: Xỏc lập lại toàn bộ thụng tin ở cỏc bƣớc trờn. Nhấn vào Install để thực hiện cài đặt. Cụng việc hoàn tất trong vũng một phỳt.
Dƣới đõy là màn hỡnh soạn thảo của XML Writer 2.4:
Vỡ XML Write 2.4 khụng phải là phần mềm miễn phớ, nờn việc sử dụng phần mềm XML Writer 2.4 là cú thời hạn, nhà sản xuất cho phộp sử dụng phần mềm trong 30 ngày bắt đầu từ ngày thực hiện cài đặt phần mềm. Khi hết thời hạn sử dụng, nếu muốn tiếp tục sử dụng cần phải trả thanh toỏn chi phớ là 139AUD (tƣơng đƣơng 89 USD) bằng phƣơng cỏch trực tuyến theo địa chỉ http://xmlwriter.net/purchase.shtml. Hoặc liờn hệ theo địa chỉ Wattle Software, PO Box 600, Castle Hill NSW 2154, AUSTRALIA, Fax: (419) 818-5533 (USA), Fax: (+612) 8572-5296 (Australia).
3.2. Thớ dụ ứng dụng XML về soạn bài giảng
3.2.1. Đặt vấn đề
Nhằm kiểm nghiệm lại tất cả cỏc vấn đề đó đƣợc trỡnh bày, cũng nhƣ xuất phỏt từ nhu cầu của bản thõn. Sau đõy là một thớ dụ ứng dụng XML về việc soạn
bài giảng trực tiếp trờn mạng thụng qua cỏc biểu mẫu đó đƣợc thiết kế sẵn, cũng nhƣ xem hay tỡm kiếm thụng tin về bài giảng. Đồng thời, bản thõn ứng dụng này cũng giỳp cho sinh viờn khoa Tin học núi riờng và sinh viờn toàn trƣờng núi chung làm quen với việc đọc thụng tin về cỏc bài giảng trờn mạng do giỏo viờn trong trƣờng soạn thảo.
3.2.2. Phạm vi nghiờn cứu
Về xử lý, chƣơng trỡnh nhằm phục vụ hai đối tƣợng chớnh đú là sinh viờn và giỏo viờn. Chƣơng trỡnh cho phộp soạn thảo nội dung một bài giảng trờn mạng. Chƣơng trỡnh cung cấp thụng tin về cỏc bài giảng đó đƣợc soạn thảo.
Về giao diện, cỏc màn hỡnh nhập liệu khụng cho phộp thay đổi giao diện.
3.3. Mụ tả hệ thống
Chƣơng trỡnh cho phộp cập nhật nội dung một bài giảng, cũng nhƣ việc xem thụng tin một bài giảng cụ thể.
Yờu cầu:
Xõy dựng modul nhập vào cỏc thụng tin liờn quan đến một bài giảng: học phần, tờn bài, số tiết, mục đớch, yờu cầu, nội dung bài giảng,...
Phõn tớch nội dung bài giảng và lƣu trữ chỳng dƣới dạng file XML.
Xõy dựng modul xem nội dung của một bài giảng cũng nhƣ tỡm kiếm thụng tin về chỳng.
3.4. Thiết kế cơ sở dữ liệu
3.4.1. Thiết kế dữ liệu
Với việc sử dụng XML ngƣời dựng hoàn toàn cú thể lƣu trữ và mụ tả dữ liệu tƣơng tự nhƣ ở dạng bảng. Khụng chỉ một bảng mà ta cũn cú thể lƣu nhiều bảng trờn một hay nhiều file XML. Vấn đề chớnh đặt ra ở đõy là việc phõn tớch thụng tin một bài giảng và cỏch tổ chức cơ sở dữ liệu bài giảng này trong một file XML.
HOCPHAN Ký tự Tờn học phần BAISO Ký tự Bài số
TENBAI Ký tự Tờn bài giảng SOTIET Ký tự Số tiết
MUCDICH Ký tự Mục đớch YEUCAU Ký tự Yờu cầu
NOIDUNG Nội dung chứa cỏc nỳt mục con BAITAP Bài tập chứa cỏc nỳt BT con TOMTAT Ký tự Túm tắt
Bảng 3.4.1.a: Mụ tả cỏc nỳt con của nỳt <BAIGIANG> là nỳt gốc của tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
MUC Nỳt mục chứa cỏc nỳt mục con
Bảng 3.4.1.b: Mụ tả nỳt con của nỳt <NOIDUNG> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC Ký tự Tờn mục 1. hoặc mục 2.,...
NDMUC Ký tự Nội dung của mục 1. hoặc mục 2.,...
MUC1 Là nỳt cha của cỏc nỳt TENMUC1, NDMUC1,...
Bảng 3.4.1.c: Mụ tả cỏc nỳt con của nỳt <MUC> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC1 Ký tự Tờn của mục 1. 1 hoặc mục 1.2.,... NDMUC1 Ký tự Nội dung mục 1.1. hoặc mục 1.2.,...
MUC2 Là nỳt cha của cỏc nỳt TENMUC2, NDMUC2 MUC3 Là nỳt cha của cỏc nỳt TENMUC3, NDMUC3 MUC4 Là nỳt cha của cỏc nỳt TENMUC4, NDMUC4 MUC5 Là nỳt cha của cỏc nỳt TENMUC5, NDMUC5 MUC6 Là nỳt cha của cỏc nỳt TENMUC6, NDMUC6
Bảng 3.4.1.d: Mụ tả cỏc nỳt con của nỳt <MUC1> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC2 Ký tự Tờn của mục 1.1.1. hoặc mục 1.2.1,... NDMUC2 Ký tự Nội dung mục 1.1.1. hoặc mục 1.2.1,...
Bảng 3.4.1.e: Mụ tả cỏc nỳt con của nỳt <MUC2> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC3 Ký tự Tờn của mục 1.1.2. hoặc mục 1.2.2,... NDMUC3 Ký tự Nội dung mục 1.1.2. hoặc mục 1.2.2,...
Bảng 3.4.1.f: Mụ tả cỏc nỳt con của nỳt <MUC3> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC4 Ký tự Tờn của mục 1.1.3. hoặc mục 1.2.3,... NDMUC4 Ký tự Nội dung mục 1.1.3. hoặc mục 1.2.3,...
Bảng 3.4.1.g: Mụ tả cỏc nỳt con của nỳt <MUC4> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC5 Ký tự Tờn của mục 1.1.4. hoặc mục 1.2.4,... NDMUC5 Ký tự Nội dung mục 1.1.4. hoặc mục 1.2.4,...
Bảng 3.4.1.h: Mụ tả cỏc nỳt con của nỳt <MUC5> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải
TENMUC6 Ký tự Tờn của mục 1.1.5. hoặc mục 1.2.5,... NDMUC6 Ký tự Nội dung mục 1.1.5. hoặc mục 1.2.5,...
Bảng 3.4.1.i: Mụ tả cỏc nỳt con của nỳt <MUC6> trong tài liệu XML
Tờn nỳt Kiểu dữ liệu Diễn giải