XName Sınıf

Tanım

Bir XML öğesinin veya özniteliğin adını temsil eder.Represents a name of an XML element or attribute.

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 bir ad içerir.XML names include a namespace and a local name. Tam nitelikli ad , ad alanının ve yerel adın birleşimidir.A fully qualified name is the combination of the namespace and local name.

XName nesnesi oluşturmaCreating an XName Object

XName hiçbir ortak Oluşturucu içermez.XName does not contain any public constructors. Bunun yerine, bu sınıf öğesinden bir örtülü dönüşüm sağlar ve bu String sayede bir XName .Instead, this class provides an implicit conversion from String that allows you to create an XName. Bu dönüştürmeyi kullandığınız en yaygın yer, bir öğe veya öznitelik oluştururken: oluşturucunun ilk bağımsız değişkeni XElement bir XName .The most common place you use this conversion is when constructing an element or attribute: The first argument to the XElement constructor is an XName. Bir dize geçirerek örtük dönüştürme özelliğinden yararlanabilirsiniz.By passing a string, you take advantage of the implicit conversion. Aşağıdaki kod, ad alanı olmayan bir ada sahip bir öğesi oluşturur:The following code creates an element with a name that is in no namespace:

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

Visual Basic, XML değişmez değerlerini kullanmak daha uygundur:In Visual Basic, it is more appropriate to use XML literals:

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

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

<ElementName>content</ElementName>  

Bir String öğesine atama XName , öğesinden örtük dönüştürmeyi kullanır String .Assigning a string to an XName uses the implicit conversion from String.

Visual Basic örnek, XElement USING XML sabit değerlerini oluşturur.The Visual Basic example creates the XElement using XML literals. XML değişmez değerleri kullanılsa bile XName , için bir nesne oluşturulur XElement .Even though XML literals are used, an XName object is created for the XElement.

Ayrıca, Get bir nesne için yöntemini çağırabilirsiniz XName .In addition, you can call the Get method for an XName object. Ancak önerilen yol, dizeden örtük dönüştürmeyi kullanmaktır.However, the recommended way is to use the implicit conversion from string.

Ad alanında XName oluşturmaCreating an XName in a Namespace

XML ile olduğu gibi, bir XName ad alanında olabilir veya ad alanı yok olabilir.As with XML, an XName can be in a namespace, or it can be in no namespace.

C# için, bir ad alanında oluşturmak için önerilen yaklaşım, XName nesneyi bildirmek ve XNamespace ek işlecinin geçersiz kılmasını kullanır.For C#, the recommended approach for creating an XName in a namespace is to declare the XNamespace object, then use the override of the addition operator.

Visual Basic için önerilen yaklaşım, bir ad alanında olan XML oluşturmak için XML değişmez değerleri ve genel ad alanı bildirimleri kullanmaktır.For Visual Basic, the recommended approach is to use XML literals and global namespace declarations to create XML that is in a 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  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

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

Ad alanı olmadan XName oluşturmaCreating an XName in no Namespace

NamespaceBir XName nesnenin özelliği null değil olarak garanti edilir.The Namespace property of an XName object is guaranteed to not be null. XNameAd alanı yoksa, Namespace özelliği olarak ayarlanır None .If the XName is in no namespace, then the Namespace property will be set to None. Aşağıdaki kod bunu gösterir:The following code demonstrates this:

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 çıktıyı üretir:This example produces the following output:

The element is in no namespace.  

Genişletilmiş adlar kullanmaUsing Expanded Names

Ayrıca XName , bir GENIŞLETILMIŞ XML adından şu biçimde oluşturabilirsiniz {namespace}localname :You can also create an XName from a expanded XML name in the form {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)  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

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

XNameGenişletilmiş bir ad ile oluşturmanın bir XNamespace nesne oluşturmaktan ve toplama işlecinin geçersiz kılınmasına kıyasla daha az etkili olduğunu unutmayın.Be aware that creating an XName through an expanded name is less efficient than creating an XNamespace object and using the override of the addition operator. Ayrıca, genel bir ad alanını içeri aktarıp Visual Basic XML sabit değerlerini kullanarak daha da etkilidir.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

XNameGenişletilmiş bir ad kullanarak oluşturursanız, LINQ to XML bir ad alanının atomlanmış örneğini bulmalıdır.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. Bu iş, genişletilmiş bir adın her kullanımı için tekrarlanmış olmalıdır.This work must be repeated for every use of an expanded name. Bu ek süre büyük olasılıkla LINQ sorguları yazılırken göz ardı edilebilir. Ancak, büyük bir XML ağacı oluşturulurken önemli olabilir.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

XName nesneleri AtomlanmışXName Objects are Atomized

XName nesnelerin atomlanmış olduğu garanti edilir; diğer bir deyişle, iki XName nesne tam olarak aynı ad alanına ve tamamen aynı yerel ada sahip ise, aynı örneği paylaşır.XName objects are guaranteed to be atomized; that is, if two XName objects have exactly the same namespace and exactly the same local name, they will share the same instance. Eşitlik ve karşılaştırma işleçleri de bu amaçla açık olarak sağlanır.The equality and comparison operators are also provided explicitly for this purpose.

Bu özellik diğer avantajların yanı sıra sorguların daha hızlı yürütülmesini sağlar.Among other benefits, this feature allows for faster execution of queries. Öğe veya özniteliklerin adı üzerinde filtrelendiğinde, koşullarda ifade edilen karşılaştırmalar değer karşılaştırması değil, kimlik karşılaştırması kullanır.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. İki dizenin, iki dizeyi karşılaştırmasına kıyasla gerçekten aynı nesneye başvurması belirlenmesi çok daha hızlıdır.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Özellikler

LocalName

Adın yerel (nitelenmemiş) kısmını alır.Gets the local (unqualified) part of the name.

Namespace

Tam adın ad alanı kısmını alır.Gets the namespace part of the fully qualified name.

NamespaceName

Bunun için URI 'sini döndürür XNamespace XName .Returns the URI of the XNamespace for this XName.

Yöntemler

Equals(Object)

Belirtilen değere eşit olup olmadığını belirler XName XName .Determines whether the specified XName is equal to this XName.

Get(String)

Genişletilmiş bir XName ada sahip bir nesne alır.Gets an XName object from an expanded name.

Get(String, String)

Yerel bir XName ad ve ad alanından bir nesne alır.Gets an XName object from a local name and a namespace.

GetHashCode()

Bunun için bir karma kodu alır XName .Gets a hash code for this XName.

GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

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

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

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

{Namespace} localnameBIÇIMINDE Genişletilmiş xml adını döndürür.Returns the expanded XML name in the format {namespace}localname.

İşleçler

Equality(XName, XName)

İki örneğinin eşit olup olmadığını gösteren bir değer döndürür XName .Returns a value indicating whether two instances of XName are equal.

Implicit(String to XName)

Genişletilmiş XML adı (yani,{namespace} localname) olarak biçimlendirilen bir dizeyi bir XName nesnesine dönüştürür.Converts a string formatted as an expanded XML name (that is,{namespace}localname) to an XName object.

Inequality(XName, XName)

İki örneğinin eşit olup olmadığını gösteren bir değer döndürür XName .Returns a value indicating whether two instances of XName are not equal.

Belirtik Arabirim Kullanımları

IEquatable<XName>.Equals(XName)

Geçerli XName belirtilen değere eşit olup olmadığını gösterir XName .Indicates whether the current XName is equal to the specified XName.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

SerializationInfoHedef nesneyi seri hale getirmek için gereken verilerle birlikte doldurur.Populates a SerializationInfo with the data required to serialize the target object.

Şunlara uygulanır

Ayrıca bkz.