1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tì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

126 849 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 2,42 MB

Nội dung

Tì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

Trang 1

TRƯỜ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

NGUYỄN THỊ KIM PHƯỢNG – TRƯƠNG KIỀU GIANG

KHÓA LUẬN CỬ NHÂN TIN HỌC

Trang 2

TRƯỜ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

NGUYỄN THỊ KIM PHƯỢNG 0112237

GIÁO VIÊN HƯỚNG DẪN

THẠC SĨ: NGUYỄN TRẦN MINH THƯ

Trang 3

Lời cảm ơn

Chúng em xin chân thành cảm ơn Ban giám hiệu, quý Thầy Cô của trường Đại học Khoa Học Tự Nhiên Tp.Hồ Chí Minh, đặc biệt là các Thầy Cô trong khoa Công Nghệ Thông Tin đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết trong suốt những năm học tập tại trường

Chúng em xin chân thành cảm ơn Thạc sĩ Nguyễn Trần Minh Thư đã tận tình quan tâm, hướng dẫn và giúp đỡ chúng em trong quá trình thực hiện luận văn để chúng em có thể hoàn thành tốt luận văn này

Chúng tôi xin chân thành cảm ơn các anh chị cùng các bạn đã có những nhận xét, đóng góp ý kiến, động viên, quan tâm và giúp đỡ chúng tôi vượt qua khó khăn trong suốt quá trình thực hiện đề tài

Cuối cùng, chúng con xin gửi lòng biết ơn sâu sắc đến cha mẹ, gia đình đã tạo mọi điều kiện về vật chất, tinh thần, động viên, khích lệ và hỗ trợ chúng con trong suốt thời gian qua

Tp.Hồ Chí Minh, ngày 12 tháng 7 năm 2005 Nhóm sinh viên thực hiện

Nguyễn Thị Kim Phượng – Trương Kiều Giang

Trang 4

LỜI NÓI ĐẦU

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, tất cả đều mang ý nghĩa hội nhập Lúc này, các doanh nghiệp và chính phủ không chỉ cạnh tranh với các doanh nghiệp trong một quốc gia mà còn cạnh 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 triển phải xem nhân dân và doanh nghiệp là khách hàng Để có khách hàng đã khó, để giữ khách hàng càng khó hơn nhiều Doanh nghiệp nào làm cho 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

Trong bối cảnh phát triển mạnh mẽ của Internet nói chung, thương mại đ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 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 vì vậy đề tài “Tì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”

được đưa ra nhằm giúp cho các doanh nghiệp hay các tổ chức nhà nước 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 muốn sẽ xây dựng được một hệ thống hỗ trợ khách hàng giảm chi phí về nhân sự và viễn thông, thời gian hỗ trợ ngắn hơn, thông tin hỗ trợ chính xác theo yêu cầu và không bỏ sót yêu cầu của khách hàng

Trang 5

Nội dung của đề tài gồm các phần chính sau:

Chương 1: Tổng quan - Giới thiệu đôi nét về hệ thống hỗ trợ dịch vụ khách

hàng như mục tiêu, phạm vi, đối tượng mà hệ thống hướng tới Song song đó là các cách tiếp cận bài toán và đưa ra hướng giải quyết bài toán

Chương 2: Giới thiệu công nghệ XML – Đề tài sử dụng một công nghệ mớ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

Chương 3: Mô tả hệ thống quản lý dịch vụ khách hàng - Mô tả chi tiết hệ

thống hỗ trợ dịch vụ khách hàng và đưa ra các yêu cầu mà hệ thống sẽ được xây dựng

Chương 4: Phân tích ứng dụng - Phân tích chi tiết các yêu cầu theo mô

hình UML (Unified Model Language)

Chương 5: Thiết kế và cài đặt ứng dụng

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

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 này

Phần cuối cùng là Tài liệu tham khảo và phụ lục

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ế 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 thiện đề tài này

Trang 6

Tì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 Hướng giải quyết bài toán 18

1.4.1 Về tốc độ thực hiện câu truy vấn 18

1.4.2 Vấn đề tìm kiếm thông tin 21

Chương 2: NGHIÊN CỨU CÔNG NGHỆ XML 25

2.1 Tổng quan về XML 25

2.1.1 Giới thiệu 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? 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ệ 29

2.1.7 XPath 33

2.1.8 Nhận xét về XML 34

2.2 Cách sử dụng một tài liệu XML 34

2.2.1 Đọc và phân tích tài liệu XML 35

2.2.2 Định hướng qua tài liệu XML để rút trích dữ liệu: 37

Trang 7

Tì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à

3.3 Xác định yêu cầu chức năng hệ thống 51

3.3.1 Yêu cầu chức năng nghiệp vụ 51

3.3.2 Yêu cầu chức năng hệ thống 61

3.3.3 Yêu cầu phi chức năng 63

Chương 4: PHÂN TÍCH 64

4.1 Lược đồ USE-CASE 64

4.2 Đặc tả Use-Case 66

4.2.1 Đặc tả Use-Case Tìm kiếm FAQ 66

4.2.2 Đặc tả Use-Case Đăng ký tài khoản 67

4.2.3 Đặc tả Use-Case Tạo yêu cầu 69

4.2.4 Đặc tả Use-Case Xem và hiệu chỉnh yêu cầu 70

4.2.5 Đặc tả Use-Case Giải đáp yêu cầu 72

4.2.6 Đặc tả Use-Case Tìm kiếm yêu cầu 73

4.2.7 Đặc tả Use-Case Quản lý yêu cầu 74

Trang 8

Tì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 76

Chương 5: THIẾT KẾ 79

5.1 Hiện thực hóa Use-Case 79

5.1.1 Use-Case Tìm kiếm FAQ 79

5.1.2 Use-Case Đăng ký tài khoản 81

5.1.3 Use-Case Tạo yêu cầu mới 83

5.1.4 Use-Case Giải quyết yêu cầu 85

5.1.5 Use-Case Xem và hiệu chỉnh yêu cầu 87

5.1.6 Use-Case Tìm kiếm yêu cầu 89

5.1.7 Use-Case Quản lý yêu cầu 91

5.1.8 Use-Case Quản lý FAQ 93

5.2 Thiết kế cơ sở dữ liệu 96

5.2.1 Sơ đồ lớp 96

5.2.2 Mô hình quan hệ 97

5.2.3 Mô tả chi tiết các lớp đối tượng 98

5.2.4 Mô tả các ràng buộc toàn vẹn 102

5.3 Thiết kế cài đặt và triển khai 105

5.3.1 Mô hình cài đặt 105

5.3.2 Mô hình triển khai hệ thống 106

5.4 Thiết kế giao diện 107

5.4.1 Sơ đồ liên kết các màn hình 108

5.4.2 Thiết kế chi tiết một số màn hình 109

Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 121

6.1 Kết luận 121

6.2 Hướng phát triển 123

TÀI LIỆU THAM KHẢO 124

PHỤ LỤC 125

Trang 9

Tì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

Hình 1-8: Mô hình truy vấn dữ liệu 17

Hình 1-9: Mô hình truy vấn dữ liệu có hỗ trợ XML 20

Bảng 4-1: Danh sách các Actor 65

Bảng 4-2: Danh sách các Use-Case 66

Bảng 5-1: Danh sách các đối tượng lưu trữ dữ liệu 98

Trang 10

Tì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 tin liên quan đến sản phẩm và 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ệ thống 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 gian nhanh nhất có thể

Nhân viên 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 cho 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, sàng lọc để 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

Trang 11

Tì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.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ý dịch vụ khách hàng (eSupport) được xây dự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 doanh 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, giải đáp, vì 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 Phạm vi

Đầu vào: yêu cầu, tìm kiếm, download,…

Phân hệ hỗ trợ khách hàng

Phân hệ hỗ trợ hệ thống

Đầu ra: yêu cầu được giải quyết, vấn đề tìm kiếm được, …

Môi trường: khách hàng, doanh nghiệp, …

Hình 1-1: Phạm 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

Trang 12

Tì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.v.…

ƒ 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 đạt chi 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ợ dịch vụ khách hàng làm việc hiệu quả, có thể giúp doanh nghiệp giảm chi 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…

1.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 đề 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,

Trang 13

Tì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

đ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, chi 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ữ dữ 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ữ dữ liệu của hệ thống được đề nghị như sau:

Trang 14

Tì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: Đây là mô hình đang được sử dụ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 dữ 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

Ư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 XML2 còn nhiều hạn chế và vấn đề bảo mật không bằng hệ quản trị

Trang 15

Tì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

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ưu 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

Trang 16

Tì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ở dữ liệu quan hệ cũng dễ dàng 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 tạo

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ức theo mô hình sau:

Hình 1-6: Giải pháp 5

Ưu điểm: Việc đọc/ghi trên từng đối tượng đã được tách riêng biệt ra để

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

Trang 17

Tì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.2.6 Giải pháp 6

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-7: Giải pháp 6

Ưu điểm: Việc trao đổi thông tin giữa các đối tượ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 thuộc vào nhu cầu của ứng dụng của chúng ta Nghĩa là ứng dụng của chúng ta sẽ quan tâm vấn đề nào? Vấn đề nào là vấn đề được quan tâm hàng đầu thì 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

Trang 18

Tì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

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:

Hình 1-8: Mô hình truy vấn dữ 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 nố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 dữ 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 thời, phân bổ tài nguyên để thực hiện câu truy vấn tại 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

Trang 19

Tì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

từ “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ữ dữ liệu trên SQL Server

− Tốc độ thực hiện câu truy vấn − 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:

Trang 20

Tì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

FAQ00001 Cách nhận biết người nhận thư đã đọc thư của mình hay chưa?

Bạn làm theo các

FAQ00002 Hỏi về phần mềm gõ tiếng Việt? Unikey là một phần mềm… … TOP002

<FAQ_Ngay_Cap_Nhat> 10-7-2005 </FAQ_Ngay_Cap_Nhat> <FAQ_Ma_Chu_De> TOP001 </FAQ_Ma_Chu_De>

Trang 21

Tì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_Cau_Tra_Loi>… </FAQ_Cau_Tra_Loi>

<FAQ_Ngay_Cap_Nhat>… </FAQ_Ngay_Cap_Nhat> …

……… ………

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 rất nhiều so với cơ sở dữ 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:

Hình 1-9: Mô hình truy vấn dữ liệu có hỗ trợ XML

Trang 22

Tì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 tin 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 tìm kiếm Danh sách

các từ khóa XML

Trích từ vàloại bỏ từ thừa

Bảng dữ liệu

Trích từ vàloại bỏ từ thừa

Danh sáchcác từ khóaTạo chỉ mục

Kết quảhiển thị

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 dễ dà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 dù vậy, phương pháp này cũng tách từ chính xác đến 95%

Trang 23

Tì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

(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 dù 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:

<WORDs>

<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>

<FAQ FAQ_ID="FAQ00008"/>

<FAQ FAQ_ID="FAQ00019"/> </WORD>

……… ………

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

Trang 24

Tì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 để trả về kết quả truy 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 dung câu hỏi sẽ được trả về cho người dùng 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ữ dữ liệu Đó là giải pháp 5 vì theo như giải pháp này, việc lưu trữ dữ 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 vấn đề 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:

Trang 25

Tì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

Hình 1-11: Mô hình mô tả vai trò của XML

# Kết luận: Trên đây là một 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ế nào, chúng ta sẽ xem tiếp qua chương sau

Trang 26

Tì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 tin 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 lại đang phát triển mạnh về việc chuyển tải, trao đổi và thao tác dữ 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à lợi ích khi sử dụng 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 đặt ra cho sự ra đời XML là gì? Đó là, đầ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ế

Trang 27

Tì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

tiếp, những tài liệu XML rõ ràng, dễ đọc, dễ dàng tạo lập Và điều quan trọng là nó được hỗ trợ trong nhiều ứng dụng Nói tóm lại, XML dễ dà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ễ dàng để hiểu, dễ dàng để đọc, và dễ 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 dữ liệu Sử dụng XML, dữ 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ở dữ liệu quan hệ không thể giải quyết được

ƒ XML có thể dùng để chuyển đổi dữ liệu giữa các hệ thống không tương thích

ƒ XML dùng để chia 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?

Trang 28

Tì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 tập 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 của 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 tậ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>

<ProductID>F20</ProductID>

<ProductName>Bantam Lexica</ProductName> <ListPrice>49.99</ListPrice>

</Product> </Catalog>

Như vậy, bằng 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 dung gì

2.1.4 Tạo lập một tài liệu XML

Chúng ta có thể sử dụng trình soạn thảo đơn giản nhất là Notepad để soạn thảo tài liệu XML, nhưng phải tuân thủ theo qui tắc sau:

Trang 29

Tì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

<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

ƒ Phần tử gốc (root): Trong tài liệu XML, chỉ có một phần tử gốc, và phần 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 tính (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

Trang 30

Tì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 đã đề cậ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) hoặc Schema XML

2.1.6.1 DTD (Document Type Definition)

DTD và 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à

Trang 31

Tì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ộ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 dạ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 Lược đồ 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 để 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í dụ một lược đồ XML

<xsd:schemaid="Catalog"

targetNamespace="http://tempuri.org/Catalog1.xsd" xmlns="http://tempuri.org/Catalog1.xsd"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified"

elementFormDefault="qualified"> <xsd:elementname="Catalog"

msdata:IsDataSet="true"

Trang 32

Tì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

msdata:EnforceConstraints="False"> <xsd:complexType>

<xsd:choicemaxOccurs="unbounded"> <xsd:elementname="Product">

<xsd:complexType> <xsd:sequence>

<xsd:element name="ProductID"

minOccurs="0"/> <xsd:element

name="ProductName" type="xsd:string" minOccurs="0"/> <xsd:element

name="ListPrice" type="xsd:string" minOccurs="0"/>

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 dữ liệu như thế nào Vì trong bất kỳ cơ sở dữ liệu quan hệ nào, ví 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 dữ liệu trong lược đồ XML

Trang 33

Tì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

Có 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 dữ liệu nào ví dụ như kiểu dữ liệu float Kiểu dữ liệu mở rộng dựa trên

những kiểu dữ liệu khác ví dụ như kiểu integer dựa trên kiểu decimal

Kiểu dữ 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 dữ 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

Boolean Token minLength

Double NMTOKENS enumeration dateTime NCName maxInclusive

base64Binary negativeInteger

long int short byte

Trang 34

Tì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

nonNegativeInteger unsignedLong unsignedInt unsignedShort unsignedByte positiveInteger

Bảng 2-1: Danh sách các kiểu dữ 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

Như vậy để 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 tắt là XPath XPath đóng một vai trò quan trọng trong việc truy vấn dữ

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ở dữ liệu ta dùng các phát biểu SQL như

SELECT FROM table_name WHERE để trích ra một 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ở dữ liệu Một biểu thức

Trang 35

Tì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

XPath 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

tử boolean, hàm string, và toán tử 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 W3C3 đã 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 để truy vấn trên tài liệu XML XSL 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 dữ liệu cho những nút trong một tà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 tập tin XML

3 World Wide Web Consortium

Trang 36

Tì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 dữ liệu từ

một tài liệu XML Chúng ta khai báo như sau:

XmlTextReader myRdr =

new XmlTextReader(Server.MapPath("catalog2.xml"));

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 Read() để lấy những phần dữ liệu một

cách tuần tự Mỗi phần dữ liệu tương tự như một nút trong cây XML Thuộc

tính NodeType sẽ lấy kiểu của phần dữ liệu, thuộc tính Name sẽ lấy tên của nút, và Value sẽ lấy giá trị của nút Vì thế, khi một phần dữ 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 tra nút đó có thuộc tính hay không, chúng ta có thể sử

dụng phương thức HasAttributes Nếu giá trị trả về của phương thức HasAttributes là true, chúng ta áp dụng phương thức MoveToAttribute(i) để

lặp qua các thuộc tính của nút

if (myRdr.HasAttributes) {

for( inti= 0; i<myRdr.AttributeCount-1;i++) {

myRdr.MoveToAttribute(i);

Response.Write(myRdr.NodeType.ToString()+":"+

Trang 37

Tì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

myRdr.Name+": "+myRdr.Value"</br>"); }

}

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ông qua một số đối tượng

như XMLDocument, XMLDataDocument 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 cursor định vị theo một hướng, thì XMLDocument cung cấp việc truy xuất nhanh và trực tiếp đến một nút Tuy

nhiên, việc sử dụng mô hình DOM rất tố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 tượng XMLDocument Sau đây chúng ta sử dụng đối tượng XMLTextReader để tạo một XMLDocument

{

if(!Page.IsPostBack) {

XmlTextReader(Server.MapPath("Catalog2.xml"));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

for(i0;i<myDoc.DocumentElement.ChildNodes.Count-1;i++)

Trang 38

Tì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

cần thiết cho ứng dụng của mình Ví dụ như nếu nút đó là ProductName

chúng ta sẽ đọc và hiển thị thông tin trên một listbox, cụ thể như sau:

{

if(XmlNoteType.Element) {

if (myRdr.Name="ProductName") {

myRdr.Read();

lstProducts.Items.Add(myRdr.ReadString); }

} }

myRdr.Close();

Trang 39

Tì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.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ế nút này dùng để hiển thị dữ liệu văn bản

Lớp XmlDataDocument kế thừa từ lớp XmlDocument, vì thế nó cũng có một số phương thức như lớp XmlDocument Điều thú vị nhất của XmlDataDocument là nó cung cấp hai cách nhìn trên cùng một dữ liệu đó là

XML view và relational view

XmlDataDocument có một thuộc tính tên là DataSet, thông qua DataSet, XmlDataDocument 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 Load() để tải một đối tượng XmlDataDocument, chúng ta có 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 XML khi sử dụng XmlDataDocument

Hình 2-1: Mô hình DOM

Trang 40

Tì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 XmlDocument và XmlDataDocument để 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 và XPathNavigator

Lớp XPathDocument 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à XPathNavigator sử dụng để thao tác trên dữ liệu của XPathDocument Nó cũng được sử dụng để thao tác trên XmlDocument, và XmlDataDocument Nó hỗ trợ 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 XPath

XPath chỉ ra cú pháp truy vấn cho việc rút trích dữ 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 XPath 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 Chi 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

họa vài cách sử dụng biểu thức XPath 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

đặt tên là bank1.xml

<Bank>

Ngày đăng: 14/11/2012, 10:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w