Bài 06: Tìm hiểu XML Namespace

test php

1. XML Namespace là gì?

Cấu trúc một tài liệu XML được xây dựng bởi các lập trình viên, cho phép họ tự đặt tên thẻ XML (XML Element). Tuy nhiên, việc này có thể dẫn đến xung đột tên thẻ trong một file XML, khiến cho không phân biệt được thẻ nào dùng cho ứng dụng nào.

Ví dụ: Trùng tên thẻ “Title”.

Trong tài liệu này, có hai thẻ “Title”. Thẻ thứ nhất là tên của khách hàng và thẻ thứ hai là tên của sản phẩm. Điều này được gọi là xung đột thẻ XML.

Bài viết này được đăng tại HEFC

Nếu bạn nghĩ rằng việc này không đáng lo ngại, thì đúng rồi đấy. Tuy nhiên, trong trường hợp sử dụng kết hợp nhiều tài liệu XML với nhau, sẽ dẫn đến sự nhầm lẫn tệ hại. Vì vậy, để giải quyết vấn đề này, ta phải sử dụng XML Namespace.

Cú pháp tạo XML namespace:

Để tạo một namespace, ta sẽ khai báo một thuộc tính “xmlns:uri”.

  • “xmlns” là viết tắt của từ “XML namespace”.
  • “uri” là đường dẫn URL của namespace, có thể là một địa chỉ trên internet hoặc một địa chỉ khác, nhưng phải đảm bảo rằng nó là duy nhất trong file tài liệu XML.

Ví dụ:

Như vậy, các thẻ XML cũng phải bổ sung tên của namespace theo cú pháp “namespace_name:element_name”.

Liên tưởng tới truy vấn T-SQL:

Trong ngôn ngữ T-SQL, để giải quyết vấn đề này, ta sử dụng lệnh “as” (alias) và dấu chấm để tránh sự nhầm lẫn.

Ví dụ: Có hai bảng tin tức và chuyên mục có trùng tên field “id”. Để lấy danh sách tin tức và chuyên mục của tin tức đó kèm “id” của cả hai, ta phải viết câu SQL dạng:

2. Namespace mặc định

Nếu tài liệu chỉ sử dụng một namespace, ta có thể khai báo namespace mặc định cho nó bằng cách chỉ sử dụng từ khóa “xmlns” và bỏ đi tên của namespace.

Ví dụ:

Tuy nhiên, giả sử chúng ta có hai namespace mặc định trong một tài liệu XML như trường hợp dưới đây:

Trường hợp này, nếu ta có nhiều đơn hàng, ta phải tạo nhiều namespace mặc định. Điều này khá phiền toái nếu ta có 1000 đơn hàng. Để giải quyết vấn đề này, ta khai báo namespace ngay tại thẻ Root.

Đó là những vấn đề ta cần biết về namespace trong XML.

3. Lời kết

Có lẽ sau bài này bạn vẫn còn nhiều vướng mắc về công dụng của namespace trong thực tế. Nếu vậy, hãy chờ các bài nâng cao, chúng ta sẽ thấy tận mắt nhé.

Bài này cũng khá đơn giản nên nội dung hơi ngắn. Hy vọng rằng các bạn đã hiểu bài.

HEFC at hefc.edu.vn

Related Posts

[Phần 1] Tổng quan về Entity framework core

1. Giao tiếp C# với database và các nguồn dữ liệu khác. Sử dụng thư viện ADO.NET (ActiveX Data Object) là thư viện được xây dựng sẵn…

Đặt vòng tránh thai IUD và những thông tin cần biết

Phương pháp đặt vòng tránh thai hiện không còn quá xa lạ với nhiều chị em. Ngoài công dụng tránh thai an toàn, thì vòng tránh thai…

Quảng canh nông nghiệp (Extensive farming) là gì? Quảng canh và thâm canh

Hình minh họa (Nguồn: pinterest) Quảng canh nông nghiệp Khái niệm Quảng canh nông nghiệp trong tiếng Anh gọi là Extensive farming hay Extensive agriculture. Quảng canh…

Cool boy là gì? 3 dấu hiệu chứng tỏ anh ấy là một coolboy chính hiệu

Nghe tới cool boy bạn đã thấy hơi sởn gai ốc rồi phải không nào, đây là các anh chàng cực lạnh lùng trong truyền thuyết nhưng…

Thương mại đầu vào là gì? Vai trò và nhiệm vụ

Hình minh hoạ (Nguồn: indiatimes) Thương mại đầu vào Khái niệm Thương mại đầu vào là hoạt động đầu tiên trong quá trình sản xuất kinh doanh…

Tổng quan về ma trận

Với số nguyên dương (n), tập hợp tất cả các ma trận kích thước (ntimes n) được đóng kín dưới phép toán cộng và nhân, tạo thành…