Tìm hiểu về namespace trong XML

Nếu các bạn, những ai đã từng những làm việc liên quan đến tập tin XML thì cũng ít nhiều nghe tới khái niệm namespace trong XML. Mình xin đưa ra ví dụ sau đây để các bạn thấy cái nhìn đầu tiên về nó:

Các khai báo xmlns:c1=”https://huongdanjava.com/class1″ hay xmlns:c2=”https://huongdanjava.com/class2″ thì những xmlns:c1 hay xmlns:c2 là những định nghĩa của namespace đó các bạn!

Namespace trong XML là công cụ giúp chúng ta có thể khoanh vùng và truy xuất đến giá trị của một tag nào đó trong một tập tin XML một cách dễ dàng. Các bạn hãy tưởng tượng nếu không có những namespace được định nghĩa như trên:

thì mình phải mất rất nhiều công sức mới truy cập được thông tin của sinh viên có tên là Khanh và địa chỉ là 789 đấy các bạn. Có namespace thì chúng ta có thể chỉ định thông tin mà chúng ta cần lấy nằm ở namespace nào (ở ví dụ trên mang ý nghĩa là lớp học nào) và việc truy cập đến giá trị mà chúng ta muốn sẽ dễ dàng hơn. Không có namespace các bạn phải truy cập qua tất cả các thẻ để kiểm tra giá trị mà chúng ta muốn lấy có đúng không, rồi mới lấy các thông tin liên quan được.

Đơn giản, các bạn cứ tưởng tượng namespace giống như một gia đình. Chúng ta có thể có nhiều gia đình mà thành viên trong những gia đình đó có tên giống nhau. Việc phân chia gia đình giúp chúng ta có thể xác định được thông tin của thành viên mà chúng ta muốn biết một cách nhanh chóng…

Cú pháp của một namespace trong XML như sau:

Trong đó:

  • xmlns là viết tắt của từ XML namespace, giá trị này là không đổi nha các bạn.
  • prefix: tên để chúng ta định danh namespace.
  • URI: thường chúng ta sẽ lấy một địa chỉ URI nào đó, ví dụ như “https://huongdanjava.com/class2” ở trên. Các bạn phải đảm bảo nó là duy nhất, không được trùng với các URI của các namespace khác trong tập tin XML của chúng ta.

Trong trường hợp tập tin XML của các bạn chỉ có một namespace như sau:

thì các bạn chỉ cần khai báo từ khoá xmlns thôi, bỏ prefix và URI đi cũng được. Ví dụ như sau:



2 thoughts on “Tìm hiểu về namespace trong XML

Add Comment