Không gian tên XML
Không gian tên XML cung cấp một phương thức để tránh xung đột tên thành phần.
Xung đột tên
Trong XML, tên phần tử được nhà phát triển xác định. Điều này thường dẫn đến xung đột khi cố gắng trộn các tài liệu XML từ các ứng dụng XML khác nhau.
XML này mang thông tin bảng HTML:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML này mang thông tin về một cái bàn (một món đồ nội thất):
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Nếu các đoạn XML này được thêm vào cùng nhau thì sẽ xảy ra xung đột tên. Cả hai đều chứa phần tử <table> nhưng các phần tử này có nội dung và ý nghĩa khác nhau.
Người dùng hoặc ứng dụng XML sẽ không biết cách xử lý những khác biệt này.
Giải quyết xung đột tên bằng tiền tố
Xung đột tên trong XML có thể dễ dàng tránh được bằng cách sử dụng tiền tố tên.
XML này mang thông tin về một bảng HTML và một món đồ nội thất:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
Trong ví dụ trên sẽ không có xung đột vì hai phần tử <table> có tên khác nhau.
Không gian tên XML - Thuộc tính xmlns
Khi sử dụng tiền tố trong XML, phải xác định không gian tên cho tiền tố.
Không gian tên có thể được xác định bằng thuộc tính xmlns trong thẻ bắt đầu của một phần tử.
Khai báo không gian tên có cú pháp sau. xmlns: tiền tố =" URI ".
<root>
<h:table xmlns:h="https://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="https://www.example.com.vn/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Trong ví dụ trên:
Thuộc tính xmlns trong phần tử <table> đầu tiên cung cấp cho tiền tố h: một không gian tên đủ điều kiện.
Thuộc tính xmlns trong phần tử <table> thứ hai cung cấp cho tiền tố f: một không gian tên đủ điều kiện.
Khi một không gian tên được xác định cho một phần tử, tất cả các phần tử con có cùng tiền tố sẽ được liên kết với cùng một không gian tên.
Các không gian tên cũng có thể được khai báo trong phần tử gốc XML:
<root xmlns:h="https://www.w3.org/TR/html4/"
xmlns:f="https://www.example.com.vn/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Lưu ý: Trình phân tích cú pháp không sử dụng URI không gian tên để tra cứu thông tin.
Mục đích của việc sử dụng URI là đặt cho không gian tên một tên duy nhất.
Tuy nhiên, các công ty thường sử dụng không gian tên như một con trỏ tới trang web chứa thông tin về không gian tên.
Mã định danh tài nguyên thống nhất (URI)
Mã định danh tài nguyên thống nhất (URI) là một chuỗi ký tự xác định Tài nguyên Internet.
URI phổ biến nhất là Bộ định vị tài nguyên thống nhất (URL) xác định địa chỉ miền Internet. Một loại URI khác không quá phổ biến là Tên tài nguyên thống nhất (URN).
Không gian tên mặc định
Việc xác định một không gian tên mặc định cho một phần tử giúp chúng ta không phải sử dụng tiền tố trong tất cả các phần tử con. Nó có cú pháp sau:
xmlns=" namespaceURI "
XML này mang thông tin bảng HTML:
<table xmlns="https://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML này mang thông tin về một món đồ nội thất:
<table xmlns="https://www.example.com.vn/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Không gian tên được sử dụng thực tế
XSLT là ngôn ngữ có thể được sử dụng để chuyển đổi tài liệu XML sang các định dạng khác.
Tài liệu XML bên dưới là tài liệu được sử dụng để chuyển đổi XML thành HTML.
Không gian tên "https://www.w3.org/1999/XSL/Transform" xác định các phần tử XSLT bên trong tài liệu HTML:
<?xml version="1.0" encoding="UTF-8 " ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="https://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr>
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Nếu bạn muốn tìm hiểu thêm về XSLT, vui lòng đọc Hướng dẫn XSLT của chúng tôi.