II. Parser:
1. Khái niệm: Là 1 gói phần mềm, 1 thư viện hay 1 công cụ dùng để trước hết phân tích dữ liệu trong file XML và sau đó chuyển đổi dữ liệu này thành dạng dữ liệu mà các phần mềm khác có thể sử dụng được.
2. Các kỹ thuật phân tích:
- Phân tích dựa trên sự kiện (Event-based): Theo kỹ thuật này dữ liệu trong XML sẽ được đọc tuần tự từ trên xuống. Mỗi lần đọc 1 phần của dữ liệu sẽ được đưa vào phân tích ví dụ như 1 element. Simple API for XML (SAX) được xây dựng trên kỹ thuật này.
- Phân tích dựa trên đối tượng (Object-based): Theo kỹ thuật này dữ liệu trong XML sẽ được đọc và phân tích trên bộ nhớ. Document Object Model (DOM) được xây dựng theo kỹ thuật này.
III. Phân biệt:
1. DOM:
- Document Object Model là một phương pháp tiếp cận dữ liệu từ XML, trong đó tất cả các thành phần của XML như thẻ, thuộc tính, text… đều được xem như là các đối tượng. Dựa vào các đối tượng này mà chúng ta có thể trích xuất thông tin, thay đổi thông tin hay truy vấn thông tin dựa vào các hàm mà đối tượng cung cấp.
- W3C DOM là tiêu chuẩn mà W3School giới thiệu. Tiêu chuẩn này không phụ thuộc vào hệ điều hành hay ngôn ngữ lập trình. W3C DOM được chia làm 3 phần: Core DOM, XML DOM, HTML DOM.
- Tất cả các thành phần trong XML đều được xem như là 1 “node”. Trong đó root là document node, các thẻ là element node, thuộc tính là attribute node, text là text node, ghi chú là comment node…
- Khi parser đọc XML thành đối tượng DOM trên bộ nhớ chúng ta sẽ có 1 cấu trúc cây với các đối tượng là các node và trên cấu trúc này chúng ta sẽ thấy mối quan hệ phân tầng giữa các node. Trên cùng là thẻ root (document node) từ node này chúng ta có thẻ rẻ nhánh đến các tầng thấp hơn của cấu trúc cây cho đến khi chúng ta chạm tới text node là tầng thấp nhất của cấu trúc này. - Mối quan hệ giữa các node được mô tả bằng thuật ngữ “parent” và “child” (cha và con). Thuật ngữ “leaf node” dùng để chỉ các node không có child node.
- Do DOM là tiêu chuẩn của W3School không phụ thuộc vào ngôn ngữ lập trình do đó tất cả các ngôn ngữ lập trình đều có thể dùng tiêu chuẩn này để đọc dữ liệu từ XML.
- Ưu điểm:
- Nhược điểm:
2. SAX:
- Simple API for XML (SAX) là một phương pháp phân tích dữ liệu XML dựa vào sự kiện trong quá trình đọc file XML từ trên xuống dưới. Như vậy để dùng phương pháp này các ngôn ngữ lập trình cần định nghĩa ra các sự kiện và các hàm tương ứng với từng sự kiện. Khi đó người lập trình sẽ viết class dựa trên các hàm mà ngôn ngữ lập trình cung cấp và dùng class này để phân tích dữ liệu XML. Trong quá trình phân tích, khi gặp sự kiện nào parser sẽ gọi các đoạn code trong hàm tương ứng sự kiện để thực thi. Ví dụ như trong Java, khi parser gặp sự kiện mở thẻ, parser sẽ gọi lại các đoạn code trong hàm “startElement” để thi hành.
- Một điểm cần lưu ý rằng SAX không ghi nhớ XML như một cấu trúc cây trên bộ nhớ. SAX chỉ xây dựng cấu trúc của nhiệm vụ đang thi hành trên bộ nhớ do đó SAX sẽ thực hiện nhanh hơn và tốn ít tài nguyên hơn.
- Ưu điểm:
- Nhược điểm:
+ Không hỗ trợ namespace, không thể thêm sửa xóa XML.
=> Tóm lại SAX Parser bao giờ cũng nhanh hơn DOM Parser vì nó chỉ tải một phần nhỏ của tập tin XML và không đòi hỏi nhiều bộ nhớ.
Không có nhận xét nào:
Đăng nhận xét