XName Sınıf

Tanım

XML öğesinin veya özniteliğinin adını temsil eder.

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
Devralma
XName
Öznitelikler
Uygulamalar

Açıklamalar

XML adları bir ad alanı ve yerel ad içerir. Tam nitelikli ad, ad alanı ile yerel adın birleşimidir.

XName nesnesi oluşturma

XName herhangi bir ortak oluşturucu içermez. Bunun yerine, String öğesinden bir XName oluşturmanızı sağlayan örtük bir dönüştürme sunar. Bu dönüştürmeyi en sık kullandığınız yer, bir öğe veya öznitelik oluştururken olur: XElement oluşturucusunun ilk bağımsız değişkeni bir XName'dir. Bir dize geçirerek örtük dönüştürmeden yararlanacaksınız. Aşağıdaki kod, herhangi bir ad alanında olmayan bir ada sahip bir öğe oluşturur.

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

Visual Basic'te XML ifadelerini kullanmak daha uygun olabilir.

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

Bu örnek aşağıdaki çıkışı oluşturur:

<ElementName>content</ElementName>

Bir dizeyi XName öğesine atamak, String'den örtük dönüşüm kullanır.

Visual Basic örneği, XElement öğesini XML literalleri kullanarak oluşturur. XML değişmez değerleri kullanılmasına rağmen, XName için bir XElement nesne oluşturulur.

Ayrıca, bir Get nesne için XName yöntemini çağırabilirsiniz. Ancak, önerilen yol, dizenin örtük dönüşümünü kullanmaktır.

Ad alanında XName oluşturma

XML'de olduğu gibi, bir XName ad alanında veya ad alanında bulunmayabilir.

C# için, bir ad alanında XName oluşturmanın önerilen yaklaşımı, XNamespace nesnesini bildirmek ve ardından toplama işleç geçersiz kılmasını kullanmaktır.

Visual Basic için önerilen yaklaşım, bir ad alanında XML oluşturmak için XML değişmezlerini ve genel ad alanı bildirimlerini kullanmaktır.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Alan adı olmadan XName oluşturma

Namespace Bir XName nesnenin özelliğinin null olmaması garanti edilir. XName herhangi bir ad alanında değilse, Namespace özelliği None olarak ayarlanır. Aşağıdaki kod bunu gösterir:

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

Bu örnek aşağıdaki çıkışı oluşturur:

The element is in no namespace.

Genişletilmiş adları kullanma

Bir genişletilmiş XML adı biçimindeki XName'den de {namespace}localname oluşturabilirsiniz.

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)

Bu örnek aşağıdaki çıkışı oluşturur:

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

Genişletilmiş bir isim kullanarak XName oluşturmanın, XNamespace nesnesi oluşturup toplama operatörünün geçersiz kılmasını kullanmaktan daha az verimli olduğunu unutmayın. Ayrıca, genel ad alanını içeri aktarmaktan ve Visual Basic'te XML değişmez değerlerini kullanmaktan daha az verimlidir.

Genişletilmiş bir ad kullanarak bir XName oluşturursanız, LINQ to XML bir ad alanının atomize örneğini bulmalıdır. Bu çalışma, genişletilmiş bir adın her kullanımı için yinelenmelidir. LinQ sorguları yazarken bu ek süre göz ardı edilebilir; ancak, büyük bir XML ağacı oluştururken önemli olabilir.

XName nesneleri atomize edilir

XName nesnelerin atomize edilmesi garanti edilir; yani, iki XName nesne tam olarak aynı ad alanına ve tam olarak aynı yerel ada sahipse, aynı örneği paylaşır. Eşitlik ve karşılaştırma işleçleri de bu amaçla açıkça sağlanır.

Bu özellik, diğer avantajlar arasında, sorguların daha hızlı yürütülmesini sağlar. Öğelerin veya özniteliklerin adı filtrelendiğinde, koşullarda ifade edilen karşılaştırmalar değer karşılaştırmasını değil kimlik karşılaştırmasını kullanır. İki başvurunun aslında aynı nesneye başvurduğunu belirlemek, iki dizeyi karşılaştırmaktan çok daha hızlıdır.

Özellikler

Name Description
LocalName

Adın yerel (nitelenmemiş) bölümünü alır.

Namespace

Tam adın ad alanı bölümünü alır.

NamespaceName

Bu XNamespaceiçin öğesinin URI'sini XName döndürür.

Yöntemler

Name Description
Equals(Object)

Belirtilen XName öğesinin bu XNameöğesine eşit olup olmadığını belirler.

Get(String, String)

XName Yerel bir ad ve ad alanından bir nesne alır.

Get(String)

XName Genişletilmiş bir addan nesne alır.

GetHashCode()

Bu XNameiçin bir karma kodu alır.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Genişletilmiş XML adını biçiminde {namespace}localnamedöndürür.

İşleçler

Name Description
Equality(XName, XName)

İki örneğinin XName eşit olup olmadığını belirten bir değer döndürür.

Implicit(String to XName)

Genişletilmiş XML adı olarak biçimlendirilmiş bir dizeyi nesneye{namespace}localnameXName dönüştürür.

Inequality(XName, XName)

İki örneğinin XName eşit olup olmadığını belirten bir değer döndürür.

Belirtik Arabirim Kullanımları

Name Description
IEquatable<XName>.Equals(XName)

Geçerli XName değerin belirtilen XNamedeğerine eşit olup olmadığını gösterir.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

hedef nesneyi seri hale getirmek için gereken verilerle doldurur SerializationInfo .

Şunlara uygulanır

Ayrıca bkz.