Bagikan melalui


Mengelola Namespace dalam Dokumen XML

Namespace XML mengaitkan elemen dan nama atribut dalam dokumen XML dengan URI kustom dan yang telah ditentukan sebelumnya. Untuk membuat asosiasi ini, Anda menentukan awalan untuk URI namespace, dan menggunakan awalan tersebut untuk memenuhi syarat elemen dan nama atribut dalam data XML. Namespace mencegah tabrakan nama elemen dan atribut, dan mengaktifkan elemen dan atribut dengan nama yang sama untuk ditangani dan divalidasi secara berbeda.

Mendeklarasikan namespace

Untuk mendeklarasikan namespace pada elemen, Anda menggunakan xmlns: atribut :

xmlns:<name>=<"uri">

di mana <name> adalah awalan namespace dan <"uri"> merupakan URI yang mengidentifikasi namespace. Setelah mendeklarasikan awalan, Anda dapat menggunakannya untuk memenuhi syarat elemen dan atribut dalam dokumen XML dan mengaitkannya dengan URI namespace. Karena awalan namespace digunakan di seluruh dokumen, panjangnya harus pendek.

Contoh ini mendefinisikan dua BOOK elemen. Elemen pertama memenuhi syarat oleh awalan, mybook, dan elemen kedua memenuhi syarat oleh awalan, bb. Setiap awalan dikaitkan dengan URI namespace yang berbeda:

<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">  
    <bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>

Untuk menandakan bahwa elemen adalah bagian dari namespace tertentu, tambahkan awalan namespace ke dalamnya. Misalnya, jika sebuah elemen Author termasuk dalam namespace mybook, elemen itu dideklarasikan sebagai <mybook:Author>.

Cakupan deklarasi

Namespace efektif dari titik deklarasinya hingga akhir elemen yang dideklarasikan. Dalam contoh ini, namespace yang ditentukan dalam BOOK elemen tidak berlaku untuk elemen di luar BOOK elemen, seperti Publisher elemen :

<Author>Joe Smith</Author>  
<BOOK xmlns:book="http://www.contoso.com">  
    <title>My Wonderful Day</title>  
      <price>$3.95</price>  
</BOOK>  
<Publisher>  
    <Name>MSPress</Name>  
</Publisher>  

Namespace harus dideklarasikan sebelum dapat digunakan, tetapi tidak harus muncul di bagian atas dokumen XML.

Saat Anda menggunakan beberapa namespace dalam dokumen XML, Anda dapat menentukan satu namespace sebagai namespace default untuk membuat dokumen yang terlihat lebih bersih. Namespace default dideklarasikan dalam elemen root dan berlaku untuk semua elemen yang tidak memenuhi syarat dalam dokumen. Namespace default hanya berlaku untuk elemen, bukan untuk atribut.

Untuk menggunakan namespace default, hilangkan awalan dan titik dua dari deklarasi pada elemen:

<BOOK xmlns="http://www.contoso.com/books.dtd">  
...
</BOOK>

Mengelola namespace layanan

Kelas XmlNamespaceManager menyimpan kumpulan URI namespace layanan dan awalannya, dan memungkinkan Anda mencari, menambahkan, dan menghapus namespace layanan dari koleksi ini. Dalam konteks tertentu, kelas ini diperlukan untuk performa pemrosesan XML yang lebih baik. Misalnya, XsltContext kelas menggunakan XmlNamespaceManager untuk dukungan XPath.

Manajer namespace tidak melakukan validasi apa pun pada namespace, tetapi mengasumsikan bahwa awalan dan namespace telah diverifikasi dan sesuai dengan spesifikasi Namespace W3C.

Nota

LINQ KE XML di C# dan Visual Basic tidak menggunakan XmlNamespaceManager untuk mengelola namespace. Lihat Bekerja dengan Namespace XML (C#) dan Bekerja dengan Namespace XML (Visual Basic) dalam dokumentasi LINQ untuk informasi tentang mengelola namespace layanan saat menggunakan LINQ ke XML.

Berikut adalah beberapa tugas manajemen dan pencarian yang dapat Anda lakukan dengan XmlNamespaceManager kelas . Untuk informasi dan contoh selengkapnya, ikuti tautan ke halaman referensi untuk setiap metode atau properti.

Untuk Gunakan
Menambahkan namespace metode AddNamespace
Menghapus namespace layanan metode RemoveNamespace
Temukan URI untuk namespace default DefaultNamespace Properti
Menemukan URI untuk awalan namespace metode LookupNamespace
Temukan prefix untuk sebuah URI namespace metode LookupPrefix
Dapatkan daftar namespace di simpul saat ini metode GetNamespacesInScope
Cakupan namespace layanan metode PushScope dan PopScope
Periksa apakah prefiks ditentukan dalam cakupan saat ini metode HasNamespace
Dapatkan tabel nama yang digunakan untuk mencari awalan dan URI NameTable Properti

Lihat juga