TRUONG DAI HOC KHOA HOC TU NHIEN
KHOA CONG NGHE THONG TIN
BO MON HE THONG THONG TIN
oO „
NGUYEN THI KIM PHUQNG - TRUONG KIEU GIANG
TÌM HIỂU CÔNG NGHỆ XML Và X€Y DUNG HE THONG QUAN LY
DICH VG KHACH HANG (ESUPPORT)
KHÓA LUẬN CỬ NHÂN TIN HỌC
TP.HCM, 2005
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN
oo OF
NGUYEN THI KIM PHƯỢNG 0112237
TRƯƠNG KIỂU GIANG 0112344
TÌM HIỂU CƠNG NGHỆ XML Và
XâY DựNG HỆ THỐNG QuảN LÝ
DICH VU KHACH HANG (ESUPPORT)
GIAO VIEN HUGNG DAN
THẠC SĨ: NGUYEN TRAN MINH THU’
Trang 3Bh] & Minh Flue i đỡ khich le odn nay ban da 6 oà giúp tốt luậr cùng các tâm 7 nam 2005 van sie dén cha me, gia +s ot chit, tinh than, dgug ay 12 oién ict t suốt nhấ Øp.Z60ô lu Miu, đặc biệt tà
Gây Óô trong khoa Céng Wghé hông in đã tận tình giảng sau OWguyén De đỡ cluing em trong qua trinh 2 oién, quan on giam st động on Ban on Shae Athém sinh 2 cam sề
Øp.Z6ô @lư /Mink,
em ahitnag kiếm tÍuức cam £ ) ⁄ e 2 cam cùng, Ching toi xin chan thanh cam tướng thận xét, đóng góp biếu
Ching em xin chin thanh Ching em xin chain thanh
Cubi
trường Dai hoe Khoa Foe Fu
cede
nam hoe tap tai trường
thie hién lugn van dé chiing em céAhé hoan
Trang 4“J
cS ST
, LO! NOI DAU i
[ Thế kỷ 21 - thế kỷ của sự bùng nỗổ công nghệ thông tin, các công nghệ Ì * tiên tiến phát triển như vũ bão, mang một luồng gió mới thổi vào nhận thức : [ của mỗi người Song song đó, thế giới đang trong xu thế toàn cầu hóa, tat ‘
t cả đều mang ý nghĩa hội nhập Lúc này, các doanh nghiệp va chính phủ i | khéng chi canh tranh véi cdc doanh nghiép trong mét quéc gia ma con canh 1
* tranh với các doanh nghiệp, chính phủ ở khắp thế giới.:Vì thế, để tồn tại và : phát triển, mục tiêu mà các doanh nghiệp hướng đến đầu tiên là nâng cao : - chất lượng phục vụ khách hàng Khách hàng là:yêu tố sống còn của bắt kỳ = + doanh nghiệp nào trong thế kỷ 21 Một chính phủ muốn quốc gia mình phát †
t trién phai xem nhan dan va doanh nghiép la*khach, hang Dé cé khach hang j t đã khó, để giữ khách hàng càng khớ hơn nhiều Doanh nghiệp nào làm cho i + khách hàng thỏa mãn, doanh nghiệp đó sẽ phát triển tốt, chính phủ nào làm *
[ nhân dân hài lòng chính phủ đó.sẽ vững mạnh j
L Trong bối cảnh phát triển mạnh mẽ của Internet nói chung, thương mại j † điện tử và chính phủ điện tử nói riêng, việc ứng dụng công nghệ thông tin j vào lĩnh vực dịch vự khách hàng không là mới trên thế giới nhưng là mới ở :
[ Việt Nam Nhiều vấn đề đặt ra là làm thế nào đem đến cho khách hàng sự Ì
‹ phục vụ tốt.nhất, tiện lợi và hiệu quả nhất Chính vi vậy đề tài “Tìm hiểu :
t công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng” Ì f được đưa ra nhằm giúp cho các doanh nghiệp hay các tổ chức nhà nước i * hỗ trợ khách hàng hiệu quả hơn Với luận văn này, nhóm chúng em mong :
Trang 5I ar ! , _ Nội dung của đê tài gồm các phân chính sau: ! ị j $ Chương 1: Tổng quan - Giới thiệu đôi nét về hệ thống hỗ trợ dịch vụ khách 4 b +
| hang như mục tiêu, phạm vi, đôi tượng mà hệ thông hướng tới Song song |
i đó là các cách tiếp cận bài toán và đưa ra hướng giải quyết bài tốn j
& ®
I à !
, _ Chương 2: Giới thiệu công nghệ XML — De tai sử dụng một công nghệ mới | I x k à Re gyn as ` | i để hỗ trợ trong vấn đề lưu trữ và trao đổi thông tin trong môi trường Internet : [ đó là XML Chương này sẽ giới thiệu được cho mọi người biết XML là gì và Ì
† các công nghệ đang được hỗ trợ trên XML j
| Chuong 3: M6 ta hé thong quan ly dich vu khach hang =M6 ta chi tiét hé /
i thống hỗ trợ dịch vụ khách hàng và đưa ra ác yêu cầu mà hệ thống sé j
, được xây dựng :
[ ,
i Chương 4: Phân tích ứng dụng - Phân tích chỉ tiết các yêu câu theo mô ï
„ hình UML (Unified Model Language) * & + | kk | † Chương 5: Thiễt kê và cài đặt ứng dụng i [ | , _ Chương 6: Kết luận và hướng phát triển — Tổng kết những kết quả đạt được | : y : * và mặt hạn chê của đê tài; đồng thời cũng đưa ra hướng phát triên cho hệ : „ _ thống sau nay : % & | x |
* Phân cuôi cùng là Tài liệu tham khảo và phụ lục : I, Do thời gian có hạn, kinh nghiệm phân tích, thiệt kê, cài đặt còn hạn chế;
i nên chắc chắn không tránh khỏi một số sai sót nhất định Rất mong nhận : ị được sự đóng góp ý kiến của quý Thầy Cô và bạn bè để chúng em hoàn :
Trang 6Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng MỤC LỤC Chương 1: MỞ ĐẦU °-s2s#€EEssEvsseEvssSEvstrvsserrsserrsssre 9 1.1 Giới thiệu ứng dụng - ¿+ + x*k#k#k£vEeksteeeeekekrkrkrrrree 9 1.2 Đối tượng và phạm vi của ứng đụng -¿-cc+czxsercrxee 10 5ñ; 4 10
` ốẻ ` 10
1.3 Mục tiêu cần đạt được và các cách tiếp cận bài tøán - 11 1.3.1 Mục tiêu cần đạt được ẤẾ -.-lằ ll
1.3.2 Các cách tiép cAn bai 0am .cesccseeplteecsssessssseeteesseesesseessssseeees 11
1.3.3 Vấn đề đặt ra cho hệ thống hỗ trợ địch vu khach hang 16
1.4 Hướng giải quyết bài tốn <2 TĐghỀ ào ccveeeerrkeirrrkrrrrrrreerrree 18 1.4.1 Về tốc độ thực hiện câu tfuy vấn ì -¿-ccc+ccvecrcrx 18 1.4.2 Vấn đề tìm kiếm thông tỉn -2¿+ze+cvxzrrrrerrrrrx 21
Chương 2: NGHIÊN CỨU CÔNG:'NGHỆ XML 5 25
2.1 Tổng quan về XML ) -22-©222¿+2EE22EEEEEeEEEEEECEEEEErrrrkerrrrkee 25 bên cố nh ›<‹.1 ÔÒỎ 25
2.1.2 Mục tiêu ra đời và lợi ích khi sử dụng XML 25
2.1.3 Một tài liệu XML trông như thế nào) 2-cs++‡ 27
2.1.4 Tạo lập một tài liệu XML 27
2.1.5 Những thành phần của một tài liệu XML 28 2.1.6 Một tài liệu XML hợp lệ 2¿-©2z++22+zevccvxerrrrrecree 29 ba 33 2.1.8 Nhận xét về XMIL .2-22¿+2CE+EetEEEEeCEEEEErrrrkrrrrrkrcree 34
2.2 Cách sử dụng một tài liệu XML - - 5s +s£+cse+xzxzeees+ 2.2.1 Doc va phan tich tai ligu XML
2.2.2 Định hướng qua tài liệu XML để rút trích dữ liệu: 37
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 72.2.3 Truy vấn dữ liệu XML sử dụng XPathDocument và XXPathNaVIAfOT - Gv HT HH ni 39 "Đổ ch 2.3 XML và Cơ sở đữ liệu sẻ 2.3.1 XML có phải là Cơ sở đữ liệu? - «5 c++xecerersre 45 2.3.2 Vai trò XML trong hệ thống hỗ trợ dịch vụ khách hàng 46 2.3.3 Mô hình lưu trữ trong hệ thống quản lý dịch vụ khách hàng u90 Ẽ 47 "“" Y 48 3.1 Đối tượng sử dụng -c“ẾẾ cẦN su c2vrnerkkrrrrrrrrerrrrrrrrer 48 3.2 Mô tả hệ thống quản lý dịch vụ khách hàng - 48 3.2.1 Phân hệ hỗ trợ khách hàng z-` -cc+£©2252ccecccvvsccczee 48 3.2.2 Phân hệ hỗ trợ hệ thống ( é 2¿©22¿©2+eevcvxeeerrrecree 49 3.3 Xác định yêu cầu chức năng hệ thống . - +: 51 3.3.1 Yêu cầu chite ndngnghigp V ccccccccssesscsseescssseessssesssssessesseess 51 3.3.2 Yéu cau chiromang hé th6ng ccccccsssessssssessssseesssseessssseesesseess 61 3.3.3 Yêu cau phi Chtte mang eccccssesssssssssssseesssssescssseecssssesesssessesseess 63 Churong 4: PHAN TICH ssssssssssscsssssscssssessssneecssnseessssecsssssccsssneeessnsecsseseees 64 4.1 Eược đồ USE-CA SE 222+++222E2++rttEEEEErrrrtrrrrrrrrrrrex 64
LU? 0-00 90
4.2.1 Đặc tả Use-Case Tìm kiếm FAQ -
4.2.2 Đặc tả Use-Case Đăng ký tài khoản 5s s<ssx+xsxe 67 4.2.3 Đặc tả Use-Case Tạo yêu cầu -: ccccccccrreerrrreccee 69
4.2.4 Đặc tả Use-Case Xem và hiệu chỉnh yêu cầu cccccccces 70
4.2.5 Đặc tả Use-Case Giải đáp yêu cầu -ccccccccrreccee 72 4.2.6 Đặc tả Use-Case Tìm kiếm yêu cau 7B
4.2.7 Dac ta Use-Case Quan ly yéu Sa 74
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 8Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
4.2.8 Đặc tả Use-Case Quản lý FAQ ccccccccrsecrrrreccee 76 Chương 5: THIẾT KẾ . 2-s°ssess£vsse©vsseevzserrsserrsssrrsse 79
5.1 Hiện thực hóa se-Case - ¿52252322322 *21E£E£EceEesereereererre 79
5.1.1 Use-Case Tìm kiếm FAQ, -22¿-©2czccrkecrrkerrrkerrrkcee 79 5.1.2 Use-Case Đăng ký tài khoản - - s+sskseeerrrsre 81 5.1.3 Use-Case Tao y6u CaU M6 .secscsssessssssesssssseesssseesesssesesssesessseess 83 5.1.4 Use-Case Giải quy6t y6U CaU eecccccssssssessssssessssseesesssesssssessesseess 85 5.1.5 Use-Case Xem và hiệu chinh y6u Cau .cscsssssssesssssesssssseseessees 87 5.1.6 Use-Case Tìm kiếm yêu cầu
5.1.7 Use-Case Quản lý yêu cẦu ếẾ( - TY ccccccccvecrrrreccee 5.1.8 Use-Case Quản lý FAQ e slỀ các ccvecccrrkerrrrkrrrrrrree 93 5.2 Thiết kế cơ sở dữ liệu €sse kcccc222vvvrrrrccvvvrrrrrrrrrrrrree 96 5.2.1 SO 7a 7© 96
5.2.2 Mơ hình quan hệ 97
5.2.3 Mô tả chỉ tiết các lớp đối tượng -c¿-©ccxze+ccrsccee 98
5.2.4 Mơ tả các ràng buộc toằn:vẹn - - - + cssxseerersrsee 102
5.3 Thiết kế cài đặf và triển khai c2cccccccvverrrrrrrrrrcree 105 5.3.1 Mô hình cài đặt . -2¿-©22+eee2EEEecEEEkerrrrkkrrrrrkrrrrrrree 105 5.3.2 Mơ hìnHi triển khai hệ thống 2 22 ©2z2+2+ze+czvzee 106 5.4 Thiết kế gïao diện 2 2++222+ESEEEEE 2212.2211211 107 5.4.1: Sơ đồ Tiên kết các màn hình -2 2¿©zz+cv+ze+rzrsee 108 5.4.2 Thiết kế chỉ tiết một số màn hình -2- ¿+ 109
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 121
6.1 Kết luận -22¿-©2+z+2EEEESEE111127111122711127111.22111 211122 6.2 Hướng phát triỂn 2 2+©++£©++++E++etExxttrxeerrxerrrreerrk
TÀI LIỆU THAM KHẢO
3:0009/e227.5 125
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 9Danh mục hình vẽ: Hình 1-1: Phạm vi hệ thống 2-2¿+2EE++£+EE+EetEEEEEretEkErrrrrrerrrrex 10 5i 062 ncr 00 n1 ẽ 12 Himh BEcicr 00 hố 13 Hình 1-4: Giải pháp 3 14 5i 06c: 00 1n 14 Hình 1-6: Giải pháp 5 -cccc¿++22222222v2crtEEEEEEEEEErrrrrrrrrrrrrrrerree 15 Himh B6sencr 801 T188 16
Hình 1-8: Mô hình truy vấn đữ liệu Ểt- -1Ă%-cc5ccccccccccvecrrres 17 Hình 1-9: Mô hình truy vấn đữ liệu có hỗ trợ KML `› . - 20 Hình 1-10: Mô hình xử lý tìm kiếm `Ề, -22222se+ccvxererrveerrrrrerrrres 21
Hình 1-11: Mô hình mô tả vai trò của XML¡, -2 -522255scccce2 24 Hình 2-1: Mô hình DOM
18580 07.8
Hình 5-2: Mô hình quan hệ cơ sở dữ liệu . 5+ 555 ++s>+£+ez*++> 97
Hình 5-3: Mô hình cài Ga % 0.0.0 ccccccccssssssseesssecsssssssneeesssesesssssseteeseecessssees 105
Hình 5-4: Mô hình triển khai hệ thống . 2- + sz++ze+ee 107 Hình 5-5: Sơ đồ liên kết cáế màn hình -£©sc+e+tcvvvccee 108
Danh mục các bảng:
Bảng 2-1: Danh sách các kiểu dữ liệu của lược đồ XML -.- 33 Bảng 4-1: Danh sách các ALCfOT xxx ngư 65 Bảng 4-2: Danh sách các se-(Cas§e . -¿- + + +5 St #vEsEsEeeeeevrereree 66 Bảng 5-1: Danh sách các đối tượng lưu trữ đữ liệu - + 98
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 10Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
Chương 1: MỞ ĐÀU
1.1 Giới thiệu ứng dụng
Hệ thống quản lý dịch vụ khách hàng được xây dựng với mục tiêu chủ yếu
là hỗ trợ cho khách hàng khi có nhu cầu tìm hiểu thông tin về sản phẩm và dịch vụ của doanh nghiệp Hệ thống hoạt động như sau:
Khi khách hàng có nhu cầu tìm kiếm các thông.fin liên quan đến sản phẩm va dịch vụ của công ty hay doanh nghiệp, khách hằng vào khu vực dịch vụ khách hàng (gọi là helpdesk) để tìm kiếm:thông tin trong các câu hỏi và câu
trả lời có sẵn (còn gọi là hé thong FAQ)
Trường hợp không tìm thấy thông tin cần thiết trong FAQ, khách hàng có thể gửi yêu cầu và yêu cầu(được giải đáp từ phía doanh nghiệp, công ty Khách hàng có thê gửi trực tiếp qua hệ thống website hỗ trợ khách hàng hoặc gửi email trực tiếp về địa chỉ email hỗ trợ của doanh nghiệp, khách hàng sẽ được giải đáp trong thời gïãñ nhanh nhất có thể
Nhân viêú phụ trách giải đáp yêu cầu của khách hàng sẽ xem xét yêu cầu và giải đáp chö khách hàng, nếu yêu cầu gửi không đúng phòng ban sẽ được nhân viên chuyên qua phòng ban phù hợp
Nội dung câu hỏi và trả lời của mỗi yêu cầu được nhân viên tuyên chọn, sang lọc dé cập nhật vào FAQ Như thế khi khách hàng cần thông tin tương tự thì có thể tìm kiếm ngay trong hệ thống FAQ một cách nhanh chóng và tiện lợi
Quản trị hệ thống theo dõi quá trình giải quyết yêu cầu của các nhân viên, đảm bảo cho các yêu cầu của khách hàng được hỗ trợ kịp thời
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 111.2 Đối tượng và phạm vi của ứng dụng 1.2.1 Đối tượng
Hệ thống quản lý địch vụ khách hàng (eSupport) được xây đựng hướng đến các đối tượng là các doanh nghiệp, công ty vừa và lớn trong cả nước song song đó là các khách hàng giao dịch với doanh nghiệp Do nhu cầu cạnh tranh các đoanh nghiệp cần phải phục vụ tốt khách hàng về các mặt hỗ trợ thông
tin, giai dap, vi thế các doanh nghiệp này cần có hệ thống hỗ trợ dịch vụ
khách hàng để kịp thời đáp ứng yêu cầu của khách hăng trong quá trình giao dịch với doanh nghiệp 1.2.2 Pham vi Môi trường: khách hàng, doanh nghiệp, 1 1 hoo t ' Roa
Đầu vào: Phân hệ hỗ trợ khách hàng ' Baur yêu
êu cầu, cầu được
tim kiém, t —N| giải quyết,
download, we ' Phân hệ hỗ trợ hệ thống | /| van de tim ' kiêm được,
' i
Hình 1-1: Pham vi hệ thống
Hệ thống được xây dựng để hỗ trợ, phục vụ khách hàng trong phạm vi
giữa doanh nghiệp và khách hàng xoay quanh các vấn đề về thông tin các sản
phẩm và dịch vụ của doanh nghiệp
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 12Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
1.3 Mục tiêu cần đạt được và các cách tiếp cận bài
toán
1.3.1 Mục tiêu cần đạt được 1.3.1.1 Yêu cầu chức năng
"Yêu cầu chức năng nghiệp vụ
Thực hiện đầy đủ các chức năng nghiệp vụ như tìm Kiếm yêu cầu, tạo yêu
cầu, giải quyết yêu cầu, tải tài liệu, tìm kiếm thông tin, v.va
"Yêu cầu chức năng hệ thống:
Thực hiện các chức năng tự động như: gởi câu trả lời cho khách hàng qua email, gởi thông báo qua email, thống kê, nhận yêu cầu của khách hàng qua
email, v.v Việc lưu trữ dữ liệu phải đạtchi phí tối thiểu và có sự ồn định
cao
1.3.1.2 Yêu cầu phi chức năng
Hệ thống hỗ trợ.địch vụ khách hàng làm việc hiệu quả, có thể giúp doanh
nghiệp giảm chỉ phí về thời gian và nhân lực, giúp doanh nghiệp giải đáp nhanh và chính xác khi khách hàng có yêu cầu, có thể hỗ trợ trực tuyến
(online), v.v
4.3.2 Các cách tiếp cận bài toán
Hệ thống hỗ trợ dịch vụ khách hàng không còn xa lạ với các doanh nghiệp trong cả nước vì tầm quan trọng và ích lợi của nó trong vấn dé giao dịch với
khách hàng Vì thế nhu cầu xây dựng một hệ thống phục vụ khách hàng cho
doanh nghiệp là cần thiết và tất yếu Nhưng khi bắt đầu xây dựng hệ thống,
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 13điều quan tâm đầu tiên của chúng ta là gì? Bất cứ hệ thống nào vấn đề quan
trọng đầu tiên cần được quan tâm là tổ chức tốt việc lưu trữ dữ liệu Nếu dữ liệu được tổ chức tốt thì hệ thống của chúng ta sẽ cải thiện về mọi mặt như tốc độ truy xuất, chỉ phí lưu trữ, thời gian cập nhật, v.v Như vậy, làm cách nào tổ chức tốt việc lưu trữ đữ liệu, nhất là ứng dụng của hệ thống dịch vụ khách
hàng chạy trong môi trường Internet, môi trường đa người dùng Ví dụ như khách hàng cần tìm kiếm những vấn đề về sản phẩm mà doanh nghiệp nào đó cung cấp, chúng ta lưu trữ dữ liệu như thế nào để cho việc tìm kiếm của khách hàng đạt hiệu quả là nhanh nhất Để giải quyết vấn đề này, một số giải pháp
cho vấn đề lưu trữ đữ liệu của hệ thống được đề nghị như sau: 1.3.2.1 Giải pháp 1 Theo giải pháp này, việc lưu trữ dữ liệu được tô chức theo mô hình sau: = CSDL Quan hé
Hinh 1-2: Giai phap 1
Ký hiệu: A_ Table hay A_ Database chỉ một đối tượng trong ngôn ngữ lập trình có thể giao tiếp với CSDL) quan hệ
1 Cơ sở đữ liệu
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 14Tim hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
Ưu điểm: Đây là mô hình đang được sử đụng rất phổ biến vì tận dụng được
những ưu điểm của hệ quản trị cơ sở dữ liệu
Khuyết điểm: Không linh động trong vấn đề trao đổi đữ liệu giữa các hệ
thống khác nhau đặc biệt là khi ứng dụng chạy trên web 1.3.2.2 Giải pháp 2 Theo giải pháp này, việc lưu trữ dữ liệu được tổ chức theo mô hình sau: Hình 1-3: Giải pháp 2 Ký hiệu: A XMLĐom chỉ đến một đối tượng XML có thể đọc và ghi trên tap tin XML
Ưu điểm: Không phụ thuộc vào bất cứ hệ quản trị nào, dễ thực hiện
Khuyết điểm: Việc thao tác truy vấn trên tập tin XML? con nhiéu hạn chế và vấn đề bảo mật không bằng hệ quản trị
1.3.2.3 Giải pháp 3
Theo giải pháp này, việc lưu trữ dữ liệu được tổ chức theo mô hình sau:
? Extensible Markup Language
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 15
Hình 1-4: Giải pháp 3
Ưu điểm: Tận dụng được cả hai cách lưu trữ.đó là trên tập tin và trên hệ
quản trị
Khuyết điểm: Không phải tập tin XML nào cũng có thể đọc/ghi bằng đối tượng Datatable vì có nhiều tập tin XML lưư'trữ phức tạp
1.3.2.4 Giải pháp 4
Theo giải pháp này, việc lưu trữ dữ liệu được tổ chức theo mô hình sau:
Hình 1-5: Giải pháp 4
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 16Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
Ưu điểm: Mô hình này nghiên về việc lưu trữ trên tập tin XML Và việc trao đổi giữa một đối tượng XMLDom và cơ sở đữ liệu quan hệ cũng dé dang
vì từ SQL Server 2000 trở lên đã hỗ trợ truy xuất trên tập tin XML
Khuyết điểm: Mặc dù từ SQL 2000 trở lên có hỗ trợ XML nhưng việc tao
ra tập tin XML vẫn còn bị lỗi do không thể tạo ra đúng cấu trúc mà người dùng mong đợi nếu như cấu trúc XML đó phức tạp 1.3.2.5 Giải pháp 5 Theo giải pháp này, việc lưu trữ dữ liệu được tổ chứ€ theo mô hình sau: Đọc Ghi ili Đọc Ghi Đọc Ghi — Hình 1-6: Giai phap 5
Ưu điển: Việc đọc/ghi trên từng đối tượng đã được tách riêng biệt ra dé
mỗi đối tượng chỉ làm đúng nhiệm vụ của đối tượng đó nên thuận tiện trong
vấn đề xử lý
Khuyết điểm: Vẫn đề là làm cách nào đề thực hiện việc chuyên đổi từ đối tượng XMLDom thành đối tượng Datatable và ngược lại
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 171.3.2.6 Giải pháp 6 Theo giải pháp này, việc lưu trữ đữ liệu được tổ chức theo mô hình sau: Đọc Hình 1-7: Giải pháp 6
Ưu điển: Việc trao đổi thông tin giữa các đốifượng rất linh động, vì một
đối tượng XMLDom có thể đọc/ghi trực tiếp đến CSDL quan hệ hoặc có thể
thông qua một Datatable
Khuyết điểm: Do có nhiều cách đọc/ghi nên phức tạp, khó quản lý
> Kết luận: Mỗi giải pháp có ưu điểm và khuyết điểm khác nhau Việc chọn lựa mô hình nào sẽ-tùy thứộc vào nhu cầu của ứng đụng của chúng ta Nghĩa là ứng dụng của chúng ta sẽ quan tam van dé nao? Van dé nao là vấn đề được quan tam hang daw thi lúc đó chúng ta sẽ lựa chọn giải pháp lưu trữ dữ liệu cho phù hợp
1.3.3 Vấn đề đặt ra cho hệ thống hỗ trợ dịch vụ khách
hàng
Vấn đề quan tâm hàng đầu của hệ thống là làm sao tăng tốc độ thực hiện
các thao tác truy vấn trên cơ sở dữ liệu quan hệ Ví dụ như khách hàng cần
tìm kiếm thông tin trong hệ thống FAQ, khách hàng sẽ nhập vào câu hỏi cần
tìm kiếm, sau đó chương trình sẽ thực hiện kết nối với SQL đề thực hiện câu
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 18Tim hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
truy vấn trả về thông tin tìm kiếm được cho khách hàng Mô hình thực hiện
được mô tả như sau: Kết quả trả về cho khách hàng Khách hàng nhập câu hỏi tìm kiếm Kết quả thực hiện truy vấn Câu truy vấn Kết nối với SQL
Hình 1-§: Mơ hình truy vấn đữ liệu
Như vậy, nếu có nhiều Khách hàng có nhu cầu tìm kiếm thì mỗi khách
hàng đều phải kết hối đến SQL Server để lấy dữ liệu Và sẽ có trường hợp nhiều khách hăng đều cùng truy vấn đến cùng một đữ liệu, khi đó thời gian
thực hiện.câu truy vấn đề trả về kết quả sẽ rất chậm do phải thực hiện việc
điều khiển đồng thoi, phan bé tai nguyên để thực hiện câu truy van tai CSDL Một vấn đề khác đặt ra cho hệ thống là không chỉ tìm kiếm được vấn đề dựa trên câu hỏi mà phải tìm kiếm được tất cả những vấn đề có liên quan đến nội dung câu hỏi Nghĩa là nếu khách hàng nhập vào câu hỏi: “các vấn đề liên quan đến mạng và email” thì hệ thống sẽ phải trả về tất cả những vấn đề có liên quan đến từ khóa “mạng” và “email” Như vậy nếu chỉ đơn thuần tổ chức trên CSDL quan hệ thì không thể giải quyết được vấn đề này vì với cách thực
hiện trên CSDL quan hệ, mà cụ thể là SQL Server 2000, nó sẽ tìm đúng cụm
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 19từ “các vấn đề liên quan đến mạng và email” và nếu trong CSDL không có đúng cụm từ này thì kết quả trả về là không có, trong khi mong đợi của người dùng là trả ra những vấn đề có liên quan đến “mạng” và “email”
Tóm lại: Chúng ta có hai vấn đề cần giải quyết khi lưu trữ đữ liệu trên
SQL Server
— Tốc độ thực hiện câu truy van
—_ Việc tìm kiếm thông tin hiệu quả
Làm sao giải quyết được bài toán đặt ra cho hệ thống khi chỉ lưu trữ trên
CSDL quan hệ
1.4 Hướng giải quyết bài toán
Chúng ta thấy được việc sử dụng giải pháp 1 để lưu trữ dữ liệu sẽ không giải quyết được những vấn đề đặt ra cho bài toán Và như vậy cần thiết phải
sử dụng mô hình khác để hệ thông thực hiện khả thi hơn
Sau đây, chúng ta sẽ xem qua cách hệ thống thực hiện để giải quyết lần lượt các vấn đề trên, và từ đó chọn ra giải pháp lưu trữ thích hợp nhất
1.4.1 Về tốc độ thực hiện câu truy vấn
Nhu cầu khách hàng tìm kiếm các vấn đề cần giải đáp là thường xuyên xảy ra và với tần suất rất cao nên việc lưu trữ trong SQL Server sẽ không khả thi
Nên chúng ta sẽ sử dụng thêm một cách lưu trữ nữa đó là trên tập tin mà cụ
thể là trên tập tin XML Giải pháp thực hiện cụ thể như sau:
Giả sử trong SQL Server ta lưu trữ dữ liệu của bảng Câu hỏi-Trả Lời
(FAQ) như sau:
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 20Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
FAQ ID FAQ QUESTION FAQ ANSWER FAQ TOP ID Cách nhận biết người nhận Ban làm theo các
FAQ00001 ' thư đã đọc thư của mình bước sau su TOP001 hay chưa? FAQ00002 Hoi về phân mêm gõ tiêng Unikey là một phân TOP002 Việt? mém FAQ00003 FAQ00004 FAQ000020
Bằng việc sử dụng các công cụ hỗ trợ trong.môi trường lập trinh Visual
Studio.NET, ta sẽ tạo được tập tin FAQ.xmI từ đữ liệu được lưu trữ trong
bảng FAQ có nội dung và cấu trúc như sau: <? xml version="1.0"?> <Danh_sach_FAQ> <FAQ FAQ_ID= “#AQ00001” <FAOQ Cau4Hol> Cách nhận biết người nhận thư đã đọc thư của mình hay chưa? </FAOÉCau Hoi> <EAO_Cau TFà Loi>
Bạn làm theo các bước sau, để khi gửi thư cho mọi người trên giao điện Outlook Express sẽ có phản hồi lại là họ đã đọc thư
</FAO Cau Tra Loi>
<FAQ_Ngay_Cap_Nhat> 10-7-2005 </FAO Ngay_Cap_Nhat>
<FAO Ma Chu De> TOP001 </FAO Ma Chu De> <FAO So Tan Xem> 10 </FAO So Lan Xem>
<FAO Ma Tai Lieu Tai Ve> DOC001 </EAO Ma Tai Lieu Tai Ve> </FAQ> <FAQ FAQ_ID= “FAQO0002” <FAQ_Cau_Hoi> </FAQ_Cau_Hoi>
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 21
<FAO Cau Tra Loi> </FAO Cau Tra Loi> <FAO Ngay Cap Nhat> </FAO Ngay Cap_Nhat>
</FAQ>
</Danh_sach_FAQ>
Như vậy, mỗi khi khách hàng có nhu cầu tìm kiếm trong hệ thống FAQ,
thì không cần phải thực hiện kết nối đến SQL Server, mà chỉ cần mở tập tin
FAQ.xml và thực hiện việc truy vấn trên tập tin XML,`cuối cùng trả về kết
quả cho khách hàng Như vậy, việc thực hiện trên tập tin sẽ nhanh hơn rat nhiều so với cơ sở đữ liệu (mở kết nối, tìm kiếm dữ liệu và thực hiện truy vấn
trên dữ liệu tìm được để cuối cùng cho ra kết quả như mong muốn =>truy vấn chậm) Mô hình minh họa như sau: Kết quả trả về cho khách hàng Khách hàng nhập ˆ câu hỏi tìm kiếm Câu hỏi Câu truy vấn Kết quả thực hiện truy vấn
Chuyển đổi dữ liệu
Hình 1-9: Mô hình truy vấn đữ liệu có hỗ trợ XML
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 22Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
1.4.2 Vấn đề tìm kiếm thông tin
Muốn kết quả tìm kiếm đúng như mong muốn người dùng thì phải dựa vào ngữ nghĩa của nội dung câu hỏi mà người dùng nhập vào Để làm được điều này thì phải dựa vào từ điển mới biết được chính xác ngữ nghĩa của câu
Theo đó, dựa trên tập tín FAQ.xml ở trên, chương trình sẽ trích từ dựa trên
từ điển bằng phương pháp LRMM (Left Right Maximum Matching)[4] Sau đây là mô hình minh họa cho quá trình xử lý
Yêu cầu tim kiếm loại bỏ từ thừa Tríchtừvà —=— =| XML Ì Bang dữ liệu XML ===>! Taochimuc | ==> XML Trích từ và loại bỏ từ thừa Hình 1-10: Mô hình xử lý tìm kiếm
Theo phương pháp LRMM, để phân đoạn từ tiếng Việt trong một ngữ/câu,
ta đi từ trái sang phải và chọn từ có nhiều âm tiết nhất mà có mặt trong từ
điển, rồi cứ tiếp tục cho từ kế tiếp cho đến hết câu Với cách này, ta đễ đàng tách được chính xác các ngữ câu như: “hợp tác xã | mua bán”; “thành lập | nước | Việt Nam | dân chủ | cộng hòa” Tuy nhiên, phương pháp này sẽ tách từ sai trong các trường hợp như: “học sinh | học sinh | học”; “một | ông | quan tài | giỏi” Mặc đù vậy, phương pháp này cũng tách từ chính xác đến 95%
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 23(theo giáo trình Xử lý ngôn ngữ tự nhiên) Vì vậy nhóm chúng em quyết định chọn phương pháp này để sử dụng trong việc trích từ này mặc đù nó chưa phải là phương pháp tối ưu nhất
Trở lại vấn đề trích từ cho tập tin FAQ.xml, bằng phương pháp LRMM, chúng ta sẽ trích được các từ trong tập tin FAQ.xml và lưu thành một tập tin FAQ Word.xml véi cấu trúc như sau: <? xml version="1.0"?> <WORDs> <WORD Name="internet"> <FAQ FAQ_ID="FAQ00003" /> <FAQ FAQ_ID="FAQ00005" /> <FAQ FAQ_ID="FAQ00011" /> <FAQ FAQ_ID="FAQ00012" /> <FAQ FAQ_ID="FAQ00013" /> <FAQ FAQ _ID="FAQ00017" /> </WORD> <WORD Name="yêu cầu"> <FAQ FAQ_ID="FAQ00008" /> <FAQ FAQ TB8="RAO00019" /> </WORD> </WORDs>
Chủ thích: Danh sách các thẻ <FAQ> </FAQ> trong mỗi thẻ
<WORD> </WORDS> cho biết ứng với từ này thì có những tài liệu nào liên quan đến nó
Tập tin FAQ_Word.xml này sau đó sẽ qua một khâu nữa đó là loại bỏ những từ thừa gọi là kỹ thuật “stoplist” Chúng ta sẽ duyệt qua các từ trong tập tin FAQ_ Word.xml và so sánh với tập tin Stoplist.xml (đây là tập tin lưu
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 24Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
những từ thừa), sau đó tiến hành loại bỏ những từ không có nghĩa để cuối cùng được một tập tin FaqDaLoaiStopList.xml với kích thước tập tin giảm đáng kể so với tập tin FAQ_ Word.xml do đã bỏ đi những từ không có nghĩa
Đây sẽ là tập tin chúng ta mong muốn để thực hiện việc so khớp khi khách hàng nhập vào một câu truy vấn
Như vậy, mỗi khi khách hàng nhập vào nội dung câu hỏi cần tìm kiếm, nội dung câu hỏi này sẽ được phân đoạn thành những cụm từ và sẽ loại bỏ những từ thừa, chỉ giữ lại những từ có nghĩa Và những cụm từ này sẽ được so khớp với tập tin FaqDaLoaiStopList.xml dé tra về kết quả tếuy vẫn cho người dùng (xem hình 1.10) Với cách thực hiện này, tất cả những vấn đề có liên quan đến nội đung câu hỏi sẽ được trả về cho người dùñg và tất:cả những điều này đều
thực hiện trên tập tin XML nên sẽ truy vấn rất nhanh Như vậy vấn đề đặt ra
đã được giải quyết
Và bây giờ thì chúng ta đã biết được hệ thống quản lý dịch vụ khách hàng sẽ chọn giải pháp nào để lưu trữ đữ-liệu Đó là giải pháp 5 vì theo như giải pháp này, việc lưu trữ đữ liệu sẽ sử dụng cả trên tập tin XML và trên cơ sở dữ liệu quan hệ
Mặt khác; việc chọn giải pháp 5 này là do nhu cầu cần thiết phải sử dụng thêm XML để hỗ trợ trong vấn đề lưu trữ và truy xuất trên hệ thống Đó là khi dữ liệu được lưu thông trên môi trường web thì vấn đề trao đổi thông tin giữa
các hệ thống khác nhau là yếu tố cần được xem xét Do XML giải quyết rất
tốt trong van dé này nên cần thiết sử dụng thêm XML Sau đây là mô hình để thấy được vai trò của XML:
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 25
Hình 1-11: Mô hình mô tả vaitrò của XML
22 Két luận: Trên đây-là mộf cách nhìn tổng quan về cách thực hiện cũng
như là vấn đề lưu trữ của hệ thống hỗ trợ dịch vụ khách hàng Như vậy, chúng ta muốn tạo lập được những tài liệu XML như mong muốn và thực hiện truy
vấn trên tập tin này thì điều tối thiểu là phải biết được XML là gì cũng như
các thao tác thực hiện truy vấn trên tập tin XML như thế nào? Vấn đề như thế
nao, chúng ta sẽ xem tiếp qua chương sau
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 26Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
Chương 2: NGHIÊN CỨU CÔNG NGHỆ XML
2.1 Tổng quan về XML
2.1.1 Giới thiệu
XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến trúc gần giống với HTML nhưng XML nhanh chóng trở thành một
chuẩn phổ biến trong việc chuyên đổi thông tín qua các trang web sử dụng
giao thức HTTP Trong khi HTML là ngôn ngữ chủ yếu về hiên thị dữ liệu thì
XML lai dang phat triển mạnh về việc“€luyễn tải, trao đổi và thao tác đữ liệu
bằng XML XML đưa ra một định dạng chuẩn cho cấu trúc của dữ liệu hoặc
thông tin bằng việc tự định nghĩa định dạng của tài liệu Bằng cách này, dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lý Vì vậy XML ra đời sẽ đáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong vấn đề trao đổi và xử lý thông tin:
2.1.2 Mục tiêu.ra đời và loi ich khi sw dung XML 2.1.2.1 Mục tiêu ra đời của XML
Ngày nay, XML đang trở thành một chuẩn chung cho việc trao đổi dữ liệu cho những ứng dụng chạy trên môi trường Internet Vì XML cho phép người dùng có thể tự định nghĩa các thẻ (tag) - những thẻ này làm cho tài liệu XML
đa dạng hơn những ngôn ngữ thông thường như HTML Như vậy mục tiêu dat ra cho su ra doi XML 1a gi? Do 1a, đầu tiên nó sẽ tương thích với SGML,
và dễ dàng viết những chương trình để xử lý cho những tài liệu XML Kế
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 27tiếp, những tài liệu XML rõ ràng, đễ đọc, dé dang tạo lập Và điều quan trọng là nó được hỗ trợ trong nhiều ứng đụng Nói tóm lại, XML đễ đàng chia sẻ thông tin qua những định dạng khác nhau thông qua môi trường web XML
được thiết kế dành cho mọi người, được mọi người sử dụng
2.1.2.2 Lợi ích khi sử dụng XML
Trong quá trình trưởng thành và phát triển, XML đã đối mặt và đương đầu với nhiều thử thách trong việc thuyết phục các nhà lập trình rằng XML là sự lựa chọn hàng đầu vì nó dễ đàng để hiểu, đễ dàng để đọc, và dễ đàng thực
hiện Sau đây là một số lợi ích khi sử dụng XML
= XML cé thé tách rời đữ liệu Sử dụng XML, đữ liệu được chứa trong
các tập tin XML riêng biệt
= XML cé thể mô tả thông tin của những đối tượng phức tạp mà cơ sở đữ liệu quan hệ không thé giải quyết được
= XML cé thé ding dé chuyén đổi dữ liệu giữa các hệ thống không tương thích “ XML dùng để chỉiãsế dữ liệu với những tập tin văn bản đơn giản dễ hiểu " XML cũng được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu của chúng ta hữu ích hơn
Như vậy, chúng ta đã biết được lợi ích và vai trò của XML trong vấn đề
lưu trữ và trao đôi thông tin Vấn đề bây giờ là nếu chúng ta muốn có một tài liệu XML thì phải làm như thế nào?
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 28Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
2.1.3 Một tài liệu XML trông như thế nào?
Mục đích của việc tổ chức thông tin là để con người có thể đọc và hiểu được những gì mà nó muốn truyền tải Chúng ta xem một tap tin văn bản sau đây:
F10 Shimano Calcutta 47.76 F20 Bantam Lexica 49.99
Theo cách tô chức thông tin cua tập tin trên, chúng ta thật khó để hiểu tập
tin này muốn nói lên điều gì Bây giờ, chúng ta tổ chức fập tin trên theo định
dạng một tài liệu XML một cách đơn giản nhất <?xml version="1.0"?> <Catalog> <Product> <ProductID>F10</ProductID> <ProductName>Shimano Calcutta </ProductName> <ListPrice>47.76</ListPrice> </Product> <Product> <ProductID>F20</ProductID> <ProductName>Bantam Lexica</ProductName> <ListPrice>49.99</ListPrice> </Product> </Catalog>
Nhu vay, bang cách sử dụng định dạng XML, người dùng có thể hiểu và
biết được tập tin trên đang muốn truyền tải nội đung gì
2.1.4 Tạo lập một tài liệu XML
Chúng ta có thể sử đụng trình soạn thảo đơn giản nhất là Notepad dé soạn thảo tài liệu XML, nhưng phải tuân thủ theo qui tắc sau:
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 29<root> <child> <subchild> .</subchild> </child> </root>
Theo định dạng trên, chúng ta thấy tuy tài liệu XML rất đơn giản nhưng qui định cũng rất nghiêm ngặt, có nghĩa là các tài liệu XML đều xuất phát từ nút gốc (root), và mỗi phần tử phải có thẻ đóng và thẻ mổ “< ./>”
2.1.5 Những thành phần của một tài liệu XML
"_ Khai báo: Mỗi một tài liệu XML có một chỉ thị khai báo <? xml version="1.0"2> Định nghĩa tài liệu XML tuân theo chuẩn của W3C và đây là phiên bản “1.0” "Chú thích: được khai báo như sau: <! chú thích >
"_ Phần tử (Elemenfs): Một tài liệu XML được cấu thành từ những phần tử Một phần tử có thẻ mở và thẻ đóng Giữa thẻ mở và thẻ đóng là nội dung
của phần tử đó Phần tử có thể chứa dữ liệu hoặc có thể lồng vào một phần
tử khác
“_ Phần tử gốc (root): Trong tài liệu XML, chỉ có một phần tử gốc, và phan tử này sẽ chứa tất cả những phần tử của tài liệu XML do chúng ta tạo ra Theo ví dụ trên, ta thấy chỉ có một phần tử “Catalog”
“_ Thuộc tinh (Attributes): Như đã trình bày ở trên, một phần tử có thể chứa
dữ liệu hoặc chứa phần tử khác hoặc cả hai Bên cạnh đó, phần tử có thể
rỗng, khi đó nó có thể chứa thuộc tính Một thuộc tính chỉ là một sự lựa
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 30Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
chọn đề gắn dữ liệu đến phần tử Một thuộc tính đặt trong thẻ mở của phần tử và chỉ ra giá trị của nó bằng cách sử dụng cặp “name=value” <?xml version="1.0"?> <Catalog> <Product Type="Spinning Reel" SupplierId="5"> <ProductID>F10</ProductID> <ProductName>Shimano Calcutta </ProductName> <ListPrice>47.76</ListPrice> </Product> <Product Type ="Baitcasting Reel" SupplierId="3"> <ProductID>F20</ProductID> <ProductName>Bantam Lexica</ProductName> <ListPrice>49.99</ListPrice> </Product> </Catalog> 2.1.6 Một tài liệu XML-hợp lệ
Như chúng ta đã đề €ập ở trên, một tài liệu XML hợp khuôn dạng là yếu tố
đầu tiên khi tạo lập tài liệu Hợp khuôn dạng có nghĩa là mỗi tài liệu chỉ có
một nút gốc, mỗi phần tử phải có thẻ mở và thẻ đóng, và phải lồng nhau chính xác, và cuối cùng là tên thuộc tính chỉ xuất hiện một lần trong thẻ mở Nhưng một tài liệu XML hợp khuôn dạng không có nghĩa là nó hợp lệ Muốn kiếm
tra sự hợp lệ của một tài liệu XML ta phải dựa vào DTD (Document Type
Definition) hoac Schema XML
2.1.6.1 DTD (Document Type Definition)
DTD va Schema là hai cách khác nhau để qui định những luật về nội dung
của một tài liệu XML Tuy nhiên DTD có một vài hạn chế Đầu tiên, tài liệu DTD không sử dụng định dạng XML, nghĩa là bản thân DTD không phải là
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 31một tài liệu XML Điều thứ hai là kiểu dữ liệu có sẵn dùng để định nghĩa nội
dung của một thuộc tính hoặc một phần tử thì rất giới hạn trong DTD Điều
thứ ba là DTD không có khả năng mở rộng và không hỗ trợ namespace Cuối cùng là do không viết theo định đạng XML nên DTD khó viết và khó hiểu Vì
vậy, việc sử dụng DTD để kiểm tra sự hợp lệ của một tài liệu XML là không
khả thi Chúng ta cần có một sự lựa chọn khác khả thi hơn để kiếm tra sự hợp lệ của tài liệu XML Đó là chúng ta sử dụng lược đồ XML - Schema XML
Definition (XSD)
2.1.6.2 Luge dé XML (Schema XML) 2.1.6.2.1 Định nghĩa lược đồ XML
Một lược đồ đơn giản chỉ là một tập những luật được định nghĩa lại dé mô tả nội dung dữ liệu của một tài liệu XML Nó tương tự như một định nghĩa cấu trúc bảng trong cơ sở dữ liệu quan hệ: Trong lược đồ XML, chúng ta định
nghĩa một tài liệu XML, những phần.tử của nó, những kiểu dữ liệu của phần tử và những thuộc tính liên quan, và điều quan trọng nhất là mối quan hệ “cha-con” giữa những phần tử Chúng ta có thể tạo lược đồ trong nhiều cách khác nhau Cách đơn giản nhất là sử dụng Notepad Sau đây là một ví đụ một lược đồ XML <xsd:schema id="Catalog" targetNamespace="http://tempuri.org/Catalogl.xsd" xmlns="http://tempuri.org/Catalogl.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn: schemas-microsoft-com: xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xsd:element name="Catalog" msdata:IsDataSet="true"
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 32Tim hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng msdata:EnforceConstraints="False"> <xsd: complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="Product"> <xsd:complexType> <xsd: sequence> <xsd:element name="ProductID" type="xsd: string" minOccurs="0" /> <xsd:element name="ProductName" type="xsd: string" minOccurs="0" /> <xsd:element name="ListPrice" type="xsd: string" minOccurs="0" /> </xsd:sequence> </xsd: complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd: schema>
2.1.6.2.2 Các kiểu dữ liệu trong lược đồ XML
Khi tập tin XML hoạt động như một cơ sở dữ liệu, và XSL, XPath được sử
dụng để truy vấn trên tập tin XML giống như một số ngôn ngữ truy vấn trong SQL, thì lúc này chúng ta cần biết được vị trí của từng phần tử trong tập tin XML được khai báo ở đâu và với kiểu đữ liệu như thé nao Vì trong bat kỳ cơ
sở dữ liệu quan hệ nào, vi dụ như SQL Server hoặc Oracle, tất cả những cột
đều được định nghĩa kiểu dữ liệu, và vì vậy thật sự cần thiết phải có kiểu dit liệu trong lược đồ XML
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 33Có hai loại kiểu dữ liệu trong lược đồ XML đó là kiểu dữ liệu cơ bản và kiểu dữ liệu mở rộng Kiểu dữ liệu cơ bản là kiểu dữ liệu không bắt nguồn từ
kiểu đữ liệu nào ví dụ như kiểu dữ liệu float Kiểu đữ liệu mở rộng dựa trên những kiểu đữ liệu khác ví dụ như kiểu infeger dựa trên kiểu đecimal
Kiểu đữ liệu cơ bản được định nghĩa cho mục đích của lược đồ XML thì
không nhất thiết phải giống với một số cơ sở dữ liệu khác Sau đây là danh
sách các kiểu đữ liệu của lược đồ XML
Kiểu dữ liệu cơ bản Kiểu dữ liệu mở rộng Kiểu ràng buộc
String normalizedString length Boolean Token minLength Decimal Language maxLength Float NMTOKEN pattern Double NMTOKENS enumeration dateTime NCName maxinclusive Time ID maxExclusive Date IDREF minExclusive base64Binary negativelnteger
gYearMonth IDREFS minlnclusive
gMonthDay ENTITY totalDigits GMonth Integer GDay ENTITIES fractionDigits long int short byte
SVTH: Nguyễn Thi Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 34Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng nonNegativelnteger unsignedLong unsignedint unsignedShort unsignedByte positivelnteger Bảng 2-1: Danh sách các kiểu đữ liệu của lược đồ XML 2.1.7 XPath
Qua phần trình bày trên, chúng ta biết được.cấu trúc và cú pháp của XML tương đối đơn giản Bước tiếp theo là tìm hiểu cách nào để xử lý một tài liệu
XML
Nhu vay để xử lý một tài liệu XML, chương trình ứng dụng phải có cách
di chuyên bên trong tài liệu để lẫy ra giá trị của các phần tử (Elements) hay thuộc tính (Attributes) Do đó ngôn ngữ XML Path được ra đời, mà chúng ta gọi tat la XPath XPath déng mét vai trò quan trọng trong việc truy vấn đữ liệu cho các chương trình ứng dụng vì nó cho phép ta lựa chọn hay sàng lọc ra những phần tử nào mình muốn để trao đổi hay hiền thị
Nếu khi làm việc với cơ sở đữ liệu ta đùng các phát biểu SQL như SELECT FROM table_name WHERE dé trich ra mé6t số mẫu tin từ một
bảng, thì khi làm việc với tập tin XML, XPath cho ta những biểu thức
(expressions) về điều kién (criteria) giống như mệnh đề WHERE trong SQL
XPath là một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML, cũng giống như SQL là một chuẩn để làm việc với cơ sở đữ liệu Một biểu thức
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 35XPath có thể chỉ ra vị trí và mẫu nào đề kết hợp Chúng ta có thể áp dụng toán ttr boolean, ham string, va toan tit sé học trong biếu thức XPath để xây dựng câu truy vấn phức tạp trên tài liệu XML XPath cũng cung cấp một số hàm về số như tính tổng, hàm làm tròn (round), v.v
2.1.8 Nhận xét về XML
XML được xây dựng như là một chuẩn cho việc trình bày và trao đổi dữ liệu trên web Tập đoàn W3C” đã xây dựng chuẩn XML và những công nghệ liên quan bao gồm XML DOM, XPath, XSL, và XML Schema Trong đó
XML DOM được sử dụng để tạo, thay đổi, và duyệt qua tài liệu XML XPath là ngôn ngữ dùng dé truy vấn trên tài liệu XML XSE dùng để chuyên đổi tài liệu XML từ dạng này sang dạng khác XML.Schema định nghĩa cấu trúc và kiểu di liệu cho những nút trong mộtfài liệu XML Tắt cả những công nghệ này đã tạo nên sức mạnh cho XML Vì thế, XML ngày nay đang được sử dụng rất phổ biến và tương lai sẽ là một chuẩn duy nhất được dùng trên web
2.2 Cách sử dụng một tài liệu XML
Khi chúng ta đã:có một tài liệu XML, chúng ta sẽ tự hỏi: sử dụng nó như
thé nào và làm thế nào đề truy cập đến một tập tin XML Sau đây, là một số kỹ thuật được sử dụng trong mội trường Visual Studio.NET để làm việc với tap tin XML
3 World Wide Web Consortium
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 36Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
2.2.1 Đọc và phân tích tài liệu XML
2.2.1.1 Sử dụng lớp XMLTextReader
Lớp XMLTextReader cung cấp một cursor được sử dụng để lấy đữ liệu từ
một tài liệu XML Chúng ta khai báo như sau:
XmlTextReader myRdr =
new Xm1TextReader (Server.MapPath ("catalog2 xm1") ) ;
Khi một thể hiện được tạo ra, con trỏ cursor sẽ được đặt ở đầu tài liệu
Chúng ta có thể sử dụng phương thức #ead() đề lấy.‹ñhững phần dữ liệu một cách tuần tự Mỗi phần đữ liệu tương tự nhu méf nut trong cay XML Thuộc tinh NodeType sẽ lay kiểu của phần dữ liệu, thuộc tính /zme sẽ lẫy tên của
nut, va Value sẽ lay gia tri cua nut Vi thế, khi một phần đữ liệu được đọc, chúng ta có thé sử dụng câu lệnh sau đề hiện:thị tên, giá trị và kiểu của nút
Response.Write (myRdr NodeType.ToString ()
+" " + myRdr.Name + ":" + myRdr.Value);
Nếu muốn kiểm trá nút đó có thuộc tính hay không, chúng ta có thể sử dụng phương thức`H2s4#ibures Nếu giá trị trả về của phương thức HasAfribufes làrue, chúng ta áp dụng phương thức MoveToAfribufe(i) dé lặp qua các thuộc tính của nút if (myRdr.HasAttributes) { for( int i = 0; i< myRdr.AttributeCount-1;i++) { myRdr.MoveToAttribute (1); Response.Write (myRdr.NodeType.ToString()+":"+
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 37myRdr.Name + ": " + myRdr.Value + "</br>");
}
myRdr MoveToElement () ;
2.2.1.2 Sử dụng mô hình DOM
Bên cạnh XMLTextReader thì mô trường Visual Studio.NET cũng hỗ trợ mô hình DOM (Document Object Module) để đọc và trình bày nội dung của một tập tin XML Việc sử dụng mô hình DOM sẽ thônế qua một số đối tượng
như XMLDocwment, XMLDatftaDocument Khi một XMLDocument được tạo ra, nó tô chức nội dung của một tập tin XML thành một cây Trong khi đối tượng XMLTextReader cung cấp một cúrsor:định vị theo một hướng, thì
XMLDocumenf cung cấp việc truy xúất nhanh và trực tiếp đến một nút Tuy nhiên, việc sử đụng mô hình DOM rấttốn bộ nhớ đề lưu trữ thành một cây, và
thật sự sẽ khó khăn khi tài liệu XML có kích thước lớn
Có nhiều cách khác nhau để tạo một đối tuong XMLDocument Sau day
chúng ta sử dụng d6i tuong XML TextReader dé tạo một XMLDocument
private void Page Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
XmlDocument myDoc = new XmlDocument () ; XmlTextReader myRdr = new
XmlTextReader (Server.MapPath ("Catalog2.xml1")); myDoc Load (myRdr) ;
Session("sessionDoc") = myDoc;
//khi cây được tạo ra, chúng ta có thể hiển thị lênlistbox
//với thuộc tính InnerText của những node ProductName int i=0;
for (i=0; i<myDoc.DocumentElement.ChildNodes.Count-1; i++)
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 38Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng { istProducts.Items.Add (myDoc.DocumentElement ChildNodes [i] ChildNodes[i].InnerText) ; } myRdr.Close(); 2.2.2 Định hướng qua tài liệu XML để rút trích dữ liệu:
2.2.2.1 Sir dung lop XMLTextReader
Trong phan trên, chúng ta đã biết cách để đọc vào một tài liệu XML, phần này chúng ta sẽ định hướng qua tài liệu XML và chỉ lấy những đữ liệu nào cần thiết cho ứng dụng của mình Ví dụ như nếu nút đó là ProdwctName
chúng ta sẽ đọc và hiển thị thông tin trên một listbox, cụ thể như sau: while (myRdr.Read()) { if (Xm1NoteType.Element) { if (myRdr.Name="ProductName") { myRdr Read () ; 1stProducts Ttems Add (myRdr ReadString) ; } myRdr.Close();
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 392.2.2.2 Sử dụng mô hình DOM
Một cây được tạo thành từ nhiều nút Và một nút cũng là một cây chứa
những nút khác Nút lá thì không có nút con, vì thế nut nay ding dé hiển thị
đữ liệu văn bản
Lớp XmlDataDocument ké thiva từ lớp XmlDocumemt, vì thế nó cũng có một số phương thức nhu l6p XmlDocument Điều thú vị nhất của XmIDafaDocumenf là nó cung cấp hai cách nhìn trên cùng một đữ liệu đó là
XML view và relational view
XmlDataDocument cé mét thudc tinh tén 1a DataSet, thong qua DataSet, XmlIDafaDocumenf trình bày dữ liệu như một hoặc nhiều bảng (DataTable)
có quan hệ hoặc không có quan hệ Khi chúng ta sử dụng phương thức Loađ()
để tải một đối tuong XmlDataDocument, ching ta cd thể xem nó như một
cây hoặc như một bảng (hoặc nhiều bảng) Sau đây là hình minh hoạ cho hai
cách nhìn về một tài liệu XME khi sử dụng XmIDafaDocument mm trong CSDL 5 Hình 2-1: Mô hình DOM
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư
Trang 40Tìm hiểu công nghệ XML và xây dựng hệ thống quản lý dịch vụ khách hàng
2.2.3 Truy vấn dữ liệu XML sử dụng XPathDocument và XPathNavigator
Việc sử dụng lớp XimlDocument và XmlDafaDocument đễ xử lý tài liệu
XML cũng có một vài hạn chế Đầu tiên, toàn bộ tài liệu phải được lưu trong cache Thêm vào đó, việc định hướng thông qua một cây sẽ gặp nhiều khó
khăn, và định hướng thông qua những view quan hệ cũng không thuận tiện Để khắc phục vấn đề này, VS.NET cung cấp lép XPathDocument va
XPathNavigator
Lớp XPathDocumenf cho phép chúng ta xử lý dữ liệu XML mà không phải tải lên toàn bộ cây Và XPafh/Navigaror sử dụng đề thao tác trên dữ liệu của XPathDocumeni Nó cũng được sử đụng để thao tac trén XmlDocument,
và XmlDataDocument N6 hé tro kỹ thuật định hướng cho việc chọn nút, lặp qua các nút đã chọn, và làm việc trên những nút đã chọn này Để thực hiện được việc này, nó sử dụng biểu thức XParh
XPath chỉ ra cú pháp "truy vấn cho việc rút trích đữ liệu từ một tài liệu XML Ý tưởng sử dụng tương tự như trong SQL, tuy nhiên cú pháp của nó thì khác biệt Nói chung, cú pháp truy vấn XPøh có vẻ phức tạp Tuy nhiên qua
các ví dụ sau, Chúng ta có thể thấy được sự ngắn gọn và hiệu quả trong việc
rút trích dữ liệu XML Chỉ tiết về cú pháp của XPath sẽ không đi sâu trong bài viết này vì nó nghiên về lĩnh vực khác Tuy nhiên, chúng ta cũng minh hoa vài cách sử dụng biểu thức XPzrh Sau đây chúng ta xem qua ví dụ một
tài liệu XML mà sẽ được sử dụng để thực hiện truy vấn trên đó Tài liệu này dat tén la bank1.xml <?xml version="1.0" encoding="utf£-8" ?> <Bank> <Account>
SVTH: Nguyễn Thị Kim Phượng GVHD: Th.S Nguyễn Trần Minh Thư