Bagikan melalui


Cara mengontrol awalan namespace (LINQ ke XML)

Artikel ini menjelaskan cara mengontrol awalan namespace saat membuat serial pohon XML di C# dan Visual Basic.

Dalam banyak situasi, tidak perlu mengontrol awalan namespace. Namun, alat pemrograman XML tertentu memerlukannya. Misalnya, Anda mungkin sedang memanipulasi lembar gaya XSLT atau dokumen XAML yang berisi ekspresi JalurX tertanam yang merujuk ke awalan namespace tertentu. Dalam kasus seperti itu, penting bahwa dokumen diserialkan dengan awalan tersebut. Ini adalah alasan umum untuk mengontrol awalan namespace.

Alasan lain adalah Anda ingin pengguna mengedit dokumen XML secara manual, dan Anda ingin membuat awalan namespace yang nyaman bagi pengguna untuk diketik. Misalnya, Anda mungkin sedang membuat dokumen XSD. Konvensi untuk skema menyarankan agar Anda menggunakan salah satu dari xs atau xsd sebagai awalan untuk namespace skema.

Untuk mengontrol awalan namespace, Anda menyisipkan atribut yang mendeklarasikan namespace. Jika Anda mendeklarasikan namespace dengan awalan tertentu, LINQ ke XML akan mencoba untuk menghormati awalan namespace saat membuat serialisasi.

Untuk membuat atribut yang mendeklarasikan namespace dengan awalan, Anda membuat atribut di mana namespace nama atribut adalah Xmlns, dan nama atribut adalah awalan namespace. Nilai atribut adalah URI dari namespace.

Contoh: Buat dua namespace yang memiliki awalan

Contoh ini mendeklarasikan dua namespace. Ini menentukan awalan aw untuk namespace http://www.adventure-works.com, dan awalan fc untuk namespace www.fourthcoffee.com.

XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XElement root = new XElement(aw + "Root",
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
    new XAttribute(XNamespace.Xmlns + "fc", "www.fourthcoffee.com"),
    new XElement(fc + "Child",
        new XElement(aw + "DifferentChild", "other content")
    ),
    new XElement(aw + "Child2", "c2 content"),
    new XElement(fc + "Child3", "c3 content")
);
Console.WriteLine(root);
Imports <xmlns:aw="http://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">

Module Module1

    Sub Main()
        Dim root As XElement = _
            <aw:Root>
                <fc:Child>
                    <aw:DifferentChild>other content</aw:DifferentChild>
                </fc:Child>
                <aw:Child2>c2 content</aw:Child2>
                <fc:Child3>c3 content</fc:Child3>
            </aw:Root>
        Console.WriteLine(root)
    End Sub

This example produces the following output:

```xml
<aw:Root xmlns:aw="http://www.adventure-works.com" xmlns:fc="www.fourthcoffee.com">
  <fc:Child>
    <aw:DifferentChild>other content</aw:DifferentChild>
  </fc:Child>
  <aw:Child2>c2 content</aw:Child2>
  <fc:Child3>c3 content</fc:Child3>
</aw:Root>

Lihat juga