XName Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
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, |
| 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. |