TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN-TT
BỘ MÔN HỆ THỐNG THÔNG TIN VÀ TOÁN ỨNG DỤNG
------
------
LUẬN VĂN TỐT NGHIỆP
THAO TÁC DỮ LIỆU XML VỚI JAVA VÀ API JDOM
ỨNG DỤNG QUẢN LÝ CÁC TÀI LIỆU THAM KHẢO
CỦA GIÁO TRÌNH
Sinh Viên Thực Hiện:
Giáo Viên Hướng Dẫn:
Họ và tên: Lê Hoàng Minh Nhẫn
Họ và tên: TS.Phạm Thị Xuân Lộc
MSSV: 1063292
MSCB: 514
Lớp: Tin học 2 (DI0656A2)
Khóa: 32
CẦN THƠ, 05/2010
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
LỜI CẢM ƠN
Đầu tiên, em xin gởi lời cảm ơn chân thành và sâu sắc nhất tới Cô Phạm Thị Xuân
Lộc – người đã tận tụy hướng dẫn, động viên và giúp đỡ em rất nhiều trong quá trình thực
hiện đề tài luận văn.
Thứ hai, em xin cảm chân thành cảm ơn quý Thầy Cô trong Khoa Công Nghệ Thông
Tin và Truyền Thông – Trường Đại Học Cần Thơ đã truyền đạt những kiến thức quý báu
cho em trong những năm học qua.
Thứ ba, em xin chân thành cảm ơn bè bạn và các anh chị khóa trước đã ủng hộ, động
viên và giúp đỡ em trong quá trình học tập và nghiên cứu.
Thứ tư, em xin gởi lời cảm ơn chân thành và biết ơn sâu sắc tới các Chú Bảo Vệ
trong Khoa Công Nghệ Thông Tin và Truyền Thông – Trường Đại Học Cần Thơ đã tạo điều
kiện tốt nhất cho em vừa học vừa làm để kiếm thêm thu nhập phụ giúp gia đình trong những
năm tháng ở trường đại học.
Và cuối cùng, em không thể bước chân đến trường đại học cũng như hoàn thành
chương trình học đại học mà không có sự quan tâm, chăm sóc, an ủi, khuyến khích, động
viên vô cùng đặc biệt và sâu sắc của ÔNG BÀ, CHA MẸ và ANH CHỊ EM trong gia đình.
Em xin phép nói lên lời tri ân tốt đẹp nhất, cao quý nhất với lòng biết ơn thành kính dành
cho họ.
Mặc dù em đã cố gắng hoàn thành luận văn với khả năng và trong phạm vi cho phép
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận được sự cảm
thông và tận tình chỉ bảo của quý Thầy Cô.
Cần Thơ, ngày 5 tháng 5 năm 2010
Sinh viên thực hiện
Lê Hoàng Minh Nhẫn
GVHD: TS. Phạm Thị Xuân Lộc - Trang i - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
Cần Thơ, ngày
tháng
năm 2010
Giáo viên hướng dẫn
TS. Phạm Thị Xuân Lộc
GVHD: TS. Phạm Thị Xuân Lộc - Trang ii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
Cần Thơ, ngày
tháng
năm 2010
Giáo viên phản biện
GVHD: TS. Phạm Thị Xuân Lộc - Trang iii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
TRƯỜNG ÐẠI HỌC CẦN THƠ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
Ðộc Lập - Tự Do - Hạnh Phúc
PHIẾU ĐÁNH GIÁ LUẬN VĂN TỐT NGHIỆP
(Dùng cho giáo viên hướng dẫn và phản biện LVTN)
TÊN ĐỀ TÀI: Thao tác dữ liệu XML với Java và API JDOM.
Họ và tên sinh viên thực hiện:
Lê Hoàng Minh Nhẫn
Họ và tên người hướng dẫn/ phản biện: Phạm Thị Xuân Lộc
MSSV: 1063292
MSCB: 514
Phần nhận xét:
Về cuốn báo cáo
Về hình thức:
Quyển luận văn có 97 trang, có đầy đủ các mục và cách thức trình bày theo quy
định. Tài liệu tham khảo khá phong phú, trong đó tài liệu bằng tiếng Anh khá nhiều mặc dù
tác giả là SV song ngữ Pháp.
Văn phong rất đặc biệt, gây sự chú ý nơi người đọc và làm nổi bật ý tác giả muốn đề
cập.
Tóm tắt:
Phần tóm tắt giới thiệu các khái niệm chính trong đề tài. Tuy nhiên, còn hơi dài.
Về phần tổng quan:
Phần đặt vấn đề rất lôi cuốn, nêu được đặc điểm của Java và XML để hướng tới
cách thức lưu trữ dữ liệu kết hợp sử dụng Java, sử dụng JDOM cho một phong cách tạo
HTTT mới.
Về cơ sở lý thuyết- nội dung và kết quả nghiên cứu
Do đặc thù của ĐT là về lý thuyết, nên trong phần cơ sở lý thuyết, tác giả chú ý đến
các khái niệm liên quan XM, Java và JDOM.
Về XML, LV đã tìm hiểu định nghĩa, tầm quan trọng của XML, cấu trúc một tài liệu
XML và các qui tắc trên đó.
Java được chú trọng ở sự kết hợp với XML nên SAX và JDOM được đề cập sau khi
nói qua DOM.
Kết quả nghiên cứu được trình bày với ưu khuyết điểm trên cả hai việc nghiên cứu
lý thuyết và ứng dụng.
Hướng phát triển hợp lý.
GVHD: TS. Phạm Thị Xuân Lộc - Trang iv - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Về sản phẩm/ chương trình demo
Demo đơn giản trên một hệ thống đơn giản vì chỉ dùng minh họa cho lý thuyết.
Tuy thế, tác giả cũng hoàn thành một HTTT hoàn chỉnh, nghiêm túc với đầy đủ ràng
buộc toàn vẹn, các gợi ý nhắc nhở, thông báo sai và thao tác nhanh gọn, kết quả chính xác.
Về buổi báo cáo và trả lời chất vấn
Slides theo hình thức chuẩn của trường ĐHCT, đôi chỗ ôm đồm nhiều thông tin quá
như khi giới thiệu các package của JDOM. Phong cách báo cáo do đặc thù của LV nên lúc
đấu còn chưa thật sinh động, nhưng về sau lôi cuốn được khán giả ở kiến thức của tác giả.
Phản ứng khi trình bày và chất vấn có linh động, có chính kiến.
Về tinh thần thái độ làm việc
Ham học hỏi, thông minh, có tinh thần vượt khó. Chủ động đề xuất ý kiến với
GVHD. Tuy nhiên, mạnh dạn trong suy nghĩ mà còn rụt rè trong giao tiếp.
Phần chấm điểm: Người đánh giá dựa vào các nhận xét trên để chấm điểm theo thang điểm
sau:
Nội dung đánh giá
Điểm tối đa
CUỐN BÁO CÁO
4
Về hình thức
0.5
Tóm tắt
0.5
Về phần tổng quan
1
Về cơ sở lý thuyết:
0.5
Về nội dung và kết quả nghiên cứu
1.5
SẢN PHẨM/ CHƯƠNG TRÌNH DEMO
3
Chức năng của sản phẩm đáp ứng yêu cầu đặt ra
2
Sản phẩm có khả năng ứng dụng trong thực tiễn
1
BÁO CÁO VÀ TRẢ LỜI CHẤT VẤN
Điểm thực chấm
2
Báo cáo tốt
0.75
Trả lời chất vấn tốt
TINH THẦN THÁI ĐỘ LÀM VIỆC
TỔNG CỘNG
1
1
9.75 (Xuất sắc)
GVHD: TS. Phạm Thị Xuân Lộc - Trang v - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Xếp loại: Căn cứ vào điểm chấm trên mà đánh giá xếp loại, theo quy định xếp loại:
Xuất sắc:
Từ 9 đến 10 điểm.
Giỏi:
Từ 8 đến 8.5 điểm.
Khá:
Từ 7 đến 7.5 điểm.
Trung bình khá:
Từ 6 đến 6.5 điểm
Trung bình:
Từ 5 đến 5.5 điểm.
Ghi chú:
- Việc xếp loại phải tuân theo quy định trên để có sự thống nhất chung trong hội
đồng.
- Trước hội đồng bảo vệ, người đánh giá chỉ đọc phần nhận xét và xếp loại, không
đọc phần điểm.
- Người đánh giá, căn cứ vào buổi bảo vệ thử, có thể sơ bộ đánh giá điểm của sinh
viên (chưa cộng hai điểm của phần báo cáo và trả lời chất vấn). Nếu điểm đánh giá
sơ bộ của một sinh viên nhỏ hơn 5 thì giáo viên hướng dẫn và giáo viên phản biện đề
nghị hội đồng không cho sinh viên đó bảo vệ chính thức.
- Điểm đánh giá cuối cùng của một sinh viên = (Điểm của giáo viên hướng dẫn +
Điểm của giáo viên phản biện + Điểm trung bình cộng của các thành viên hội
đồng)/3.
Cần Thơ, ngày 10 tháng 05 năm 2010
NGƯỜI ĐÁNH GIÁ
TS. PHẠM THỊ XUÂN LỘC
GVHD: TS. Phạm Thị Xuân Lộc - Trang vi - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
TÓM TẮT, ABSTRACT VÀ TỪ KHÓA
I.TÓM TẮT
JDOM là một API miễn phí (giao diện lập trình ứng dụng – mã nguồn mở) được tạo bởi
Brett MacLaughlin and Jason Hunter. JDOM là một API đặc biệt dành cho Java trái với
SAX (API đơn giản cho Java) và DOM (mô hình đối tượng tài liệu) là những API độc lập
ngôn ngữ.
JDOM thì dễ dàng, là một đại diện Java của một tài liệu XML. JDOM đưa ra cách trình
bày tài liệu sao cho dễ dàng, đọc, thao tác, ghi hiệu quả. Nó có một API không phức tạp,
nhẹ, nhanh và tối ưu hóa cho lập trình viên Java. Nó khác với DOM và SAX mặc dù nó tích
hợp tốt cả DOM và SAX.
Bây giờ, JDOM vẫn còn trẻ và đang nâng cao. Phiên bản mới nhất là JDOM 1.1.1 hỗ trợ
cả ngôn ngữ XPath (thông qua gói phần mềm Jaxen).
Luận văn này sẽ cho chúng ta thấy làm thế nào để đặt Java và XML cùng nhau, xây dựng
những phần mềm thế giới thực trong đó cả hai mã và dữ liệu đều di chuyển đích thực.
II.ABSTRACT
JDOM is a free API (Application Programming Interface – open source) created by Brett
McLaughlin and Jason Hunter. JDOM is a specific API for Java contrary to SAX (Simple
API for XML) and DOM (Document Object Model), APIs are independent languages.
JDOM is, quite simply, a Java representation of an XML document. JDOM provides a
way to represent that document for easy and efficient reading, manipulation, and writing. It
has a straightforward API, is a lightweight and fast, and is optimized for the Java
programmer. It's an alternative to DOM and SAX, although it integrates well with both
DOM and SAX.
Now, JDOM is still young and improving. Newest version is JDOM 1.1.1 that supports
XPath language (through package Jaxen software).
This thesis shows us how to put Java and XML together, building real-world applications
in which both the code and the data are truly portable.
III.TỪ KHÓA
Java and XML, XML, JDOM, XPath,…
GVHD: TS. Phạm Thị Xuân Lộc - Trang vii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
MỤC LỤC
LỜI CẢM ƠN ..................................................................................................................... i
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN................................................................ii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN .................................................................iii
PHIẾU ĐÁNH GIÁ LUẬN VĂN TỐT NGHIỆP ............................................................ iv
TÓM TẮT, ABSTRACT VÀ TỪ KHÓA ....................................................................... vii
I.TÓM TẮT ....................................................................................................................... vii
II.ABSTRACT................................................................................................................... vii
III.TỪ KHÓA .................................................................................................................... vii
MỤC LỤC .......................................................................................................................viii
DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT............................................................ xii
DANH MỤC HÌNH......................................................................................................... xiv
DANH MỤC BẢNG......................................................................................................... xv
Chương I.
GIỚI THIỆU ............................................................................................. 1
I.1.
ĐẶT VẤN ĐỀ....................................................................................................... 1
I.2.
MỤC TIÊU CẦN ĐẠT ĐƯỢC ............................................................................. 2
I.3.
PHẠM VI CỦA ĐỀ TÀI ....................................................................................... 2
I.4.
HƯỚNG GIẢI QUYẾT......................................................................................... 2
I.4.1.
Lý thuyết .................................................................................................... 2
I.4.2.
Chương trình............................................................................................... 2
I.5.
BỐ CỤC CỦA QUYỂN LUẬN VĂN ................................................................... 2
Chương II.
II.1.
CƠ SỞ LÝ THUYẾT................................................................................ 3
GIỚI THIỆU TỔNG QUAN.................................................................................. 3
II.1.1.
Giới thiệu về XML...................................................................................... 3
II.1.1.1.
XML là gì?.............................................................................................. 3
II.1.1.2.
Cách hiển thị tài liệu XML ...................................................................... 6
II.1.1.3.
XML được dùng ở đâu? .......................................................................... 6
II.1.1.4.
Tại sao XML quan trọng?........................................................................ 7
II.1.1.4.2. Dữ liệu có cấu trúc và tích hợp............................................................. 7
II.1.1.4.3. XML đơn giản hóa việc trao đổi dữ liệu............................................... 7
II.1.1.4.4. Tùy biến ngôn ngữ định dạng............................................................... 8
II.1.1.4.5. Dữ liệu tự mô tả ................................................................................... 8
GVHD: TS. Phạm Thị Xuân Lộc - Trang viii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
II.1.1.4.6. XML cho phép mã hóa thông minh ...................................................... 8
II.1.1.4.7. XML cho phép tìm kiếm thông minh ................................................... 9
II.1.1.5.
Cấu trúc của một tài liệu XML ................................................................ 9
II.1.1.5.1. Khai báo XML (XML declaration)....................................................... 9
II.1.1.5.2. Chú thích (Comments) ....................................................................... 10
II.1.1.5.3. Phần tử gốc (root element) ................................................................. 11
II.1.1.5.4. Thẻ và các phần tử (Elements) ........................................................... 11
II.1.1.5.5. Phần tử rỗng (Empty Element) ........................................................... 12
II.1.1.5.6. Thuộc tính (Attribute) ........................................................................ 12
II.1.1.5.7. PCDATA (Parsed Chacracter DATA)................................................ 13
II.1.1.5.8. CDATA (Character DATA)............................................................... 13
II.1.1.5.9. Chỉ thị tiền xử lý (Processing Instructions)......................................... 14
II.1.1.5.10. Bộ phân tích (Parser)........................................................................ 14
II.1.1.6.
II.1.2.
Các quy tắc tài liệu của XML.................................................................... 17
II.1.2.1.
Tạo tài liệu XML đúng cú pháp (well-formed) ...................................... 17
II.1.2.2.
Tài liệu XML hợp lệ (valid) .................................................................. 20
II.1.3.
II.2.
Không gian tên (Namespace)................................................................. 14
Lược đồ XML (XML Schema) ................................................................. 24
II.1.3.1.
Vì sao có XML Schema ........................................................................ 24
II.1.3.2.
XML schema là gì? ............................................................................... 24
TỔNG QUAN NGÔN NGỮ LẬP TRÌNH JAVA................................................ 28
II.2.1.
Giới thiệu.................................................................................................. 28
II.2.2.
Java là gì? ................................................................................................. 28
II.2.3.
Các đặc trưng của Java.............................................................................. 28
II.2.4.
Nguyên lý hoạt động................................................................................. 29
II.2.5.
Cấu trúc của một chương trình Java .......................................................... 30
II.2.6.
Các phần mềm cài đặt ............................................................................... 30
II.2.6.1.
Bộ phần mềm phát triển Java................................................................. 30
II.2.6.2.
IDE ....................................................................................................... 31
II.2.7.
II.3.
Thiết kế giao diện với Swing .................................................................... 31
II.2.7.1.
Swing là gì? .......................................................................................... 31
II.2.7.2.
Các thành phần của Swing..................................................................... 32
CÔNG NGHỆ JAVA VÀ XML .......................................................................... 32
GVHD: TS. Phạm Thị Xuân Lộc - Trang ix - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
II.3.1.
Thao tác dữ liệu XML với Java và API JDOM
DOM (Document Object Model) .............................................................. 33
II.3.1.1.
Vì sao có DOM?.................................................................................... 33
II.3.1.2.
DOM là gì? ........................................................................................... 33
II.3.1.3.
Chức năng của DOM............................................................................. 34
II.3.1.4.
Cơ chế thực hiện ................................................................................... 34
II.3.1.5.
Cấu trúc DOM tree................................................................................ 35
II.3.1.6.
Các thành phần của DOM ..................................................................... 35
II.3.1.7.
Khuyết điểm của DOM ......................................................................... 35
II.3.1.8.
Cách thức thực hiện............................................................................... 36
II.3.1.9.
Ví dụ về sử dụng Java DOM để phân tích tài liệu XML ........................ 36
II.3.2.
SAX (Simple API for XML)..................................................................... 37
II.3.2.1.
Vì sao có SAX?..................................................................................... 37
II.3.2.2.
SAX là gì?............................................................................................. 38
II.3.2.3.
Chức năng chính của SAX .................................................................... 39
II.3.2.4.
Ưu – nhược điểm của SAX.................................................................... 39
II.3.2.5.
Một ví dụ về Java SAX phân tích tài liệu XML ..................................... 40
II.3.3.
JDOM (Java Document Object Model) ..................................................... 41
II.3.3.1.
Vì sao có JDOM? .................................................................................. 41
II.3.3.2.
JDOM là gì?.......................................................................................... 41
II.3.3.3.
Sứ mệnh của JDOM .............................................................................. 42
II.3.3.4.
Tại sao ta cần JDOM? ........................................................................... 42
II.3.3.5.
API JDOM ............................................................................................ 44
II.3.3.6.
Luồng chương trình tổng quát ............................................................... 53
II.3.3.7.
Tạo một file XML với JDOM................................................................ 54
II.3.3.8.
Download và cài đặt JDOM .................................................................. 54
II.3.3.9.
Tạo một cây đơn giản ............................................................................ 55
II.3.3.10. Hiển thị và lưu tập tin............................................................................ 56
II.3.3.11. Duyệt một file XML.............................................................................. 57
II.3.3.11.1. Phân tích một file XML.................................................................... 57
II.3.3.11.2. Duyệt cây ......................................................................................... 59
II.3.3.11.3. Lọc những phần tử ........................................................................... 59
II.3.3.12. Sửa đổi một cây JDOM ......................................................................... 61
II.3.3.12.1. Sửa đổi những phần tử ..................................................................... 61
GVHD: TS. Phạm Thị Xuân Lộc - Trang x - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
II.3.3.12.2. Phân tích DOM thành JDOM và ngược lại ....................................... 65
II.3.3.13. Kết Luận ............................................................................................... 66
II.3.4.
Duyệt tập tin XML với XPath ................................................................... 66
II.3.4.1.
XPath là gì?........................................................................................... 66
II.3.4.2.
Giải pháp Java với XPath ...................................................................... 67
II.3.4.3.
Môi trường thích hợp ............................................................................ 67
II.3.4.4.
Nguyên tắc hoạt động............................................................................ 68
II.3.4.5.
Cú pháp XPath ...................................................................................... 68
II.3.4.6.
XPath áp dụng cho Java ........................................................................ 70
II.3.4.7.
Kết luận................................................................................................. 71
Chương III.
CHƯƠNG TRÌNH ỨNG DỤNG............................................................ 72
III.1. QUẢN LÝ CÁC TÀI LIỆU THAM KHẢO CỦA GIÁO TRÌNH........................ 72
III.1.1.
Những thông tin cần quản lý ..................................................................... 72
III.1.2.
Mô hình MCD (Modèle conceptuel des données)...................................... 72
III.1.3.
Mô hình tổ chức file XML ........................................................................ 73
III.2. MÔ TẢ CHỨC NĂNG CÁC MODULE CHÍNH ................................................ 74
III.2.1.
Giao diện chính......................................................................................... 74
III.2.2.
Menu File ................................................................................................. 75
III.2.3.
Những thao tác cơ bản giữa Java và JDOM với file XML (Book.xml) ...... 75
III.2.3.1.
Thêm..................................................................................................... 75
III.2.3.2.
Sửa........................................................................................................ 86
III.2.3.3.
Xóa ....................................................................................................... 88
III.2.3.4.
Tìm kiếm............................................................................................... 90
III.2.3.5.
Thống kê ............................................................................................... 92
Chương IV.
KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ................................................ 95
IV.1. KẾT QUẢ ĐẠT ĐƯỢC ...................................................................................... 95
IV.2. ƯU VÀ KHUYẾT ĐIỂM .................................................................................... 95
IV.2.1.
Ưu điểm.................................................................................................... 95
IV.2.2.
Khuyết điểm ............................................................................................. 95
IV.3. HƯỚNG PHÁT TRIỂN....................................................................................... 96
TÀI LIỆU THAM KHẢO ............................................................................................... 97
GVHD: TS. Phạm Thị Xuân Lộc - Trang xi - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Ký hiệu – Tên
Diễn giải
viết tắt
Application Programming Interface – Giao diện lập trình ứng dụng.
API
American National Standards Institute – Viện tiêu chuẩn quốc gia Hoa
ANSI
Kỳ.
Business To Business - Mô hình kinh doanh thương mại điện tử trong
B2B
đó giao dịch xảy ra trực tiếp giữa các doanh nghiệp với nhau.
Business To Customer - Mô hình kinh doanh thương mại điện tử trong
đó giao dịch xảy ra trực tiếp giữa các doanh nghiệp với người tiêu
B2C
dùng.
Banking Industry Technology - Ngôn ngữ văn phòng về kỹ thuật
BITS
nghiệp vụ ngân hàng.
CBL – Common
Common Bussiness Library – Thư viện kinh doanh thông dụng.
Bussiness Library
Chemical Markup
Chemical Markup Language - Ngôn ngữ định dạng hóa học.
Language
Cascading Style Sheet – Bảng định kiểu.
CSS
Document Object Model – Mô hình đối tượng tài liệu. DOM cho phép
DOM
xử lý đến từng nút dữ liệu XML theo cấu trúc cây.
DTD
Document Type Definition – định nghĩa kiểu tài liệu.
ebXML
electronic business XML - Khởi đầu XML kinh doanh điện tử.
eCommerce
electronic Commerce – Thương mại điện tử.
GUI
Graphics User Interface – Giao diện người dùng.
HyperText Markup Language – Ngôn ngữ đánh dấu siêu văn bản. Nó
HTML
là ngôn ngữ dùng các phần tử thẻ để đánh dấu qui định các định dạng
văn bản. Tài liệu HTML thường được hiển thị bởi trình duyệt.
IDE
Integrated Development Environment – Môi trường phát triển tích hợp.
ISO
International Organization for Standardization – Tổ chức quốc tế về
tiêu chuẩn hóa.
JDK
Java Development Kit – Bộ công cụ phát triển Java.
JDOM
Java Document Object Model – Mô hình đối tượng tài liệu Java.
GVHD: TS. Phạm Thị Xuân Lộc - Trang xii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
JVM
Java Virtual Machine – Máy ảo Java.
Multi-platform
Đa nền.
OOP
Oriented Object Programming – Lập trình hướng đối tượng.
RPC
Remote Procedure Call – Phương thức gọi hàm từ xa.
Simple API for XML – Giao diện lập trình ứng dụng đơn giản xử lý tài
SAX
liệu XML theo mô hình hướng sự kiện.
Standard Generalized Markup Language – Ngôn ngữ đánh dấu tổng
SGML
quát chuẩn.
Swing
Một tập hợp các thành phần của giao diện người dùng của Java.
SOAP
Simple Object Acess Protocol – Giao thức truy cập đối tượng đơn giản.
URI
Universal Resource Identifier – Địa chỉ định danh tài nguyên toàn cầu.
URL
Universal Resource Locator – Địa chỉ định vị tài nguyên toàn cầu.
Valid XML
Tài Liệu XML hợp lệ.
Vector Markup Language – Ngôn ngữ định dạng dùng vẽ ảnh véc tơ
VML
trong trình duyệt.
World Wide Web Consortium – Tổ chức định nghĩa các chuẩn ứng
W3C
dụng cho mạng Internet.
Well-formed
XML
Tài liệu XML đúng cú pháp.
Wireless Markup Language – Ngôn ngữ định dạng mạng không dây.
WML
Extension HyperText Markup Language – Ngôn ngữ mở rộng của
XHTML
HTML dựa trên XML.
XLink
Tạo liên kết trong tài liệu XML.
XML
Extensible Markup Language – Ngôn ngữ đánh dấu mở rộng.
XML Namespace
Không gian tên XML
XML Schema
Lược đồ XML.
XML Parser
Bộ phân tích XML.
XPath
Ngôn ngữ qui định đường dẫn đến một nút dữ liệu XML.
XPointer
Trỏ đến mục dữ liệu trong XML.
XSL
Extension Style Language – Ngôn ngữ định kiểu mở rộng.
GVHD: TS. Phạm Thị Xuân Lộc - Trang xiii - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
DANH MỤC HÌNH
Hình 1. XML là gì? ............................................................................................................ 3
Hình 2. Cấu trúc một tài liệu XML................................................................................... 9
Hình 3. Các thành phần mà ngôn ngữ Java hỗ trợ ........................................................ 28
Hình 4 . IDE NetBeans..................................................................................................... 31
Hình 5 . Các gói trong Swing........................................................................................... 32
Hình 6. Vai trò của DOM. ............................................................................................... 34
Hình 7. Cơ chế thực hiện của DOM ................................................................................ 34
Hình 8. Cấu trúc DOM tree............................................................................................. 35
Hình 9. Cơ chế của SAX .................................................................................................. 39
Hình 10. Mô tả các thành phần của API JDOM. ........................................................... 43
Hình 11. Các gói trong API JDOM ................................................................................. 44
Hình 12. Cấu trúc gói API JDOM................................................................................... 45
Hình 13. Các thành phần của gói org.jdom .................................................................... 45
Hình 14. Các thành phần trong gói org.jdom.adapters ................................................. 47
Hình 15. Các thành phần của gói org.jdom.filter ........................................................... 49
Hình 16. Các thành phần trong gói org.jdom.input ....................................................... 50
Hình 17. Các thành phần trong gói org.jdom.output ..................................................... 51
Hình 18. Các thành phần trong gói org.jdom.transform ............................................... 52
Hình 19. Các thành phần trong gói org.jdom.xpath ...................................................... 53
Hình 20. Luồng chương trình tổng quát của JDOM. ..................................................... 54
Bảng 8. Các thành phần của một phần tử được hỗ trợ trong JDOM............................ 61
Hình 21. Những phương thức của Java hỗ trợ XPath trong gói org.jdom.xpath ......... 67
Hình 22. Giải thích cú pháp của XPath .......................................................................... 70
Hình 23. Mô hình MCD ................................................................................................... 72
Hình 24. Giao diện chính của chương trình ứng dụng................................................... 74
Hình 25. Giao diện cây của tài liệu Book.xml ................................................................. 75
Hình 26. Giao diện thao tác thêm giáo trình................................................................... 86
Hình 27. Giao diện thao tác sửa giáo trình ..................................................................... 87
Hình 28. Giao diện thao tác xóa giáo trình ..................................................................... 90
Hình 29. Giao diện tìm kiếm thông tin giáo trình theo chuyên ngành .......................... 92
Hình 30. Giao diện thống kê giáo trình........................................................................... 94
GVHD: TS. Phạm Thị Xuân Lộc - Trang xiv - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
DANH MỤC BẢNG
Bảng 1. Mô tả các thành phần trong gói org.jdom......................................................... 46
Bảng 2. Mô tả các thành phần trong gói org.jdom.adapter ........................................... 48
Bảng 3. Mô tả các thành phần trong gói org.jdom.filter................................................ 49
Bảng 4. Mô tả các thành phần trong gói org.jdom.input ............................................... 50
Bảng 5. Mô tả các thành phần trong gói org.jdom.output ............................................. 51
Bảng 6. Mô tả các thành phần trong gói org.jdom.transform ....................................... 52
Bảng 7. Mô tả các thành phần trong gói org.jdom.xpath .............................................. 53
Bảng 8. Các thành phần của một phần tử được hỗ trợ trong JDOM............................ 61
GVHD: TS. Phạm Thị Xuân Lộc - Trang xv - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Chương I. GIỚI THIỆU
I.1. ĐẶT VẤN ĐỀ:
Trong thời đại công nghệ thông tin hiện nay XML (Extensible Markup Language) chiếm
vị trí số một và rất quan trọng trong việc chuyển tải, trao đổi dữ liệu và liên lạc giữa các ứng
dụng. Điều này càng được khẳng định khi trong các hệ điều hành từ WindowsXP trở đi, bên
trong nó chứa đầy XML. Hơn nữa, khi bộ .NET ra đời thì càng làm cho XML trở nên thịnh
hành. Sử dụng kỹ thuật XML không chỉ có tập đoàn Microsoft mà ngay cả Sun, IBM,
Oracle đều hỗ trợ XML và dùng nó trong các ứng dụng.
Bên cạnh đó, Java đã cách mạng hóa thế giới lập trình bởi việc cung cấp một nền tảng
ngôn ngữ lập trình độc lập. Java là một ngôn ngữ lập trình hướng đối tượng, Java là ngôn
ngữ đa nền (multi-platform) , nổi tiếng với slogan (khẩu hiệu) “write once, run anywhere” –
“viết một lần, chạy mọi nơi” và biểu tượng tách cà phê bóc khói! Nó có thể thực thi trên
các hệ điều hành khác nhau (MS Windows, Linux, Unix,…) mà không phải biên dịch lại
chương trình. Java là một ngôn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, trong
sáng. Với những ưu điểm vượt trội ấy, Java đã phát triển rất nhanh chóng và trở nên phổ
dụng ở mọi lĩnh vực. Vì thế, ngày nay mọi ứng dụng đa nền đều hướng về Java.
XML đã trở thành từ thông dụng nhất trên Internet trong những gần đây. Nếu Java đã
cách mạng hóa thế giới lập trình bởi việc cung cấp một ngôn ngữ lập trình độc lập nền tảng,
thì XML đưa cuộc cách mạng tiến xa thêm một bước bằng việc cung cấp một nền tảng ngôn
ngữ độc lập cho việc trao đổi dữ liệu. Java và XML chia sẻ nhiều đặc tính lý tưởng để xây
dựng những ứng dụng xí nghiệp trên nền Web, như sự độc lập nền tảng, tính mở rộng, khả
năng sử dụng lại, hỗ trợ của ngôn ngữ toàn cầu (Unicode), và cả hai đều dựa vào tiêu chuẩn
công nghiệp. Cùng nhau, Java và XML cho phép những xí nghiệp đơn giản hóa và giảm giá
thành của việc chia sẽ thông tin và trao đổi dữ liệu.
Từ lâu, chúng ta đã nghe nói đến mã Java là “portable code” (mã di động), thì nay dữ
liệu XML là “portable data” (dữ liệu di động). Một sự kết hợp tự nhiên của hai ngôn ngữ để
tạo nên những ứng dụng “portable code, portable data”. Một cặp bài trùng vô cùng xứng
đôi! Nhận thấy mối quan hệ đặc biệt đó cho nên Jason Hunter và Brett McLaughlin đã đưa
ra một biểu thức: JAVA + XML = JDOM. Tại sao hai ông lại đưa ra biểu thức ấy? JDOM
là gì? JDOM có phải là một kết quả hoàn hảo cho mối “lương duyên” giữa Java và XML?
Vậy, làm thế nào để đặt Java và XML cùng nhau, xây dựng những ứng dụng thế giới
GVHD: TS. Phạm Thị Xuân Lộc - Trang 1 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
thựctrong đó cả hai mã và dữ liệu đều có thể “di động” thật sự? Cho nên, đề tài luận văn
“Thao tác dữ liệu XML với Java và API JDOM” được thực hiện vì mục đích đó.
I.2. MỤC TIÊU CẦN ĐẠT ĐƯỢC
Từ những ý đã nêu trên, mục tiêu của đề tài cần trình bày được những vấn đề liên quan
giữa Java và XML. Từ đó, chúng ta sẽ đi sâu vào vấn đề cần tìm hiểu là API JDOM. Bên
cạnh đó, chúng ta cũng xây dựng chương trình ứng dụng “quản lý các tài liệu tham khảo
của giáo trình” để minh họa sinh động hơn về sự kết hợp của Java và XML hay nói đúng
hơn là API JDOM.
I.3. PHẠM VI CỦA ĐỀ TÀI
Phạm vi của đề tài chủ yếu là tìm hiểu thiên về lý thuyết mối quan hệ giữa Java và XML.
Vì thế, chúng ta có thể khảo sát những APIs để điều khiển XML từ mã Java như:
SAX.
DOM.
JDOM.
I.4. HƯỚNG GIẢI QUYẾT
Để giải quyết vấn đề trên, chúng ta cần phải nghiên cứu về:
I.4.1. Lý thuyết
Tìm hiểu về ngôn ngữ XML.
Tìm hiểu về ngôn ngữ Java.
Tìm hiều về công nghệ Java và XML.
Đi sâu vào công nghệ JDOM để thao tác dữ liệu XML với Java.
I.4.2. Chương trình
Ngôn ngữ lập trình: dĩ nhiên là Java và XML.
Công cụ hỗ trợ biên dịch Java: NetBean 6.8, JDK 1.6.
Các gói thư viện hỗ trợ XML và Java: xml4j.jar, xerces.jar, jdom.jar, jaxen.jar.
I.5. BỐ CỤC CỦA QUYỂN LUẬN VĂN
Bố cục chính của quyển luận văn gồm 4 chương sau:
Chương I: Giới thiệu tổng quan về đề tài, phương hướng giải quyết vấn đề.
Chương II: Tìm hiểu về cơ sở lý thuyết liên quan đến đề tài.
Chương III: Giới thiệu demo để minh họa cho vấn đề tìm hiểu.
Chương IV: Nhận xét về kết quả đạt được và hướng phát triển của đề tài.
Trên đây, giới thiệu một cách tổng quan nhất về đề tài. Chúng ta sẽ đi sâu vào tìm hiểu
những cơ sở lý thuyết ở chương kế tiếp.
GVHD: TS. Phạm Thị Xuân Lộc - Trang 2 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Chương II.CƠ SỞ LÝ THUYẾT
Như đã giới thiệu ở chương I, ở chương này chúng ta sẽ đi sâu vào nghiên cứu những cơ
sở lý thuyết có liên quan để giải quyết vấn đề gồm …
II.1. GIỚI THIỆU TỔNG QUAN
II.1.1. Giới thiệu về XML
Nếu phải tiên đoán kỹ thuật tin học nào sẽ thịnh hành trong tương lai, nhất là tương lai
gần chúng ta không cần phải học chiêm tinh cũng đoán được là XML. Vì ngay cả
Mircrosoft lẫn Sun, Oracle, IBM đều nhất quyết dấn thân vào con đường này với mọi ứng
dụng của mình.
II.1.1.1. XML là gì?
Hình 1. XML là gì?
Như tất cả chúng ta đều biết, XML là viết tắt cho chữ Extensible Markup Language
(ngôn ngữ đánh dấu mở rộng) nhưng Markup Language (ngôn ngữ đánh dấu) là gì?
Trong ngành ấn loát, để chỉ thị cho thợ sắp chữ về cách in một bài vở, tác giả hay chủ bút
thường vẽ các vòng tròn trong bản thảo và chú thích bằng một ngôn ngữ đánh dấu tương tự
như
tốc
ký.
Ngôn
ngữ
ấy
được
gọi
là
Markup
Language.
XML là một ngôn ngữ đánh dấu tương đối mới vì nó là một subset (một tập con) của và đến
từ (derived from) một ngôn ngữ đánh dấu già dặn tên là Standard Generalized Markup
GVHD: TS. Phạm Thị Xuân Lộc - Trang 3 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Language (SGML) – Ngôn ngữ đánh dấu tổng quát chuẩn. SGML được phát minh bởi Ed
Mosher, Ray Lorie và Charles F. Goldfarb của nhóm IBM Research vào năm 1969, khi con
người đặt chân lên mặt trăng. Lúc đầu nó có tên là Generalized Markup Language
(GML), và được thiết kế để dùng làm meta-language, một ngôn ngữ được dùng để diễn tả
các ngôn ngữ khác - văn phạm, ngữ vựng của chúng ,... SGML là một tiêu chuẩn quốc tế
cho việc định nghĩa những sự mô tả cấu trúc và nội dung trong những tài liệu văn bản. Nó
độc lập thiết bị và độc lập hệ thống. Nó sử dụng DTD (Document Type Definiton – định
nghĩa kiểu tài liệu) để kiểm tra cấu trúc của tài liệu. Những thẻ trong SGML không được
định nghĩa trước. Nó lớn, mạnh và rất phức tạp. Nó được sử dụng một cách nặng nề trong
công nhiệp và thương mại hơn một thập kỷ.
SGML là một ngôn ngữ đánh dấu tiêu chuẩn mở rộng dùng để thêm đuôi vào văn bản
nhằm báo hiệu rằng văn bản đã được định dạng. Thuật ngữ “markup” mang tính chất lịch sử
dựa vào những đánh dấu của người biên soạn lên các trang để chỉ ra cách định dạng chúng.
Trong giai đoạn đầu của việc đánh máy bằng máy vi tính, có rất nhiều hệ thống đánh máy
khác nhau, mỗi hệ thống dùng một ngôn ngữ đánh dấu riêng. Những ngôn ngữ này bao gồm
những ký tự kiểm soát đặc biệt để chỉ ra điểm bắt đầu và điểm cuối của một định dạng.
Những dấu hiệu đánh dấu này khó hiểu và không thống nhất cho nên người sử dụng nhanh
chóng nhận ra việc cần một ngôn ngữ đánh dấu chuẩn để tránh nhầm lẫn.
Có hai tổ chức - Graphics Communication Association và ANSI (American National
Standards Institute) - thực hiện vấn đề này từ những năm 1980. Cuối cùng, họ kết hợp lại
với nhau và trong năm 1986, ISO (International Standard Organisation - Tổ chức quốc tế về
tiêu chuẩn hóa) giới thiệu SGML. Phần quan trọng nhất của SGML là các file chứa các ký
tự tiêu chuẩn ASCII có nghĩa là chúng có thể được mang từ hệ thống này sang hệ thống
khác. SGML đã tạo ra những cách định dạng văn bản rất đơn giản bằng cách định nghĩa cấu
trúc và mối quan hệ trong văn bản. Những phần văn bản được định nghĩa ở dạng cây theo
cấp và việc định dạng dựa trên cây này. Thông tin trong văn bản sẽ được dịch và thi hành
các lệnh hay định dạng trên những hệ thống khác.
Một văn bản SGML gồm có phần văn bản thực và một file riêng rẽ DTD (Document
Type Definition - Định nghĩa dạng tài liệu). DTD xác định luật thêm đuôi cho văn bản.
DTD định nghĩa mọi cách trình bày phần văn bản thực. Bởi vì DTD định nghĩa cách thức
kết hợp văn bản cho nên DTD có thể được thay đổi để thay đổi hình thức của văn bản.
SGML là do IBM đưa ra, song không thể không kể đến những đóng góp của các công ty
khác.
GVHD: TS. Phạm Thị Xuân Lộc - Trang 4 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
HTML (HyperText Markup Language - Ngôn ngữ đánh dấu siêu văn bản) - được dùng
cho các trang Web - cũng liên quan đến SGML, ngoại trừ các tập tin văn bản được lưu ở
dạng đơn. Ngôn ngữ HTML cũng dựa vào SGML, thật ra nó là một áp dụng của SGML.
Khi Tim Berners - Lee triển khai HTML để dùng cho các trang Web hồi đầu thập niên 1990,
ông ta cứ nhắc nhở rằng HTML là một áp dụng của SGML.
XML được W3C (World Wide Web Consortium: tổ chức độc lập định ra tiêu chuẩn cho
trình duyệt Web, máy chủ và ngôn ngữ) phát triển, nhưng đặc tả XML lại do Netscape,
Microsoft và các thành viên của dự án Text Encoding Initiative (TEI) xây dựng. Tổ chức
W3C XML Special Interest Group có đại diện từ hơn 100 công ty cùng nhiều chuyên gia
được mời khác.
Lý do ra đời của XML vì SGML rất rắc rối, và HTML có nhiều giới hạn, nên năm 1996
tổ chức W3C thiết kế XML. XML version 1.0 được định nghĩa trong hồ sơ “February 1998
W3C Recommendation”.
XML đơn giản hơn SGML nhưng nó vẫn giữ lại những thứ hữu ích của SGML. Nó được
thiết kể để SGML có thể được phân phát qua Web.
Điểm quan trọng của kỹ thuật XML là nó không thuộc riêng về một công ty nào, nó là
một sản phẩm mà trí tuệ của nó thuộc về cả thế giới, nó là một tiêu chuẩn được mọi người
công nhận vì được soạn ra bởi W3C (một ban soạn thảo với sự hiện diện của tất cả các
chuyên gia tin học) và những ý kiến đóng góp bằng cách trao đổi qua email.
Bản thân của XML rất đơn giản, nhưng các công cụ chuẩn được định ra để làm việc với
XML như Document Object Model - DOM, XPath, Extension Style Language - XSL,... thì
rất hữu hiệu, và chính các chuẩn này được phát triển không ngừng.
XML cũng giống như HTML đều là ngôn ngữ đánh dấu, nhưng điều cần nói ở đây là sự
ra đời của XML để khắc phục cho một số yếu kém của HTML. HTML và XML đều sử
dụng các thẻ (tag) nhưng các tag của HTML là một bộ dữ liệu tag được xây dựng và định
nghĩa trước, tức là người lập trình phải tuân thủ theo các thẻ đã định nghĩa của HTML, hiện
HTML có khoản hơn 400 tag, để nhớ hết 400 tag này cũng không có gì khó khăn đối với
người lập trình web chuyên nghiệp nhưng thật khó đối với những người không chuyên. Hơn
nữa các tag của HTML không nói lên được mô tả dữ liệu trong đó. Nhưng đối với XML thì
hoàn toàn khác bởi vì tag trong XML là do người lập trình định nghĩa và mỗi tag là một mô
tả dữ liệu mà người lập trình muốn truyền đạt. Nói chung, nó mềm dẻo và thích ứng hơn
HTML. Một ứng dụng quan trọng của XML với HTML là XHTML (Extension HyperText
Markup Language). XHTML dùng mở rộng và định nghĩa lại HTML một cách có trật tự và
GVHD: TS. Phạm Thị Xuân Lộc - Trang 5 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
cấu trúc hơn. Nói chung, XHTML hoàn toàn sử dụng lại các thẻ định dạng của HTML (và
do đó, các trình duyệt đều có khả năng hiểu được XHTML như là trang HTML thông
thường) nhưng theo một định nghĩa và khuôn dạng thống nhất. Điểm đặc biệt đó là tất cả
các thẻ trong XHTML phải chữ thường. Các phần thẻ phải tuân theo cú pháp và nguyên tắc
của XML.
II.1.1.2. Cách hiển thị tài liệu XML
Thông thường tài liệu XML sẽ được trình duyệt đưa toàn bộ nội dung ra màn hình. Vậy
là cách nào để trình duyệt hiểu được thẻ XML do ta định nghĩa?
Có 2 cách để trình duyệt hiểu các thẻ do ta định nghĩa:
Dùng bảng định kiểu CSS (Cascading Style Sheet) hoặc XSL (Extension Style
Language – ngôn ngữ định kiểu mở rộng) để chỉ định những thẻ dữ liệu nào mà ta
muốn lấy trong tài liệu XML và hiển thị chúng với các định dạng tương tự HTML.
Dùng ngôn ngữ lập trình như Java, ASP, PHP, Javascript,… để xử lý rút trích ra dữ
liệu của các thẻ XML ngay trong mã lệnh.
CSS: là mô hình định nghĩa kiểu định dạng dùng cho việc hiển thị tài liệu. CSS cho phép
tách rời định dạng với nội dung dữ liệu.
XSL: là ngôn ngữ định kiểu mở rộng dựa trên cú pháp và nguyên tắc cấu thành của
XML. XSL có khả năng điều khiển động các phần tử thẻ và dữ liệu cần định dạng. XSL có
thể sắp xếp lại các thẻ trong tài liệu, thay đổi cả nội dung thẻ, hiển thị một phần hay toàn bộ
nội dung dữ liệu.
II.1.1.3. XML được dùng ở đâu?
XML được sử dụng trong những trường hợp sau:
XML độc lập với các platform (Windows, Unix,…) và ngôn ngữ (Visual Basic,
Java,…).
XML sử dụng để trao đổi dữ liệu giữa những ứng dụng với nhau.
Ứng dụng web: giảm thời gian load trang web.
Chứa nội dung trang web : sử dụng XSL (Extension Style Language – Ngôn ngữ
định kiểu mở rộng) hay CSS (Cascading Style Sheet – Bảng định kiểu) để chuyển đổi
và hiển thị trang web.
Remote Procedure Call (RPC): đối tượng ở máy này gọi đối tượng ở máy khác. Sử
dụng XML và HTTP.
Simple Object Access Protocol (SOAP): tương tự như RPC cho phép thông qua
firewall.
GVHD: TS. Phạm Thị Xuân Lộc - Trang 6 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
Thương mại điện tử - eCommerce (electronic Commerce): B2B (Business To
Business), B2C (Business To Costomer),…
II.1.1.4. Tại sao XML quan trọng?
II.1.1.4.1. Khả năng liên kết (Linkability) thông qua XLink và XPointer:
XLink hỗ trợ các liên kết tài liệu XML một cách rất tổng quát. Trong HTML chúng ta
phải sử dụng phần tử như <A>, <MG> để tạo liên kết. XLink không qui định phần tử nào
cả, thay vào đó liên kết được chỉ ra bởi thuộc tính của phần tử. Vì lý do này mà chúng ta có
thể tự định nghĩa mọi phần tử XML có thuộc tính liên kết tạo nên XLink.
XPointer dùng để trỏ đến mục thông tin dữ liệu trong tài liệu XML. XPointer được xây
dựng trên cơ sở XPath. Khi học XPath chúng ta sẽ biết cách tạo đường dẫn đến từng nút cụ
thể trong cây tài liệu XML. Tuy XPath có khả năng định vị nhưng nó không có khả năng chỉ
ra chính xác dữ liệu cần lấy. Để làm được điều này chúng ta cần nhờ vào Xpointer.
Sử dụng XLink và XPointer XML có thể tạo nên:
Những siêu liên kết đơn giản theo một hướng duy nhất.
Những mối liên kết 2 chiều.
Những liên kết đa đích đến.
Những liên kết mở rộng.
II.1.1.4.2. Dữ liệu có cấu trúc và tích hợp
Một khía cạnh mạnh mẽ của XML là không chỉ cho phép chúng ta lưu trữ vào file XML
dựa trên thẻ mà còn tổ chức dữ liệu theo cấu trúc. XML cho phép các phần tử thẻ tích hợp
với nhau tạo nên một cấu trúc dữ liệu phân cấp (hierarchical) hoàn chỉnh.
Dữ liệu XML phân cấp theo cấu trúc cây và vì thế ta có thể:
Truy cập nhanh hơn.
Sắp xếp lại dễ dàng hơn.
II.1.1.4.3. XML đơn giản hóa việc trao đổi dữ liệu
XML độc lập ngôn ngữ và nền tảng. Có nghĩa là đối với nó, một máy tính có thể đang
dùng, chẳng hạn, C# trên hệ điều hành Windows, và máy kia là một máy Unix với mã Java;
điều đó không thành vấn đề. Thực tế, mỗi khi một chương trình máy tính cần liên lạc với
một chương trình khác, XML là một tiềm năng thích hợp cho dạng thức trao đổi. Bởi vì
những tổ chức khác (hoặc thậm chí là các phần khác nhau trong cùng tổ chức) hiếm khi làm
chuẩn hóa trên một bộ công cụ duy nhất, chúng sẽ phải làm một số lượng đáng kể công việc
để trao đổi thông tin. Sử dụng XML, mỗi nhóm sẽ tạo nên một lợi ích riêng mà có thể
chuyển đổi những định dạng dữ liệu bên trong trở thành XML và ngược lại. Trên hết, đây là
GVHD: TS. Phạm Thị Xuân Lộc - Trang 7 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
cơ hội tốt để nhà cung cấp phần mềm có thể đưa ra các công cụ chuyển đổi những ghi chép
cơ sở dữ liệu của họ thành XML và ngược lại.
II.1.1.4.4. Tùy biến ngôn ngữ định dạng
Nghĩa là chúng ta có thể tạo các ngôn ngữ định dạng dựa trên XML, đây là một trong
những khả năng mạnh nhất của XML. Chẳng hạn, khi chúng ta và một tập thể nhóm thỏa
thuận một ngôn ngữ định dạng nào đó (theo một tập thẻ qui ước), chúng ta có thể tùy biến
hoặc ứng dụng nó xử lý theo ngôn ngữ định dạng của chúng ta. Hàng trăm ngôn ngữ định
dạng chuyên dụng dựa trên XML ra đời như:
Ngôn ngữ văn phòng về kỹ thuật nghiệp vụ ngân hàng (BITS – Banking Industry
Technology Secretariat).
Thư viện kinh doanh thông dụng (CBL – Common Bussiness Library).
Khởi đầu XML kinh doanh điện tử (ebXML – electronic business XML).
Ngôn ngữ định dạng mạng không dây (WML – Wireless Markup Language).
Ngôn ngữ định dạng hóa học (CML – Chemical Markup Language).
Ngôn ngữ định dạng dùng vẽ ảnh véc tơ trong trình duyệt (VML – Vector Markup
Language).
II.1.1.4.5. Dữ liệu tự mô tả
Dữ liệu trong tài liệu XML tự mô tả ý nghĩa của nó.
Ví dụ:
</?xml version = “1.0” encoding = “UTF-8”?>
<People>
<Student>
<FullName>Lê Hoàng Thắng</FullName>
<Code>1063392</Code>
<Class>TH2-K32<Class>
</Student>
</People>
Chỉ dựa vào các tên thẻ được ta đặt cho các phần tử XML, chúng ta có thể hình dung ra
nội dung và cách dữ liệu muốn thể hiện. Tài liệu này chứa thông tin về một sinh viên. Cho
dù mấy năm sau mở lại tài liệu này chúng ta vẫn có thể hiểu nội dung của nó.
II.1.1.4.6. XML cho phép mã hóa thông minh
Bởi vì, những văn bản XML được tổ chức để nhận dạng từng thông tin quan trọng (cũng
như mối quan hệ giữa các thông tin), có thể viết mã để xử lí văn bản XML mà không cần
GVHD: TS. Phạm Thị Xuân Lộc - Trang 8 - SVTH: Lê Hoàng Minh Nhẫn - 1063292
Luận văn tốt nghiệp
Thao tác dữ liệu XML với Java và API JDOM
con người tác động. Những nhà cung cấp phần mềm đã dành rất nhiều thời gian và tiền bạc
để xây dựng các công cụ phát triển XML, làm cho việc viết ngôn ngữ này thành một quá
trình tương đối đơn giản.
II.1.1.4.7. XML cho phép tìm kiếm thông minh
Mặc dù công cụ tìm kiếm đã cải thiện dần trong nhiều năm qua, tuy nhiên nhận được
những kết quả không chính xác vẫn phổ biến xảy ra. Nếu bạn đang tìm kiếm một ai đó
mang tên “Chip” trong những trang HTML, bạn sẽ tìm thấy một loạt các trang web về chip
sô-cô-la, chip máy tính, chip gỗ, và nhiều thứ vô dụng khác. Tìm kiếm văn bản XML cho
<first_name> các yếu tố chứa từ Chip sẽ mang lại cho bạn những kết quả tốt hơn rất nhiều.
II.1.1.5. Cấu trúc của một tài liệu XML
Một tài liệu XML cơ bản thường có những phần sau:
Hình 2. Cấu trúc một tài liệu XML.
Ta thấy cấu trúc tài liệu XML có những phần cơ bản: khai báo, phần tử gốc, chú thích,
thẻ và phần tử, thuộc tính.
II.1.1.5.1. Khai báo XML (XML declaration)
Hầu hết các văn bản XML đều bắt đầu với một khai báo XML phần sẽ đưa ra cho bộ
phân tích (parser) những thông tin cơ bản có trong văn bản. Khai báo XML có thể có, nhưng
không bắt buộc. Nếu có, nó phải là phần đầu tiên trong văn bản.
Khai báo có thể chứa tới ba cặp giá trị – tên (nhiều người gọi đó là những thuộc tính, dù
thực chất về kỹ thuật thì không phải vậy). Phiên bản là phiên bản XML được sử dụng; giá
GVHD: TS. Phạm Thị Xuân Lộc - Trang 9 - SVTH: Lê Hoàng Minh Nhẫn - 1063292