Mengelola Namespace Layanan dalam Dokumen XML
Kumpulan nama XML mengaitkan nama elemen dan atribut dalam dokumen XML dengan URI kustom dan yang telah ditentukan sebelumnya. Untuk membuat asosiasi ini, Anda menentukan awalan untuk URI namespace layanan, dan menggunakan awalan tersebut untuk memenuhi syarat elemen dan nama atribut dalam data XML. Namespace layanan mencegah tabrakan nama elemen dan atribut, dan mengaktifkan elemen dan atribut dengan nama yang sama untuk ditangani dan divalidasi secara berbeda.
Mendeklarasikan namespace layanan
Untuk mendeklarasikan namespace layanan pada elemen, Anda menggunakan xmlns:
atribut :
xmlns:<name>=<"uri">
di mana <name>
adalah awalan namespace layanan dan <"uri">
merupakan URI yang mengidentifikasi namespace layanan. Setelah mendeklarasikan awalan, Anda dapat menggunakannya untuk memenuhi syarat elemen dan atribut dalam dokumen XML dan mengaitkannya dengan URI namespace layanan. Karena awalan namespace layanan 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 layanan 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 layanan tertentu, tambahkan awalan namespace layanan ke dalamnya. Misalnya, jika Author
elemen milik mybook
namespace layanan, elemen tersebut dinyatakan sebagai <mybook:Author>
.
Cakupan deklarasi
Namespace layanan efektif dari titik deklarasinya sampai akhir elemen yang dideklarasikan. Dalam contoh ini, namespace layanan 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 layanan harus dideklarasikan sebelum itu dapat digunakan, tetapi tidak harus muncul di bagian atas dokumen XML.
Saat Anda menggunakan beberapa namespace layanan dalam dokumen XML, Anda dapat menentukan satu namespace layanan sebagai namespace layanan default untuk membuat dokumen yang terlihat lebih bersih. Namespace layanan default dideklarasikan dalam elemen akar dan berlaku untuk semua elemen yang tidak memenuhi syarat dalam dokumen. Namespace layanan default hanya berlaku untuk elemen, bukan ke atribut.
Untuk menggunakan namespace layanan 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 JalurX.
Pengelola namespace layanan tidak melakukan validasi apa pun pada namespace layanan, tetapi mengasumsikan bahwa awalan dan namespace layanan telah diverifikasi dan sesuai dengan spesifikasi Namespace W3C.
Catatan
LINQ KE XML di C# dan Visual Basic tidak digunakan XmlNamespaceManager untuk mengelola namespace layanan. Lihat Bekerja dengan Kumpulan nama XML (C#) dan Bekerja dengan Kumpulan nama 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 | Menggunakan |
---|---|
Menambahkan namespace layanan | metode AddNamespace |
Menghapus namespace layanan | metode RemoveNamespace |
Menemukan URI untuk namespace layanan default | Properti DefaultNamespace |
Menemukan URI untuk awalan namespace layanan | metode LookupNamespace |
Menemukan awalan untuk URI namespace layanan | metode LookupPrefix |
Mendapatkan daftar namespace layanan di simpul saat ini | metode GetNamespacesInScope |
Cakupan namespace layanan | Metode PushScope dan PopScope |
Memeriksa apakah awalan ditentukan dalam cakupan saat ini | metode HasNamespace |
Mendapatkan tabel nama yang digunakan untuk mencari awalan dan URI | Properti NameTable |