Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 112 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
112
Dung lượng
1 MB
Nội dung
BỘ GIÁO DỤC ĐÀO TẠO TRUỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN HỒNG VŨ BÀI TỐN TÌM KIẾM VÀ RÚT TRÍCH THƠNG TIN TỪ NHỮNG NGUỒN DỮ LIỆU LỚN SỬ DỤNG XML (XML SCHEMA MATCHING) Chuyên ngành: CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HUỲNH QUYẾT THẮNG Hà nội – 2009 Trang MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ CHƯƠNG I: MỞ ĐẦU Lời mở đầu Giới thiệu chung Nội dung luận văn 10 CHƯƠNG II: GIẢI THUẬT ĐỐI SÁNH ĐO LƯỜNG SỰ TƯƠNG ĐỒNG VỀ CẤU TRÚC GIỮA TÀI LIỆU XML VÀ DTD 12 Tài liệu DTD 12 1.1 Cây biểu diễn tài liệu 13 1.2 Cây biểu diễn DTDs 14 Những nguyên lý việc đối sánh tài liệu XML dựa vào DTD 17 2.1 Đối sánh tài liệu tập tài liệu 17 2.2 Thành phần chung, thêm trừ 18 2.2.1 Mức thành phần 20 2.2.2 Trọng số thành phần 21 2.2.3 Những thành phần tùy chọn lặp 24 2.2.4 Những thành phần chuỗi thay 25 2.2.5 Vai trị thơng số cách thiết lập 26 Giải thuật đối sánh 27 3.1 Hàm lượng giá 27 3.2 Giải thuật đối sánh 29 3.2.1 Giải pháp đơn giản 29 3.2.2 Giải thuật 31 3.3 Đo lường độ tương đồng 40 Trang 3.4 Độ phức tạp giải thuật 44 3.4.1 Số lần gọi đệ quy 44 3.4.2 Số thao tác 44 3.4.3 Tổng hợp thời gian chạy 46 3.5 Giải thuật đối sánh cho trường hợp tổng quát 47 3.5.1 Những thành phần với tags 48 3.5.2 Các thành phần với tag tương đương 53 CHƯƠNG III: GIẢI THUẬT ĐO LƯỜNG SỰ SAI KHÁC CỦA CÂY XML DỰA VÀO CHUỖI LIÊN KẾT 56 Sự sai khác XML 56 1.1 Một vài định nghĩa tảng ví dụ 56 1.2 XML chuỗi 58 Đối sánh chuỗi XML 58 Giải thuật khác biệt 61 3.1 Giải thuật tham lam cho tính linh động tốc độ 61 3.2 Giải thuật mã hóa sai khác XML với tham chiếu 66 CHƯƠNG IV: CÁC ỨNG DỤNG 70 Phân loại tài liệu 70 Phát triển cấu trúc DTD 72 Cấu trúc truy vấn 77 Lựa chọn phổ biến tài liệu XML 79 Bảo vệ tài liệu XML 81 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83 Kết Luận 83 Hướng phát triển 84 DANH MỤC TÀI LIỆU THAM KHẢO 85 PHỤ LỤC 01: GIẢI THUẬT ĐỐI SÁNH 86 Giải thuật M 86 Hàm HAND 88 Trang 3 Hàm HOR 89 PHỤ LỤC 02: XML 90 XML gì? 90 1.1 Giới thiệu 90 1.2 Sự khác biệt XML HTML 90 1.2.1 HTML (HyperText Markup language) 90 1.2.2 XML 91 1.3 Biểu diễn liệu XML 91 1.4 Những thuận lợi XML 91 Các cú pháp quy tắc XML 92 2.1 Thẻ kết thúc 92 2.2 Thẻ XML phân biệt chữ hoa, chữ thường 92 2.3 Các thẻ thành phần phải lồng xác 93 2.4 Thành phần gốc 93 2.5 Nguyên tắc thuộc tính 93 2.6 Khai báo văn XML 94 2.7 Một số ý khác văn XML 94 2.8 Namespaces 95 Xác định nội dung văn 96 3.1 Xác định loại văn 96 3.1.1 Biểu tượng DTD 97 3.1.2 Tính đàn hồi 99 3.2 Các sơ đồ XML 99 3.2.1 Xác định phần tử sơ đồ 100 3.2.2 Xác định phần tử có sơ đồ 100 Các giao diện lập trình XML 100 4.1 Tổng quan 100 4.2 DOM 101 4.3 API đơn giản cho XML 101 Trang 4.4 JDOM 103 4.5 The Java API for XML Parsing(Java API cho kiểm ngữ XML) 103 Các tiêu chuẩn XML 104 5.1 Tổng quan tiêu chuẩn XML 104 5.2 Đặc tính kỹ thuật XML 104 5.3 XLST 104 5.3.1 Vấn đề đặt 104 5.3.2 XSLT 104 5.3.3 Bảng định kiểu stylesheet 105 5.3.4 Lập trình XSLT 106 Xquery 108 6.1 Tổng quan Xquery 108 6.2 Hàm XQuery gì? 109 6.3 Gọi hàm Xquery 110 6.4 Lợi ích dùng hàm Xquery 111 Trang DANH MỤC BẢNG BIỂU Bảng 2.1: đo lường tương đồng tài liệu DTD ví dụ 25 Bảng 2.2: Thông số giải thuật đối sánh 26 Bảng 3: Những cấu hình để kiểm tra cho tài liệu DTD hình 2.17 51 Bảng 4: ví dụ viết lại luật DTD 53 Bảng 5: kiểu kiện trung tâm XAS 58 DANH MỤC HÌNH VẼ Hình 2.1: ví dụ tài liệu XML 12 Hình 2.2: ví dụ DTD 13 Hình 2.3: biểu diễn tài liệu XML 14 Hình 2.4: biểu diễn DTD 16 Hình 2.5: ví dụ DTD biểu diễn cho node gán nhãn AND .16 Hình 2.6: xác định thành phần thơng thường, thêm,trừ 19 Hình 2.7: tài liệu DTD cho ví dụ 20 Hình 2.8: tài liệu DTD ví dụ 22 Hình 2.9: tài liệu DTD ví dụ 24 Trang Hình 2.10: Cây biểu diễn tài liệu DTD ví dụ 29 Hình 2.11: lượng giá tương đồng 30 Hình 2.12: Hàm M (trường hợp thành phần) 35 Hình 2.13: Hàm M (trường hợp * +) .37 Hình 2.14: Hàm M (trường hợp AND OR) 40 Hình 2.15: thực thi hàm M .42 Hình 2.16: biểu diễn tài liệu DTD cho ví dụ 11 .48 Hình 2.17: biểu diễn tài liệu DTD biểu diễn thành phần lặp .50 Hình 2.18: biểu diễn tài liệu DTD ví dụ 16 55 Hình 3.1: ví dụ sai khác, d0 tài liệu ban đầu, d1 tài liệu biến đổi 57 Hình 3.2: đối sánh lượng giá chuỗi tài liệu 63 Hình 3.3: Giải thuật mã hóa sai khác 68 Hình 3.4: metadiff d0 d1 69 Hình 4.1: phân loại tài liệu 71 Hình 4.2: Dòng liệu phát triển tiếp cận 74 Hình 4.3 (a) DTD, (b) loại tài liệu phân loại dựa vào DTD, (c) DTD mở rộng 75 Hình 4.4: Ứng dụng giải thuật phát triển 76 Hình 4.5: đánh giá truy vấn cấu trúc 78 Hình 4.6: tích hợp phân loại tiếp cận phát triển SDI 80 Trang CHƯƠNG I: MỞ ĐẦU Lời mở đầu Trong năm gần đây, với phát triển Internet, nguồn liệu lớn dần hình thành với đa dạng thông tin, cấu trúc lưu trữ mã hóa Do đa dạng trên, nhu cầu xây dựng hệ thống để trao đổi thông tin qua lại cần thiết Tuy nhiên, hệ thống liệu lớn liệu khơng đồng với Vì vậy, dùng hệ thống sở liệu quan hệ thời để lưu trữ tra cứu gặp nhiều khó khăn Một giải pháp đưa sử dụng XML làm tảng để lưu trữ Sự khác biệt XML HTML HTML dùng để biểu diễn liệu XML lại sử dụng cấu trúc để lưu trữ, chuyển đổi thông tin XML đời không nhằm thay cho HTML mà thực chất XML bổ sung cho thiếu sót HTML việc lưu trữ chuyển liệu Với mạnh linh động cấu trúc, XML ngày sử dụng để lưu trữ hầu hết ứng dụng Web phức tạp sử dụng để định nghĩa cho lược đồ sở liệu động Hiện có nhiều nghiên cứu xoay quanh vấn đề tìm kiếm rút trích thơng tin từ XML Một phương pháp quan tâm phát triển mạnh phương pháp đối sánh lược đồ Phương pháp đối sánh lược đồ xây dựng chủ yếu dựa vào nguyên tắc tìm kiếm tương đồng cấu trúc ngữ nghĩa lược đồ Dựa tương đồng này, hệ thống tìm kiếm nguồn liệu tương đồng phục vụ cho mục đích khác Luận văn nhằm mục đích nghiên cứu lý thuyết để đo lường tương đồng cấu trúc tài liệu XML DTD để làm tảng phục vụ cho việc tìm kiếm, rút trích phân loại thơng tin từ nguồn liệu XML Trang Giới thiệu chung Sự tương đồng đóng vai trị định nhiều lĩnh vực nghiên cứu Sự tương đồng sử dụng nguyên lý tổ chức cách phân loại đối tượng, hình thức khái niệm riêng lẻ thực việc tổng quát hóa Sự tương đồng tính tốn mức khác trừu tượng: Ở lớp liệu nghĩa tương đồng mức liệu Ở lớp kiểu nghĩa tương đồng kiểu, kiểu lược đồ, mơ hình, cấu trúc tùy thuộc vào miền ứng dụng Ở lớp liệu kiểu nghĩa tương đồng vừa mức kiểu mức liệu Việc đánh giá tương đồng liệu thích hợp với việc tạo cụm thông tin quan hệ đến chủ đề Ví dụ, lĩnh vực ảnh, đo lường tương đồng có thể khai phá đến nhóm ảnh chứa đựng chủ đề Việc đánh giá tương đồng kiểu thích hợp cho kết hợp việc mô tả lược đồ loại thông tin sử dụng cấu trúc cho cụm lược đồ khác Việc đánh giá tương đồng liệu kiểu thích hợp cho việc nhận dạng nguồn liệu, vậy, thích hợp với thuộc tính liệu mơ tả cho kiểu Hơn nữa, với tương đồng này, phân loại tập trung nội dung hay cấu trúc liệu liên quan Trong phạm vi XML, khả đánh giá tương đồng nhận nhiều quan tâm thơng tin trao đổi web ngày gắn chặt với định dạng XML ứng dụng cần phải khôi phục, truy cập xử lý tài liệu XML mà nới lỏng cách ấn tượng điều kiện kết trả tương ứng Ở lớp liệu, nhiều cách tiếp cận phát triển để đo lường tương đồng tài liệu XML để phân cụm nhóm tài liệu có mối quan hệ đến chủ đề Chuẩn ban đầu tiếp cận xem xét nội dung tài liệu Trong đó, Trang số cách tiếp cận xem xét cấu trúc tài liệu Cho liên quan đến cấu trúc tương tự, nhiều tiếp cận dựa cấu trúc có thứ bậc tài liệu mà việc khai phá hàm lượng giá dựa quãng đường chọn lọc Ở lớp kiểu, cách tiếp cận khác phát triển cho việc tích hợp lược đồ mà biểu diễn loại liệu cho cụm lược đồ Mặc cho hoạt động khổng lồ lớp liệu lớp kiểu khả thu hút ứng dụng nhiều lĩnh vực Khơng có nỗ lực dành trọn cho việc tính tốn cấu trúc tương đồng tài liệu XML (dữ liệu) lược đồ (kiểu) Trong luận văn này, tiếp cận đến giải thuật đối sánh cho việc tính tốn độ tương đồng cấu trúc tài liệu XML DTD, tìm hiểu lý thuyết khác biệt, tìm hiểu giải thuật đối sánh chuỗi Trong việc đối sánh tài liệu dựa vào XML, vài thuộc tính thành phần mô tả cho yếu tố DTD bị thiếu từ vài yếu tố tương ứng tài liệu, ngược lại, tài liệu chứa vài thuộc tính yếu tố thêm vào mà không xuất DTD Hơn nữa, từ tập trung vào tài liệu liệu trung tâm, yếu tố/ thuộc tính tài liệu theo vài thứ tự khác mong đợi với mô tả tài liệu DTD Cuối cùng, tài liệu thẻ DTD khơng xác, chúng cung cấp chân thứ tương tự đủ để theo cho mơ tả Do đó, thẻ tương đồng hỗ trợ nhiều thẻ tương đương Mục tiêu việc đối sánh tài liệu dựa DTD xác định số lượng qua đo lường thích hợp cấu trúc tương đồng tài liệu DTD Kỹ thuật trình bày luận văn giữ tất đặc điểm tài liệu XML, luận văn tập trung vào cách tiếp cận quan trọng Vì vậy, giới hạn tập tài liệu XML thẻ tương đương phần quan trọng tập trung vào trường hợp tổng quát Nhiều ứng dụng xây dựng cho giải thuật đối sánh Ví dụ, việc trao đổi tài liệu XML web ép sở liệu áp chặt vào hay tích Trang 97 DTD xác định tất yếu tố sử dụng văn mẫu Nó xác định ba điều bản: Một phần tử chứa yếu tố , , , , Tất yếu tố phải xuất hiện, chúng xuất trật tự Một yếu tố chứa yếu tố tùy ý (dấu hỏi chủ đề tùy ý), theo sau phần tử phần tử Tất phần tử khác chứa chữ (#PCDATA nghĩa liệu ký tự kiểm tra ngữ pháp, chứa thêm phần tử khác phần tử này.) Mặc dù DTD tương đối đơn giản, rạch rịi kết hợp phần tử thành hợp lệ Một văn địa có phần tử trước phần tử không hợp lệ, khơng có phần tử Ngồi ra, Phải ý cú pháp DTD khác xa so với pháp XML gốc 3.1.1 Biểu tượng DTD Có số biểu tượng sử dụng DTD để biểu thị mức độ xuất thường xun (hoặc có xuất hay khơng) số thành phần văn XML Ví dụ: Trang 98 Phần tử phải chứa phần tử , phần tử , phần tử , trật tự Tất phần tử bắt buộc Dấu phẩy biểu thị danh sách tin Điều có nghĩa phần tử chứa phần tử tùy ý, sau xuất phần tử phần tử Dấu hỏi biểu thị phần tử tùy ý, xuất lần không Một yếu tố chứa một phần tử Chúng ta có nhiều phần tử ý muốn, phải có phần tử Dấu cộng biểu thị phần tử phải xuất lần, nhiều Một phần tử không chứa chứa nhiều phần tử Dấu hoa thị biểu thị phần tử xuất lần được, kể không lần Một phần tử chứa phần tử tùy ý, theo sau phần tử , theo sau phần tử phần tử , theo sau phần tử Nói cách khác, tùy ý, có hai phần tử Gạch thẳng đứng biểu thị danh sách lựa chọn, chọn phần tử danh sách Ngồi nên nhớ ví dụ sử dụng dấu ngoặc đơn để nhóm phần tử định lại với nhau, đặt dấu hỏi đứng sát với nhóm Trang 99 Phần tử chứa hai dãy: phần tử tùy ý , theo sau phần tử phần tử ; phần tử , , 3.1.2 Tính đàn hồi Tính đàn hồi thiết kế loại văn XML Cân nhắc tên mẫu loại văn địa Nếu bạn muốn DTD sơ đồ xác định quy tắc cho loại khác địa chỉ, cần phải phức tạp lên nhiều Đưa phần tử có nghĩa Australia, lại vô nghĩa Anh Một địa Canada xử lý DTD mẫu xác định loại văn bản, thêm yếu tố ý kiến hay Cuối cùng, phải ý có nhiều khu vực giới, khái niệm chủ đề, tên họ khơng có nghĩa Đường gạch dưới: Nếu muốn xác định cấu trúc văn XML, bạn phải tính tốn trước nhiều DTD hay sơ đồ bạn, giống bạn thiết kế sơ đồ sở liệu kết cấu liệu Bạn tính trước nhiều, sau bạn thực dễ dàng với chi phí thấp 3.2 Các sơ đồ XML Với sơ đồ XML, bạn dễ dàng việc xác định văn XML hợp lệ hay không Một số lợi ích vượt trội so với DTD: Sơ đồ XML sử dụng cú pháp XML Nói cách khác , sơ đồ XML văn XML Điều có nghĩa bạn xử lý sơ đồ văn khác Ví dụ, bạn soạn từ kiểu XSLT để chuyển sơ đồ XML thành dạng Web với mã JavaScript tạo tự động bạn đưa vào Sơ đồ XML thích hợp loại liệu Các DTD thích hợp loại liệu phát triển từ xuất Sơ đồ XML thích hợp với loại liệu Trang 100 gốc từ DTD (như ID thứ liên quan tới ID) Chúng thích hợp với số nguyên, số điểm nổi, ngày, thời gian, chuỗi, URL loại liệu hữu ích khác cho việc xử lý kiểm sốt liệu Sơ đồ XML mở rộng Ngồi loại liệu xác định chi tiết kĩ thuật sơ đồ XML, bạn cịn tạo liệu riêng, từ loại liệu suy loại liệu Sơ đồ XML có khả biểu đạt ấn tượng Ví dụ, với sơ đồ XML bạn xác định giá trị thuộc tính khơng thể dài ký tự, giá trị phần tử phải phù hợp với cách biểu đạt phổ biến [0-9]{5}(-[0-9]{4})? Bạn làm điều tương tự với DTD 3.2.1 Xác định phần tử sơ đồ Sơ đồ XML Một sơ đồ XML mẫu Xác định số lượng phần tử XML phần tử Hai yếu tố xác định, , bao gồm phần tử khác Phần tử xác định tính liên tục phần tử chúng 3.2.2 Xác định phần tử có sơ đồ Sơ đồ mẫu xác định bắt buộc nội dung hai phần tử: Nội dung phần tử phải ký tự nội dung phần tử phải khớp với cách biểu đạt phổ biến [0-9]{5}(-[0-9]{4})? 4.1 Các giao diện lập trình XML Tổng quan Khái quát số vấn đề lập trình XML Những vấn đề mang đến cho nhà phát triển giao diện thích hợp để làm việc với văn XML Có nhiều API sẵn có, đề cập đến API phổ biến hữu ích nhất: Văn chủ thể kiểu mẫu(DOM) Trang 101 API Đơn giản cho XML (SAX) JDOM Java API cho Kiểm tra ngữ pháp XML (JAXP) 4.2 DOM Document Object Model, thường gọi DOM, xác định loạt vấn đề cho phiên kiểm tra ngữ pháp văn XML Bộ kiểm ngữ đọc văn xây dựng trí nhớ, nhờ mã dùng giao diện DOM để thao tác Bạn chuyển qua để xem nội dung văn gốc gì, bạn xóa phần cây, xếp lại cây, thêm nhánh mới, v.v DOM xây dựng trí nhớ tồn văn Nếu văn q lớn, địi hỏi số lượng trí nhớ lớn DOM tạo nên chủ thể biểu đạt thứ văn gốc, bao gồm phần tử, từ ngữ, thuộc tính khoảng trống Nếu bạn quan tâm tới phần nhỏ văn bản, vơ lãng phí tạo nên chủ thể mà không sử dụng Bộ kiểm ngữ DOM phải đọc toàn văn trước mã bạn kiểm soát Đối với văn lớn, điều bị kéo dài đáng kể Đây vấn đề thiết kế DOM; dù sao, DOM API hữu ích kiểm ngữ văn XML 4.3 API đơn giản cho XML Xoay quanh vấn đề DOM, thành viên XML-DEV (đứng đầu David Megginson) tạo nên SAX SAX có vài đặc điểm xác định rõ lo lắng DOM: Bộ kiểm ngữ SAX gửi kiện đến mã bạn Bộ kiểm ngữ cho bạn biết tìm thấy bắt đầu, kết thúc phần tử, từ ngữ, bắt đầu kết Trang 102 thúc văn bản, v.v Bạn định kiện quan trọng, bạn định tạo kết cấu liệu để nắm giữ liệu từ kiện Nếu bạn khơng dứt khốt lưu liệu từ kiện, bị loại bỏ Một kiểm ngữ SAX không tạo chủ thể nào, đơn giản gửi kiện đến yêu cầu bạn Bạn muốn tạo chủ thể dựa kiện hay khơng tùy ý bạn Bộ kiểm ngữ SAX bắt đầu gửi kiện cho bạn bắt đầu kiểm ngữ Mã bạn nhận kiện kiểm ngữ tìm thấy nơi bắt đầu văn bản, yếu tố hay đoạn từ ngữ, v.v Yêu cầu bạn có kết lập tức; bạn khơng cần phải chờ kiểm ngữ hết toàn văn Thậm chí, bạn tìm thứ văn bản, mã bạn ném loại trừ tìm thấy tìm Loại trừ dừng kiểm ngữ SAX lại, mã làm cần làm với liệu tìm thấy Mặc dù có nhiều ưu điểm, kiểm ngữ SAX có vấn đề gây lo lắng: Các kiện SAX thường khơng thức Khi kiểm ngữ SAX tìm thấy đoạn văn văn XML, gửi kiện tới mã Sự kiện đơn giản đoạn văn tìm được; khơng cho bạn biết phần tử chứa đoạn văn Nếu bạn muốn biết điều đó, bạn buộc phải tự viết mã quản lý trạng thái Các kiện SAX thường không kéo dài Nếu yêu cầu bạn cần kết cấu liệu làm khuôn văn XML, bạn phải tự viết mã Nếu muốn vào liệu từ kiện SAX mà bạn khơng lưu liệu mã, bạn phải kiểm ngữ lại văn lần SAX không điều khiển tổ chức điều hành trung tâm Mặc dù điều không gây vấn đề gì, số nhà phát triển mong muốn SAX điều khiển tổ chức W3C Trang 103 4.4 JDOM Bị vướng số khó khăn từ mơ hình DOM SAX, Jason Hunter Brett McLaughlin tạo JDOM JDOM dựa công nghệ Java, mở dự án theo nguyên tắc 80/20: gửi đến 80% người sử dụng cần với 20% chức DOM SAX JDOM thích ứng với kiểm ngữ DOM SAX, thực nhỏ lớp Java Đặc trưng JDOM giảm phần lớn số mã mà bạn phải viết Yêu cầu JDOM 1/3 yêu cầu DOM ½ yêu cầu SAX (Thuần túy DOM tất nhiên phương pháp tốt dài hạn.) JDOM không làm tất cả, hầu hết bạn cần kiểm ngữ, lựa chọn đắn 4.5 The Java API for XML Parsing(Java API cho kiểm ngữ XML) Mặc dù DOM, SAX, JDOM cung cấp phân giới tiêu chuẩn cho hầu hết nhiệm vụ chung, có số thứ chúng chưa đạt tới Ví dụ, quy trình tạo chủ thể DOMParser (Kiểm ngữ DOM) lập trình Java khác xa so với kiểm ngữ DOM Để điều chỉnh vấn đề này, Sun tạo JAXP, Java API cho Kiểm ngữ XML API cung cấp mặt phân giới chung cho việc xử lý văn XML sử dụng DOM, SAX XSLT JAXP cung cấp giao diện DocumentBuilderFactory DocumentBuilder cung cấp giao diện chuẩn để phân biệt kiểm ngữ Cũng có phương pháp cho phép bạn điều chỉnh kiểm ngữ có nhận thức namespace hay khơng sử dụng DTD hay sơ đồ để kiểm soát văn XML Để xác định giao diện lập trình phù hợp với bạn, bạn cần phải hiểu thiết kế tất giao diện đó, bạn phải nắm yêu cầu xử lý văn Trang 104 5.1 Các tiêu chuẩn XML Tổng quan tiêu chuẩn XML Có nhiều tiêu chuẩn khác XML Ngoài tiêu chuẩn sở, tiêu chuẩn khác như: xác định sơ đồ, trang văn bản, link, dịch vụ Web, bảo vệ vấn đề quan trọng khác Phần bàn tiêu thuẩn phổ biến cho XML 5.2 Đặc tính kỹ thuật XML Xác định nguyên tắc cho văn XML Các quy tắc văn XML đề cập phần xác định Ngoài tiêu chuẩn XML bản, đặc tính kỹ thuật Namespace phần quan trọng khác XML 5.3 XLST 5.3.1 Vấn đề đặt Giả sử bạn có tập liệu dạng XML, bạn tiếp tục lưu trữ liệu dạng XML sử dụng tất tảng với tất ngơn ngữ Tuy nhiên, lúc bạn muốn chuyển cấu trúc XML liệu sang định dạng khác để lưu trữ hệ thống khác đơn giản để hiển thị khác với mục đích khác Ví dụ, bạn có liệu dạng XML muốn hiển thị Web bạn phải chuyển sang dạng HTML Bạn bước thực việc chuyển đổi từ XML sang HTML bạn đọc vào DOM chuyển đổi Nhưng thực tế là, bạn khơng cần phải làm Có cánh đơn giản nhiều 5.3.2 XSLT Trang 105 Ngôn ngữ định kiểu mở rộng chuyển đổi (Extensible Stylesheet Language Transformations - XSLT) cung cấp cách chuyển đổi liệu XML từ dạng sang dạng khác tự động Định dạng muốn chuyển sang thường là tài liệu XML khơng Có thể chuyển đổi liệu XML sang dạng cách tạo bảng định kiểu XSLT thực chuyển đổi liệu Nếu bạn muốn thay đổi định dạng đích, bạn việc thay đổi bảng định kiểu XSLT thực việc chuyển đổi lần Điều hiệu cho người lập trình viên Ví dụ nhà thiết kế, họ thay đổi XSLT để có kết ý 5.3.3 Bảng định kiểu stylesheet Bản đinh kiểu stylesheet tài liệu XML bao gồm kết XSLT Lưu ý cách dùng không gian namespace xsl: Thêm không gian namespace để xử lý biết thành phần xử lý, thành phần kết Phần value-of thành phần giúp cho xử lý chèn phần liệu cụ thể vào vị Và phần liệu chèn vào định nội dung thuộc tính select Thuộc tính select bao gồm biểu diễn XPath Ở bạn nhìn thấy tên, ingredients, thành phần lệnh truy cập bước qua cấu trúc phân cấp tài liệu Nó thành phần gốc, /recipes, tiếp tục xuống phía Cách thực chuyển đổi Cách chuyển đổi đơn giản thêm dẫn định kiểu xml-stylesheet vào tài liệu XML hiển thị trình duyệt Trang 106 5.3.4 Lập trình XSLT XSLT cung cấp số khả lập trình giống ngơn ngữ lập trình bình thường khác 5.3.4.1 Các biến (varibable) XSLT Thật tốt bạn có cách để thực hàm, tốt bạn sử dụng biến đầu trang Ví dụ: Recipes XSLT cho phép bạn tạo biến tham chiếu đến với dấu $ Trang 107 5.3.4.2 Xử lý với điều kiện (Conditional processing) Điều bạn làm sử dụng trình xử lý với điều kiện cho bạn hiển thị liệu cần thiết Ví dụ: sử dụng câu điều kiện If Recipes Câu lệnh rẽ nhánh trên, giá trị test lớn một, thành phần mở rộng hiển thị giá trị 3, khơng thực có ý nghĩa Bạn xử lý điều kiện rẽ nhánh tốt 5.3.4.3 Choose Trong trường hợp này, bạn có kết hợp câu lệnh rẽ nhánh nếu-thì-ngược_lại if-then-else lệnh case từ ngơn ngữ lập trình truyền thống Thành phần choose hoạt động hộp chứa, thành phần when hiển thị nội dung biểu thức điều kiện Cuối cùng, khơng có thành phần when đúng, xử lý hiển thị nội dung thành phần otherwise Ví dụ: Trang 108 Recipes Recipes have been scaled by an invalid number Recipes have been scaled for multiple portions Xquery Các hàm XQuery cho phép bạn xác lập biểu thức hay dùng lần sử dụng chúng sau Kết cuối gọn hơn, ổn định dễ bảo trì 6.1 Tổng quan Xquery XQuery ngơn ngữ truy vấn tài liệu XML, giống ngôn ngữ truy vấn sở liệu quan hệ SQL XQuery cho phép nhà phát triển ứng dụng sử dụng biểu thức để lấy liệu từ tài liệu XML Dữ liệu giá trị cấu trúc tài liệu, chẳng hạn thành phần với tất thành phần XQuery sử dụng biểu thức XPath, liên quan đến từ khóa FLWOR tiếng: for, let, where, order by, return Những từ khóa cung cấp phương thức mạnh mẽ để tách lấy liệu từ tài liệu XML hầu hết trường hợp Trang 109 Cấu trúc ngữ pháp ngôn ngữ XQuery dựa cấu trúc tài liệu XML XQuery xử lý tốt lệnh (instructions), thuộc tính (attribute) thành phần (element) Xin lưu ý tài liệu XML bạn phải tổ chức tốt không thiết phải hợp lệ để XQuery hoạt động tốt Một tài liệu XML tổ chức tốt (wellformed) nghĩa tuân theo chuẩn XML tổ chức W3C (xem Tài nguyên) Một tài liệu XML hợp lệ tuân theo định kiểu (Type definition DTD) lược đồ 6.2 Hàm XQuery gì? Hàm XQuery giống thủ tục sở liệu quan hệ, chúng thủ tục người dùng định nghĩa sử dụng biểu thức Với người theo trường phái Java hàm XQuery tương đương với phương thức tĩnh cơng cộng lớp tiện ích Ví dụ: declare function local:calculateReceivedIn($delay as xs:integer) { let $receivedIn := ($delay + $shippingDelay) return ($receivedIn) }; Đây hàm tương đối thơ sơ, hữu dụng ứng dụng thương mại điện tử Nó thực phép cộng hai giá trị, tham số hàm biến chương trình (biến tồn cục) Việc khai báo hàm tương đối dễ hiểu với từ declare function Nó thơng báo cho xử lý XQuery rằng, dòng mã theo sau hàm thay biểu thức Trang 110 Tiếp theo, tên hàm có hai phần: local:calculateReceivedIn Phần đứng trước dấu (:) local không gian tên phải tuân theo chuẩn XML Ví dụ sử dụng local Một ứng dụng có vài mô-đun, hàm XQuery dùng không gian tên cụ thể cho mô-đun Phần tên hàm đơn giản tên hàm Trong trường hợp này, calculateReceivedIn tính số để thị cho thông báo "Received in X days" kết xuất Tiếp theo mô tả tham số hay biến Như thông lệ, tham số nằm ngoặc đơn sau tên hàm Tên tham số bắt đầu dấu $ Đây quy định XQuery Lưu ý bạn phải định nghĩa kiểu liệu Trong trường hợp này, kiểu liệu số nguyên integer, nên viết sau as xs:integer Những quen với lược đồ XML nhận cú pháp kiểu liệu Truy cập tài để xem danh sách đầy đủ kiểu liệu Tiếp theo, phần thân hàm Nó bắt đầu kết thúc với dấu ngoặc nhọn { } Nó sử dụng biểu thức chuẩn XQuery thực tính receivedIn Điều thực biểu thức let, biểu thức L năm biểu thức FLWOR tiếng nói Tiếp theo biểu thức cần tính receivedIn tổng delay shippingDelay Nhớ biến shippingDelay biến tồn cục Nó khai báo sẵn mơ-đun XQuery nên khơng cần phải khai báo tham số hàm 6.3 Gọi hàm Xquery Ví dụ: để hiển thị thơng tin cho người dùng, để tính thời gian giao hàng (shipping delay) cho sản phẩm, gọi hàm phía bên ngoặc { } Sử dụng tên đầy đủ (bao gồm không gian tên tên hàm), truyền số liệu nhận từ tài liệu XML vào tham biến Số liệu giá trị thành phần tài liệu XML phải số nguyên không xử lý XQuery cảnh báo Lưu ý bạn nhận giá trị tham biến cách sử dụng biểu thức XQuery chuẩn Sau đó, giá trị lấy từ thành phần tài liệu XML cộng với giá trị Trang 111 $shippingDelay Nó trả lại tổng hai giá trị trên, kết đoạn mã ví dụ Sau cách gọi: {local:calculateReceivedIn($minnow/availability/shipping/delay)} 6.4 Lợi ích dùng hàm Xquery Một số lợi ích dùng hàm XQuery: Các biểu thức XQuery dễ đọc Sự độc lập Hàm Xquery cho phép nhà phát triển độc lập xác định cách mà liệu xử lý trước trả biểu thức XQuery sử dụng để tìm liệu đầu vào cho hàm Tính tái sử dụng cao ... trữ hầu hết ứng dụng Web phức tạp sử dụng để định nghĩa cho lược đồ sở liệu động Hiện có nhiều nghiên cứu xoay quanh vấn đề tìm kiếm rút trích thông tin từ XML Một phương pháp quan tâm phát triển... cứu lý thuyết để đo lường tương đồng cấu trúc tài liệu XML DTD để làm tảng phục vụ cho việc tìm kiếm, rút trích phân loại thơng tin từ nguồn liệu XML Trang Giới thiệu chung Sự tương đồng đóng vai... Internet, nguồn liệu lớn dần hình thành với đa dạng thông tin, cấu trúc lưu trữ mã hóa Do đa dạng trên, nhu cầu xây dựng hệ thống để trao đổi thông tin qua lại cần thiết Tuy nhiên, hệ thống liệu lớn liệu