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
- 113 trang
- file .pdf
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 MSSV: 1063292
Họ và tên người hướng dẫn/ phản biện: Phạm Thị Xuân Lộc 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 Điểm thực chấm
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 2
Báo cáo tốt 0.75
Trả lời chất vấn tốt 1
TINH THẦN THÁI ĐỘ LÀM VIỆC 1
TỔNG CỘNG 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. CƠ SỞ LÝ THUYẾT................................................................................ 3
II.1. 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. Không gian tên (Namespace)................................................................. 14
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. 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
II.2. 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. 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
II.3. 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 Thao tác dữ liệu XML với Java và API JDOM
II.3.1. 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
API Application Programming Interface – Giao diện lập trình ứng dụng.
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
B2C đó giao dịch xảy ra trực tiếp giữa các doanh nghiệp với người tiêu
dùng.
BITS Banking Industry Technology - Ngôn ngữ văn phòng về kỹ thuật
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
CSS Cascading Style Sheet – Bảng định kiểu.
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
Tài liệu XML đúng cú pháp.
XML
WML Wireless Markup Language – Ngôn ngữ định dạng mạng không dây.
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
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 MSSV: 1063292
Họ và tên người hướng dẫn/ phản biện: Phạm Thị Xuân Lộc 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 Điểm thực chấm
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 2
Báo cáo tốt 0.75
Trả lời chất vấn tốt 1
TINH THẦN THÁI ĐỘ LÀM VIỆC 1
TỔNG CỘNG 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. CƠ SỞ LÝ THUYẾT................................................................................ 3
II.1. 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. Không gian tên (Namespace)................................................................. 14
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. 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
II.2. 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. 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
II.3. 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 Thao tác dữ liệu XML với Java và API JDOM
II.3.1. 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
API Application Programming Interface – Giao diện lập trình ứng dụng.
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
B2C đó giao dịch xảy ra trực tiếp giữa các doanh nghiệp với người tiêu
dùng.
BITS Banking Industry Technology - Ngôn ngữ văn phòng về kỹ thuật
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
CSS Cascading Style Sheet – Bảng định kiểu.
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
Tài liệu XML đúng cú pháp.
XML
WML Wireless Markup Language – Ngôn ngữ định dạng mạng không dây.
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