XML Namespaces menyediakan metode untuk menghindari konflik nama elemen.
nama Konflik
Dalam XML, nama elemen didefinisikan oleh pengembang. Ini sering mengakibatkan konflik ketika mencoba untuk mencampur dokumen XML dari aplikasi XML yang berbeda.
XML ini membawa informasi tabel HTML:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML ini membawa informasi tentang meja (a piece of furniture) :
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Jika fragmen XML ini ditambahkan bersama-sama, akan ada konflik nama. Kedua mengandung <table> elemen, namun unsur memiliki konten yang berbeda dan makna.
Seorang pengguna atau aplikasi XML tidak akan tahu bagaimana menangani perbedaan-perbedaan ini.
Memecahkan Nama Konflik Menggunakan Awalan
Nama konflik di XML dapat dengan mudah dihindari dengan menggunakan awalan nama.
XML ini membawa informasi tentang tabel HTML, dan perabot:
<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>
Dalam contoh di atas, tidak akan ada konflik karena kedua <table> elemen memiliki nama yang berbeda.
Namespaces XML - The xmlns Atribut
Bila menggunakan prefiks dalam XML, sebuah namespace untuk awalan harus didefinisikan.
Namespace dapat didefinisikan oleh xmlns atribut dalam tag awal sebuah elemen.
Namespace deklarasi memiliki sintaks berikut. xmlns: prefix =" URI " .
<root>
<h:table xmlns:h="http://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="http://www.w3ii.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Dalam contoh di atas:
The xmlns atribut dalam pertama <table> elemen memberikan h: awalan namespace yang berkualitas.
The xmlns atribut di kedua <table> elemen memberikan f: awalan namespace yang berkualitas.
Ketika namespace didefinisikan untuk elemen, semua elemen anak dengan awalan yang sama terkait dengan namespace yang sama.
Namespaces juga dapat dideklarasikan dalam elemen XML root:
<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3ii.com/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>
Note: The namespace URI tidak digunakan oleh parser untuk mencari informasi.
Tujuan menggunakan URI adalah untuk memberikan namespace nama yang unik.
Namun, perusahaan sering menggunakan namespace sebagai pointer ke halaman web yang berisi informasi namespace.
Uniform Resource Identifier (URI)
Sebuah Uniform Resource Identifier (URI) adalah string karakter yang mengidentifikasi suatu Sumber Daya Internet.
Yang paling umum URI adalah Uniform Resource Locator (URL) yang mengidentifikasi alamat domain Internet. Lain, bukan tipe begitu umum dari URI adalah Universal Resource Name (URN) .
Ruang nama default
Mendefinisikan namespace default untuk elemen menyelamatkan kita dari menggunakan prefiks di semua elemen anak. Ini memiliki sintaks berikut:
xmlns="namespaceURI"
XML ini membawa informasi tabel HTML:
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML ini membawa informasi tentang sepotong mebel:
<table xmlns="http://www.w3ii.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Ruang nama di Gunakan Nyata
XSLT adalah bahasa yang dapat digunakan untuk mengubah dokumen XML menjadi format lain.
Dokumen XML di bawah ini, adalah dokumen yang digunakan untuk mengubah XML menjadi HTML.
Namespace "http://www.w3.org/1999/XSL/Transform" mengidentifikasi elemen XSLT dalam dokumen HTML:
<?xml version="1.0" encoding="UTF-8 " ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://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>
Jika Anda ingin mempelajari lebih lanjut tentang XSLT, baca XSLT Tutorial .