1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu và so sánh một số kỹ thuật nén XML

96 41 0

Đ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

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ HỒNG ANH TÌM HIỂU VÀ SO SÁNH MỘT SỐ KỸ THUẬT NÉN XML LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà nội - 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ HỒNG ANH TÌM HIỂU VÀ SO SÁNH MỘT SỐ KỸ THUẬT NÉN XML Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm Mã số LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS VÕ ĐÌNH HIẾU Hà nội - 2014 Lời cam đoan Tôi xin cam đoan kết đạt luận văn sản phẩm riêng cá nhân tơi Trong tồn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà nội, ngày 30 tháng năm 2014 Người cam đoan Đặng Thị Hoàng Anh Lời cảm ơn Trong q trình học tập hồn thành luận văn tốt nghiệp, nhận rẩt nhiều giúp đỡ, động viên từ thầy cơ, gia đình bạn bè Tôi muốn bày tỏ cảm ơn sâu sắc tới tất người Tơi xin bày tỏ cám ơn đặc biệt tới TS Võ Đình Hiếu, người định hướng cho lựa chọn đề tài, đưa nhận xét quý giá trực tiếp hướng dẫn tơi suốt q trình nghiên cứu hồn thành luận văn tốt nghiệp Tơi xin cảm ơn thầy cô khoa CNTT - Trường Đại học Công nghệ - ĐHQG Hà Nội dạy bảo tận tình cho tơi suốt khoảng thời gian học tập trường Tơi xin cảm ơn tồn thể bạn bè đồng nghiệp Công ty IFI Solution, đơn vị mà công tác, chia sẻ, giúp đỡ tạo điều kiện cho tơi tham gia khố học hồn thành khố luận Xin cảm ơn tất bạn bè giúp đỡ suốt q trình học tập cơng tác Cuối cùng, tơi xin gửi lời cảm ơn sâu sắc tới gia đình mình, nguồn động viên cổ vũ lớn lao động lực giúp thành công công việc sống Hà Nội, ngày 30 tháng năm 2014 Đặng Thị Hoàng Anh Mục lục Lời cam đoan Lời cảm ơn Mục lục Danh mục ký hiệu chữ viết tắt Danh mục bảng Danh mục hình vẽ Danh mục biểu đồ Mở đầu Chương 1:TỔNG QUAN XML 1.1.Tổng quan XML 1.2.Ưu điểm XML 1.3.So sánh XML HTML 1.3.1 Sự giống XML HTML 1.3.2 Sự khác XML HTML 1.4.Cấu trúc tài liệu XML 1.5.Cú pháp 1.5.1 Khai báo XML 1.5.2 Thể tài liệu (Document Instance) 1.5.3 Thuộc tính (Attrib 1.5.4 Khai báo kiểu tài liệu 1.6.Định nghĩa kiểu tài liệu 1.7.Ngôn ngữ định nghĩa lược đồ XML 1.8 XSL Chương 2.TỔNG QUAN NÉN DỮ LIỆU 2.1.Nén liệu 2.1.1 Định nghĩa 2.1.2 Phân loại 2.1.2.1 Nén tổn hao (lossy compression) 2.1.2.2 Nén không tổn hao (lossess compression) 2.1.3 Một số khái niệm 2.1.3.1 Tỷ lệ nén (compression ratio) 2.1.3 2.1.3.3 Độ dư thừa liệu 2.2.Các kỹ thuật nén XML 2.2.1 Tính phân 2.2.1.1 Các kỹ thuật nén văn tổng quát 2.2.1.2 Các kỹ thuật nén XML không truy vấn 2.2.1 Chương MỘT SỐ KỸ THUẬT N 3.1 XMill 3.1.1 Tổng quan XMill 3.1.2 Kiến trúc XMill 3.1.2.1 Phân chia cấu trúc từ nội dung 3.1.2.2 Nhóm giá trị liệu dựa ngữ nghĩa 3.1.2.3 Các nén ngữ nghĩa 3.2 3.2.1 Tổng quan XGrind 3.2.2 Các kỹ thuật nén sử 3.2.2.1 Quá trình nén siêu liệu 3.2.2.2 Q trình nén giá trị thuộc tính kiểu liệt kê 3.2.2.3 Quá trình nén giá trị phần tử thuộc tính t 3.2.3 Nén đồng cấu (Homomorphic Compression) 3.2.4 Kiến trúc XGrind 3.3 XAUST 3.3.1 Tổng quan XAUST 3.3.2 Mã hóa số học mơ hìn 3.3.2.1 Mã hóa số học (Arithmetic Coding) 3.3.2.2 Mơ hình ngữ cảnh hữu hạn (Finite Context Model 3.3.3 Máy tự động hữu hạn xác định 3.3.4 Quá trình nén giải nén sử dụng XAUST 3.4 XSAQCT 3.4.1 Tổng quan XSAQCT 3.4.2 Kiến trúc XSAQCT 3.4.3 Q trình xử lý thuộc tính nội dung tài liệu trộn 3.4.4 Quá trình cài đặt XSAQC 3.4.4.1 Quá trình xây dựng thích TA,D 3.4.4.1.1 Đặc điểm thích TA,D 3.4.4.1.2 Cài đặt thích TA,D 3.4.4.2 Quá trình giải nén XSAQCT 3.4.4.2.1 Bộ thích lại (Reannotator) 3.4.4.2.2 Bộ phục hồi (Restorer) 3.5 EXI 3.5.1 Tổng quan EXI 3.5.2 EXI Header 3.5.2.2 Các bit phân biệt 3.5.2.3 Bit diện cho tùy chọn EXI 3.5.2.5.EXI 3.5.2.6.Padd 3.5.3 EXI Body 3.5.3.1.Even 3.5.3.2.Even 3.5.4 String Table 3.5.5 EXI Grammar 3.5.5.1.Buil 3.5.5.2.Sche 3.5.6 Quá trình nén EXI 3.5.6.1.Bloc 3.5.6.2.Cha 3.5.6.2.1 Kênh cấu trúc (Structure Channel) 3.5.6.2.2 Kênh giá trị (Value Channel) 3.5.6.3 Dòng nén (Compressed Stream) Chương CÀI 4.1 Dữ liệu thử nghiệm 4.2 Môi trường cài đặt 4.3 Đo hiệu thực 4.3.1 Tỷ lệ nén Compression r 4.3.2 Hiệu suất nén (Compression Performance) 4.3.3 Thời gian nén (Compression Time) 4.3.4 Thời gian giải nén Decom 4.4 Kết thực nghiệm KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO Danh mục ký hiệu chữ viết tắt DFA Deterministic Finite Automata DTD GPS Document Type Definition Global Positioning System HTML HyperText Markup Language SGML XML XSD XSLT Standard Generalized Markup Language Extensible Markup Language XML Schema Definition Language Extensible Stylesheet Language Transformations Máy tự động hữu hạn xác định Định nghĩa kiểu tài liệu Hệ thống định vị tồn cầu Ngơn ngữ đánh dấu siêu văn Ngôn ngữ đánh dấu tổng qt hóa tiêu chuẩn Ngơn ngữ đánh dấu mở rộng Ngôn ngữ định nghĩa lược đồ Ngôn ngữ định dạng chuyển đổi mở rộng Danh mục bảng Bảng 1.1: So sánh XML HTML Bảng 1.2: Các thành phần tài liệu XML Bảng 2.1: Danh sách nén không truy vấn [16] 14 Bảng 2.2: Danh sách nén có khả truy vấn [16] 15 Bảng 3.1: Định nghĩa hàm Match c, p [11] 21 Bảng 3.2: Các xử lý ngữ nghĩa nguyên tử (Atomic Semantic Compressors) [11] 22 Bảng 3.3: Mô tả bước thực thuật tốn 3.1 tạo thích tài liệu D hình 3.13 [20] 41 Bảng 3.4: Một số phiên định dạng EXI 48 Bảng 3.5: Các tuỳ chọn EXI [6] 48 Bảng 3.6: EXI Events [7] 50 Bảng 3.7: Q trình mã hóa mã kiện EXI compression không thiết lập tùy chọn bit-packed aligment sử dụng [6] 52 Bảng 3.8: Quá trình mã hóa mã kiện EXI compression thiết lập true giá trị pre-compression tùy chọn byte-aligment sử dụng [6] 52 Bảng 3.9: Các kiểu liệu xây dựng sẵn EXI [6] 53 Bảng 3.10: Quá trình thiết lập phân vùng String Table [7] 54 Bảng 4.1: Tập liệu thử nghiệm 63 Bảng 4.2: Môi trường cài đặt thực nghiệm 64 Bảng 4.3: Trình bày kết thực nghiệm sử dụng nén gzip 65 Bảng 4.4: Trình bày kết thực nghiệm sử dụng nén XMill 65 Bảng 4.5: Trình bày kết thực nghiệm sử dụng nén XGrind 65 Bảng 4.6: Trình bày kết thực nghiệm sử dụng nén XAUST .66 Bảng 4.7: Trình bày kết thực nghiệm sử dụng nén EXI (Exificient) 66 Danh mục hình vẽ Hình 1.1: XSLT style sheets sử dụng để chuyển đổi tài liệu XML [18] Hình 1.2: XSLT style sheets sử dụng để chuyển đổi tài liệu XML sang cách biểu diễn khác [18] Hình 2.1: Quá trình nén/giải nén liệu Hình 2.2: Quá trình truyền liệu XML mà khơng có q trình nén XML [17] Hình 2.3: Quá trình truyền liệu XML có sử dụng q trình nén XML [17] Hình 2.4: Phân loại nén XML dựa vào nhận biết cấu trúc tài liệu XML [17] Hình 2.5: Phân loại nén XML dựa vào hỗ trợ khả truy vấn [17] Hình 3.1: Kiến trúc XMill [11] Hình 3.2: Mơ tả q trình XMill phân tách cấu trúc liệu Hình 3.3: Kiến trúc nén XGrind [15] Hình 3.4: DFA phần tử card ví dụ 3.14 Hình 3.5: Kiến trúc XSAQCT [20] Hình 3.6: Minh họa tài liệu D đơn giản [20] Hình 3.7: Cây thích TA,D tài liệu D hình 3.6 [20] Hình 3.8: Quá trình xử lý nội dung tài liệu trộn [20] Hình 3.9: Cây thích TA,D chứa văn [20] Hình 3.10: Biểu diễn tài liệu D có chứa chu trình đơn giản [20] Hình 3.11: Biểu diễn thích tài liệu D có thêm node giả “$” [20] Hình 3.12: Khơi phục lại tài liệu D với node giả “$” [20] Hình 3.13: Biểu diễn tài liệu D áp dụng thuật toán 3.1 [20] Hình 3.14: Biểu diễn thích tài liệu D hình 3.13 [20] Hình 3.15: Biểu diễn thích hồn chỉnh tài liệu D hình 3.13 [20] Hình 3.16: Khôi phục lại tài liệu D từ thích TA,D hình 3.15 [20] Hình 3.17: Cấu trúc EXI Stream [7] Hình 3.18: Định dạng EXI Header [6] Hình 3.19: EXI Cookie [6] Hình 3.20: Các bit phân biệt (Distinguishing Bits) [6] Hình 3.21: Minh họa EXI Stream Body tài liệu Notebook ví dụ 3.23 [7] Hình 3.22: Các đầu vào khởi tạo phân vùng URI [7] Hình 3.23: Các đầu vào khởi tạo phân vùng Prefix [7] Hình 3.24: Các đầu vào khởi tạo phân vùng LocalName [7] Hình 3.25: Các đầu vào khởi tạo phân vùng Value [7] Hình 3.26: Tổng quan trình nén EXI [6] Hình 3.27: Quá trình dồn kênh kiện EXI [6] Hình 3.28: Minh họa trình nén EXI Body Stream hình 3.21 [7] 63 Chương CÀI ĐẶT THỰC NGHIỆM VÀ SO SÁNH MỘT SỐ KỸ THUẬT NÉN Chương tiến hành cài đặt, thực nghiệm, so sánh kỹ thuật nén gzip, XMill, XGrind, XAUST, EXI tập liệu XML chuẩn đưa số hướng dẫn, khuyến nghị hữu ích giúp người dùng lựa chọn công cụ nén phù hợp với yêu cầu sử dụng 4.1 Dữ liệu thử nghiệm Tập liệu thử nghiệm mô tả chi tiết bảng 4.1 Những tập tin thử nghiệm sử dụng báo Sherif Sakr [16] ảng 4.1: Tập liệu thử nghiệm Tập tin tài liệu BaseBall.xml [1] dblp.xml [1] Lineitem.xml [1] Shakespeare.xml [1] SwissProt.xml [1] XMark.xml [24] 64 student.xml [22] 4.2 Môi trường cài đặt ảng 4.2: Môi trường cài đặt thực nghiệm Hệ điều hành CPU Ổ cứng RAM 4.3 Đo hiệu thực 4.3.1 Tỷ lệ nén (Compression ratio) ỷệ é 4.3.2 Hiệu suất nén (Compression Performance) ( ) 4.3.3 Thời gian nén (Compression Time) Thời gian nén khoảng thời gian bắt đầu thực chương trình tất liệu ghi xuống đĩa Thời gian nén trình bày bảng kết thực nghiệm 4.3, 4.4, 4.5, 4.6 4.7 tính thời gian nén trung bình 10 lần chạy thực nghiệm sử dụng nén XML để nén tập tin tài liệu thử nghiệm 4.3.4 Thời gian giải nén (Decompression Time) Thời gian giải nén khoảng thời gian bắt đầu thực chương trình thực đọc định dạng nén tài liệu XML nhận tài liệu gốc ban đầu Thời gian giải nén trình bày bảng kết thực nghiệm 4.3, 4.4, 4.5, 4.6 4.7 tính thời gian giải nén trung bình 10 lần chạy thực nghiệm sử dụng giải nén XML tập tin thử nghiệm nén 4.4 Kết thực nghiệm Tập liệu thử nghiệm thực nén tổng quát gzip số nén XML XMill, XGrind, XAUST EXI Kết thu mô tả bảng 4.3, 4.4, 4.5, 4.6 4.7 65 ảng 4.3: Trình bày kết thực nghiệm sử dụng nén gzip Tập tin BaseBall.xml dblp.xml Lineitem.xml Shakespeare.xml SwissProt.xml XMark.xml student.xml ảng 4.4: Trình bày kết thực nghiệm sử dụng nén XMill Tập tin BaseBall.xml dblp.xml Lineitem.xml Shakespeare.xml SwissProt.xml XMark.xml student.xml ảng 4.5: Trình bày kết thực nghiệm sử dụng nén XGrind Tập tin BaseBall.xml dblp.xml Lineitem.xml Shakespeare.xml SwissProt.xml XMark.xml student.xml 66 ảng 4.6: Trình bày kết thực nghiệm sử dụng nén XAUST Tập tin BaseBall.xml dblp.xml Lineitem.xml Shakespeare.xml SwissProt.xml XMark.xml student.xml ảng 4.7: Trình bày kết thực nghiệm sử dụng nén EXI (Exificient) Tập tin BaseBall.xml dblp.xml Lineitem.xml Shakespeare.xml SwissProt.xml XMark.xml student.xml Biểu đ4.1: So sánh tỷ lệ nén nén gzip, XMill, XGrind, XAUST EXI Biểu đ 4.2: So sánh hiệu suất nén nén gzip, XMill, XGrind, XAUST EXI Thời gian nén (ms) 1100000 1000000 900000 800000 700000 600000 500000 400000 300000 200000 100000 Biểu đ 4.3: So sánh thời gian nén nén gzip, XMill, XGrind, XAUST EXI 68 Biểu đồ 4.1 biểu đồ 4.2 cho thấy XGrind nén có tỷ lệ nén tồi nhất, sau gzip, XMill EXI XAUST hai nén có tỷ lệ nén tốt Hiệu suất nén lớn nén XAUST 95.61%, nén EXI 95,66% tập tin BaseBall.xml Biểu đồ 4.3 cho thấy nén XAUST thực trình nén nhiều thời gian Bộ nén XAUST nén tập tin Xmark.xml 953000 ms nén XMill 16671 ms Thời gian nén XGrind lớn Gzip thời gian nén XMill nhỏ Cùng thực nén tập tin student.xml, nén XAUST khoảng 19800 ms gấp gần 495 lần so với thời gian nén XMill (40 ms) Biểu đồ 4.4 cho thấy XMill thực q trình giải nén nhanh nhất, sau gzip, EXI, XGrind XAUST thực giải nén lâu Cùng thực giải nén tập tin nén tài liệu XMark.xml, XAUST khoảng 949200 ms gấp khoảng 365 lần so với EXI 4468 ms) 515 lần so với XMill (1842 ms) Thời gian giải nén (ms) 1000000 900000 800000 700000 600000 500000 400000 300000 200000 100000 Biểu đ 4.4: So sánh thời gian giải nén nén gzip, XMill, XGrind, XAUST EXI 69 Lựa chọn công cụ nén tài liệu XML Qua trình nghiên cứu thực nghiệm, luận văn đưa số khuyến nghị cho người dùng lựa chọn công cụ nén tài liệu XML sau: Nếu người dùng quan tâm đến tỉ lệ nén tập tin XML có sử dụng tập tin DTD định nghĩa cấu trúc tài liệu nén XAUST lựa chọn tốt Nếu có tài liệu XML mà khơng có kèm theo tập tin DTD XSD nên sử dụng nén EXI Nếu người dùng quan tâm đến thời gian khơng có tập tin DTD XSD mơ tả cấu trúc tài liệu XML nên sử dụng nén XMill EXI Khi người dùng muốn sử dụng nén có khả truy vấn liệu trình nén nên dùng XGrind EXI lựa chọn tốt lựa chọn nén vừa đạt tỉ lệ nén cao vừa có thời gian nén xử lý nhanh Kết luận Trong chương này, luận văn tiến hành cài đặt thực nghiệm, so sánh kỹ thuật nén gzip, XMill, XGrind, XAUST, EXI tập liệu XML chuẩn từ kết thu luận văn đưa số hướng dẫn, khuyến nghị hữu ích giúp người dùng lựa chọn công cụ nén phù hợp với yêu cầu sử dụng 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Qua thời gian tìm hiểu nghiên cứu số thuật toán nén XML, luận văn đạt số kết khái quát kiến thức chung XML khái niệm liên quan định nghĩa kiểu tài liệu DTD , ngôn ngữ định nghĩa lược đồ XSD , ngôn ngữ định dạng chuyển đổi mở rộng (XSLT) Luận văn tìm hiểu kỹ thuật nén liệu văn tổng quát, văn XML Kiến trúc trình cài đặt nén, giải nén dựa năm thuật toán nén XML bao gồm XMill, XGrind, XAUST, XSAQCT EXI trình bày chi tiết, rõ ràng Một phần quan trọng luận văn tiến hành thực nghiệm để đánh giá số kỹ thuật nén Kết thực nghiệm nén Gzip, XMill, XGrind, XAUST EXI cho thấy XAUST, EXI hai nén XML có tỷ lệ nén tốt XAUST thực trình nén/ giải nén nhiều thời gian XMill nén có thời gian xử lý nén nhanh EXI lựa chọn tốt năm nén vừa có hiệu suất nén cao lẫn thời gian xử lý nén nhanh Luận văn đưa hướng dẫn lựa chọn nén phù hợp với mục đích sử dụng Hướng nghiên cứu luận văn tiếp tục hoàn thiện q trình cài đặt thuật tốn XSAQCT đồng thời phân tích, tìm hiểu thuật tốn nén XML có khả truy vấn XPress, TREECHOP, XQzip, XqueC , so sánh, đánh giá thuật toán dựa khía cạnh tỷ lệ nén, thời gian nén, giải nén truy vấn liệu 71 TÀI LIỆU THAM KHẢO Tiếng Anh Benchmark of XML compression tools, http://xmlcompbench.sourceforge.net BZip2 Compressor, http://www.bzip.org D.A Huffman (1952), A method for the construction of minimum-redundancy codes, Proceedings of the IRE 40 (9), pp.1098–1101 David Salomon (2006), Data Compression: The Complete ReferenceFourth Edition, Springer, London David Salomon (2007), Variable-length Codes for Data Compression, Springer, London Efficient XML Interchange (EXI) Format 1.0 (Second Edition), http://www.w3.org/TR/2014/REC-exi-20140211 Efficient XML Interchange (EXI) Primer, http://www.w3.org/TR/2014/WDexi-primer-20140424 EXIficent, http://exificient.sourceforge.net GZip Compressor, http://www.gzip.org 10 Hariharan Subramanian, Priti Shankar (2005), Compressing XML documents using recursive finite state automata, Proceeding CIAA'05 Proceedings of the 10th international conference on Implementation and Application of Automata, pp.282– 293 11 Hartmut Liefke, Dan Suciu (2000), XMill: An efficient compressor for XML data, Proceeding SIGMOD '00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data, pp.153-164 12 Ian H Witten, Radford M Neal, John G Cleary (1987), Arithmetic coding for data compression, Magazine Communications of the ACM 30 (6), pp.520-540 13 Open EXI, http://sourceforge.net/projects/openexi 14 P Deutsch (1996), DEFLATE Compressed Data Format Specification version 1.3, http://www.ietf.org/rfc/rfc1951.txt 15 Pankaj M Tolani, Jayant R Haritsa (2002), XGRIND: A query-friendly XML compressor, Proceedings of the 18th International Conference on Data Engineering, IEEE Computer Society, Washington, pp.225-234 16 Sherif Sakr (2009), XML compression techniques: A survey and comparison, Journal of Computer and System Sciences 75 (5), pp.303-322 17 Sherif Sakr (2011), Investigate state-of-the-art XML compression techniques, http://www.ibm.com/developerworks/library/x-datacompression 18 Thomas Erl (2004), Service-Oriented Architecture a Field Guide to Integrating XML and Web Services, Prentice Hall PTR, United States of America 19 Tomasz Müldner, Christopher Fry, Jan Krzysztof Miziołek, Scott Durno 2009 , SXSAQCT and XSAQCT: XML Queryable Compressors 72 20 Tomasz Müldner, Christopher Fry, Jan Krzysztof Miziołek, Scott Durno 2009 , http://www.balisage.net/Proceedings/vol3/html/Muldner01/BalisageVol3Muldner01.html 21 XAUST Compressor, http://drona.csa.iisc.ernet.in/~priti/xaust.tar.gz 22 XGrind Compressor, http://sourceforge.net/projects/xgrind 23 XMill Compressor, http://sourceforge.net/projects/xmill 24 XML Data Repository, http://www.cs.washington.edu/research/xmldatasets/www/repository.html 25 XML Tutorial, http://www.w3schools.com/xml, http://www.quackit.com/xml ... vào tìm hiểu phân loại kỹ thuật nén liệu nói chung bao gồm nén tổn hao, nén khơng tổn hao nén XML nói riêng bao gồm kỹ thuật nén văn tổng quát, kỹ thuật nén XML không truy vấn, kỹ thuật nén XML. .. nén liệu bao gồm nén tổn hao nén không tổn hao Nén liệu XML giới thiệu chương bao gồm kỹ thuật nén văn tổng quát, kỹ thuật nén có nhận biết XML, kỹ thuật nén XML không truy vấn kỹ thuật nén XML. .. thuật nén XML 9 Chương TỔNG QUAN NÉN DỮ LIỆU Chương tập trung vào tìm hiểu phân loại nén liệu bao gồm nén tổn hao, nén không tổn hao nén XML bao gồm kỹ thuật nén văn tổng quát, kỹ thuật nén XML không

Ngày đăng: 11/11/2020, 22:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w