Home » XML » Namespace di XML: Cara Membuat dan Codenya

Namespace di XML: Cara Membuat dan Codenya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

XML Namespaces menyediakan metode untuk menghindari konflik nama elemen.

Konflik Nama

Dalam XML, nama elemen ditentukan oleh developer. Hal ini sering menimbulkan konflik saat mencoba 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 (perabot rumah tangga):

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Jika fragmen XML ini ditambahkan bersama-sama, akan ada konflik nama. Keduanya mengandung elemen <table>, tetapi elemen tersebut memiliki konten dan arti yang berbeda.

Seorang pengguna atau aplikasi XML tidak akan tahu bagaimana menangani perbedaan ini.

Memecahkan Konflik Nama Menggunakan Prefix(awalan)

Konflik nama dalam XML dapat dengan mudah dihindari 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>

Pada contoh di atas, tidak akan ada konflik karena dua elemen<table> memiliki nama yang berbeda yaitu dibedakan dengan prefix(awalan) h dan f.

XML Namespaces – Atribut xmlns

Saat menggunakan prefiks dalam XML, namespace untuk prefiks(awalan) harus ditentukan.

Namespace dapat ditentukan dengan atribut xmlns di tag awal sebuah elemen.

Deklarasi namespace 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="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

Pada contoh di atas:

Atribut xmlns dalam elemen pertama memberi prefix h: ruang nama yang memenuhi syarat.

Atribut xmlns dalam elemen kedua memberikan prefiks f: namespace yang memenuhi syarat.

Ketika namespace ditentukan untuk sebuah elemen, semua elemen turunan dengan awalan yang sama dikaitkan dengan namespace yang sama.

Namespaces juga bisa dideklarasikan dalam elemen root XML, seperti di bawah ini:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.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>

Catatan: URI namespace tidak digunakan oleh parser untuk mencari informasi.

Tujuan menggunakan URI adalah memberi namespace sebuah nama yang unik.

Namun, perusahaan sering menggunakan namespace sebagai penunjuk ke halaman web yang berisi informasi namespace.

Uniform Resource Identifier (URI)

Uniform Resource Identifier (URI) adalah serangkaian karakter yang mengidentifikasi Internet Resouce.

URI yang paling umum adalah Uniform Resource Locator (URL) yang mengidentifikasi alamat domain Internet. Jenis URI lain yang tidak begitu umum adalah Uniform Resource Name (URN).

Namespaces Default

Mendefinisikan namespace default untuk sebuah elemen menyelamatkan kita dari penggunaan prefiks di semua elemen anak.

Berikut ini contoh sintaksnya :

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 sebuah perabot:

<table xmlns="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Namespaces dalam Penggunaannya

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.

Ruang nama “http://www.w3.org/1999/XSL/Transform” mengidentifikasi elemen XSLT di 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>Koleksi CD</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Judul</th>
      <th style="text-align:left">Artis</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>

You may also like