XName Kelas

Definisi

Mewakili nama elemen atau atribut XML.

public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>
public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>, System::Runtime::Serialization::ISerializable
public sealed class XName : IEquatable<System.Xml.Linq.XName>
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
type XName = class
    interface IEquatable<XName>
type XName = class
    interface IEquatable<XName>
    interface ISerializable
[<System.Serializable>]
type XName = class
    interface IEquatable<XName>
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))>]
type XName = class
    interface IEquatable<XName>
    interface ISerializable
Public NotInheritable Class XName
Implements IEquatable(Of XName)
Public NotInheritable Class XName
Implements IEquatable(Of XName), ISerializable
Warisan
XName
Atribut
Penerapan

Keterangan

Nama XML menyertakan namespace dan nama lokal. Nama berkualifikasi penuh adalah kombinasi namespace dan nama lokal.

Membuat objek XName

XName tidak mengandung konstruktor apa pun yang publik. Sebaliknya, kelas ini menyediakan konversi implisit dari String yang memungkinkan Anda membuat XName. Tempat paling umum Anda menggunakan konversi ini adalah saat membuat elemen atau atribut: Argumen pertama untuk XElement konstruktor adalah XName. Dengan meneruskan string, Anda memanfaatkan konversi implisit. Kode berikut membuat elemen dengan nama tanpa namespace:

XElement root = new XElement("ElementName", "content");
Console.WriteLine(root);

Di Visual Basic, lebih tepat untuk menggunakan literal XML:

Dim root As XElement = <ElementName>content</ElementName>
Console.WriteLine(root)

Contoh ini menghasilkan output berikut:

<ElementName>content</ElementName>

Menetapkan string ke XName menggunakan konversi implisit dari String.

Contoh Visual Basic membuat XElement menggunakan literal XML. Meskipun literal XML digunakan, objek XName dibuat untuk XElement.

Selain itu, Anda dapat memanggil Get metode untuk XName objek. Namun, cara yang disarankan adalah menggunakan konversi implisit dari string.

Membuat XName di namespace

Seperti halnya XML, XName dapat berada dalam namespace, atau dapat tidak berada dalam namespace.

Untuk C#, pendekatan yang direkomendasikan untuk membuat XName dalam sebuah namespace adalah mendeklarasikan objek XNamespace, lalu menggunakan penimpaan operator penambahan.

Untuk Visual Basic, pendekatan yang direkomendasikan adalah menggunakan literal XML dan deklarasi namespace global untuk membuat XML yang ada di namespace.

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "ElementName", "content");
Console.WriteLine(root);
Imports <xmlns="http://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim root As XElement = <ElementName>content</ElementName>
        Console.WriteLine(root)
    End Sub
End Module

Contoh ini menghasilkan output berikut:

<ElementName xmlns="http://www.adventure-works.com">content</ElementName>

Membuat XName tanpa namespace

Properti Namespace dari objek XName dijamin tidak akan bernilai null. Jika XName tidak berada dalam namespace apa pun, maka properti Namespace akan diatur ke None. Kode berikut menunjukkan hal ini:

XElement root = new XElement("ElementName", "content");
if (root.Name.Namespace == XNamespace.None)
    Console.WriteLine("The element is in no namespace.");
else
    Console.WriteLine("The element is in a namespace.");
Dim root As XElement = <ElementName>content</ElementName>
If (root.Name.Namespace Is XNamespace.None) Then
    Console.WriteLine("The element is in no namespace.")
Else
    Console.WriteLine("The element is in a namespace.")
End If

Contoh ini menghasilkan output berikut:

The element is in no namespace.

Menggunakan nama yang diperluas

Anda juga dapat membuat XName dari nama XML yang diperluas dalam bentuk {namespace}localname.

XElement root = new XElement("{http://www.adventure-works.com}ElementName", "content");
Console.WriteLine(root);
Dim root As XElement = New XElement("{http://www.adventure-works.com}ElementName", "content")
Console.WriteLine(root)

Contoh ini menghasilkan output berikut:

<ElementName xmlns="http://www.adventure-works.com">content</ElementName>

Ketahuilah bahwa membuat XName melalui nama yang diperluas kurang efisien daripada membuat objek XNamespace dan menggunakan penggantian fungsi operator penambahan. Ini juga kurang efisien daripada mengimpor namespace global dan menggunakan literal XML di Visual Basic.

Jika Anda membuat XName menggunakan nama yang diperluas, LINQ to XML harus menemukan instance namespace yang diatomisasi. Pekerjaan ini harus diulang untuk setiap penggunaan nama yang diperluas. Waktu tambahan ini kemungkinan dapat diabaikan saat menulis kueri LINQ; namun, mungkin signifikan saat membuat pohon XML besar.

Objek XName diatomisasi

XName objek dijamin akan diatomisasi; artinya, jika dua XName objek memiliki namespace yang sama persis dan nama lokal yang sama persis, mereka akan berbagi instans yang sama. Operator kesetaraan dan perbandingan juga disediakan secara eksplisit untuk tujuan ini.

Di antara manfaat lainnya, fitur ini memungkinkan eksekusi kueri yang lebih cepat. Saat memfilter nama elemen atau atribut, perbandingan yang dinyatakan dalam predikat menggunakan perbandingan identitas, bukan perbandingan nilai. Jauh lebih cepat untuk menentukan bahwa dua referensi benar-benar merujuk ke objek yang sama daripada membandingkan dua string.

Properti

Nama Deskripsi
LocalName

Mendapatkan bagian lokal (tidak memenuhi syarat) dari nama.

Namespace

Mendapatkan bagian namespace dari nama yang sepenuhnya memenuhi syarat.

NamespaceName

Mengembalikan URI untuk XNamespace ini XName.

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah yang ditentukan XName sama dengan ini XName.

Get(String, String)

XName Mendapatkan objek dari nama lokal dan namespace.

Get(String)

XName Mendapatkan objek dari nama yang diperluas.

GetHashCode()

Mendapatkan kode hash untuk ini XName.

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan nama XML yang diperluas dalam format {namespace}localname.

Operator

Nama Deskripsi
Equality(XName, XName)

Mengembalikan nilai yang menunjukkan apakah dua instans XName sama.

Implicit(String to XName)

Mengonversi string yang diformat sebagai nama XML yang diperluas (yaitu,{namespace}localname ) menjadi XName objek.

Inequality(XName, XName)

Mengembalikan nilai yang menunjukkan apakah dua instans XName tidak sama.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IEquatable<XName>.Equals(XName)

Menunjukkan apakah saat ini XName sama dengan yang ditentukan XName.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Mengisi dengan data yang SerializationInfo diperlukan untuk membuat serialisasi objek target.

Berlaku untuk

Lihat juga