XName XName XName XName Class

Definition

Stellt den Namen eines XML-Elements oder -Attributs dar.Represents a name of an XML element or attribute.

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

Hinweise

XML-Namen enthalten, einen Namespace und einen lokalen Namen.XML names include a namespace and a local name. Ein voll gekennzeichneten Namen ist die Kombination aus Namespace und lokalen Namen.A fully qualified name is the combination of the namespace and local name.

Erstellen ein XName-ObjektCreating an XName Object

XName enthält keine öffentlichen Konstruktoren.XName does not contain any public constructors. Diese Klasse stellt stattdessen eine implizite Konvertierung von String , ermöglicht Ihnen die Erstellung einer XName.Instead, this class provides an implicit conversion from String that allows you to create an XName. Die am häufigsten verwendete Stelle, die Sie verwenden, diese Konvertierung ist beim Erstellen eines Elements oder Attributs: Das erste Argument für die XElement Konstruktor ist ein 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. Eine Zeichenfolge übergeben, nutzen Sie die implizite Konvertierung.By passing a string, you take advantage of the implicit conversion. Der folgende Code erstellt ein Element mit einem Namen, der in keinem Namespace befindet:The following code creates an element with a name that is in no namespace:

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

In Visual Basic empfiehlt es sich um XML-Literale verwenden:In Visual Basic, it is more appropriate to use XML literals:

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

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

<ElementName>content</ElementName>  

Eine Zeichenfolge zuweisen einer XName verwendet die implizite Konvertierung von String.Assigning a string to an XName uses the implicit conversion from String.

Visual Basic-Beispiel erstellt die XElement mit XML-Literalen.The Visual Basic example creates the XElement using XML literals. Obwohl XML-Literale verwendet werden, ein XName -Objekt wird erstellt, für die XElement.Even though XML literals are used, an XName object is created for the XElement.

Sie können darüber hinaus Aufrufen der Get -Methode für ein XName Objekt.In addition, you can call the Get method for an XName object. Allerdings ist die empfohlene Vorgehensweise die implizite Konvertierung von Zeichenfolge verwenden.However, the recommended way is to use the implicit conversion from string.

Erstellen einen XName anzugeben, in einem NamespaceCreating an XName in a Namespace

Wie bei XML, ein XName kann in einem Namespace, oder es kann in keinem Namespace sein.As with XML, an XName can be in a namespace, or it can be in no namespace.

Für C# und die empfohlene Vorgehensweise zum Erstellen einer XName in einem Namespace befindet, deklarieren die XNamespace Objekt, und Sie dann nutzen Sie die Überschreibung des Additionsoperators.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.

Die empfohlene Vorgehensweise werden für Visual Basic XML-Literale und der globale Namespace-Deklarationen verwenden, um XML zu erstellen, die in einem Namespace befindet.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  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

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

Erstellen einen XName anzugeben, in der kein NamespaceCreating an XName in no Namespace

Die Namespace Eigenschaft eine XName Objekt ist garantiert nicht null sein.The Namespace property of an XName object is guaranteed to not be null. Wenn die XName befindet sich in keinem Namespace befindet, und klicken Sie dann die Namespace Eigenschaft auf festgelegt None.If the XName is in no namespace, then the Namespace property will be set to None. Der folgende Code veranschaulicht dies: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  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

The element is in no namespace.  

Verwenden von erweiterten NamenUsing Expanded Names

Sie können auch erstellen, eine XName aus einem erweiterten XML-Namen im Format {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)  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

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

Beachten Sie, dass die Erstellung einer XName über einen erweiterten Namen ist weniger effizient als das Erstellen einer XNamespace Objekt und die Überschreibung des Additionsoperators.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. Es ist auch weniger effizient als einen globalen Namespace importieren und Verwenden von XML-Literale in Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

Bei der Erstellung einer XName verwenden einen erweiterten Namen, der LINQ to XML muss Suchen der atomisierten Instanz für einen Namespace.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. Diese Arbeit muss für jede von einem erweiterten Namen wiederholt werden.This work must be repeated for every use of an expanded name. Diese zusätzliche Zeit ist wahrscheinlich vernachlässigbar sein, beim Schreiben von LINQ-Abfragen. Es kann jedoch erheblich sein beim Erstellen einer großen XML-Struktur.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

XName-Objekten werden atomisiert.XName Objects are Atomized

XName Objekte sind mit Sicherheit atomisiert werden. d.h., wenn zwei XName Objekte besitzen genau denselben Namespace und genau dem gleichen lokalen Namen, verwenden sie die gleiche Instanz.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. Gleichheits-und Vergleichs werden für diesen Zweck auch explizit bereitgestellt werden.The equality and comparison operators are also provided explicitly for this purpose.

Neben anderen Vorteilen können dieses Feature zur schnelleren Ausführung von Abfragen.Among other benefits, this feature allows for faster execution of queries. Wenn Sie auf den Namen von Elementen oder Attributen filtern, verwenden Sie Vergleiche in Prädikaten als Identität hingegen nicht den Wertvergleich.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Es ist viel schneller, um zu bestimmen, dass zwei Verweise auf dasselbe Objekt als zum Vergleichen von zwei Zeichenfolgen tatsächlich verweisen.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Eigenschaften

LocalName LocalName LocalName LocalName

Ruft den lokalen (nicht qualifizierten) Teil des Namens ab.Gets the local (unqualified) part of the name.

Namespace Namespace Namespace Namespace

Ruft den Namespaceteil des vollqualifizierten Namens ab.Gets the namespace part of the fully qualified name.

NamespaceName NamespaceName NamespaceName NamespaceName

Gibt den URI des XNamespace für diesen XName zurück.Returns the URI of the XNamespace for this XName.

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob der angegebene XName und dieser XName gleich sind.Determines whether the specified XName is equal to this XName.

Get(String) Get(String) Get(String) Get(String)

Ruft ein XName-Objekt aus einem erweiterten Namen ab.Gets an XName object from an expanded name.

Get(String, String) Get(String, String) Get(String, String) Get(String, String)

Ruft ein XName-Objekt aus einem lokalen Namen und einem Namespace ab.Gets an XName object from a local name and a namespace.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Ruft einen Hashcode für diesen XName ab.Gets a hash code for this XName.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Gibt den erweiterten XML-Namen im Format {namespace}localname zurück.Returns the expanded XML name in the format {namespace}localname.

Operatoren

Equality(XName, XName) Equality(XName, XName) Equality(XName, XName) Equality(XName, XName)

Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XName gleich sind.Returns a value indicating whether two instances of XName are equal.

Implicit(String to XName) Implicit(String to XName) Implicit(String to XName) Implicit(String to XName)

Konvertiert eine als erweiterter XML-Name (d.h. {namespace}localname) formatierte Zeichenfolge in ein XName-Objekt.Converts a string formatted as an expanded XML name (that is,{namespace}localname) to an XName object.

Inequality(XName, XName) Inequality(XName, XName) Inequality(XName, XName) Inequality(XName, XName)

Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XName ungleich sind.Returns a value indicating whether two instances of XName are not equal.

Explizite Schnittstellenimplementierungen

IEquatable<XName>.Equals(XName) IEquatable<XName>.Equals(XName) IEquatable<XName>.Equals(XName) IEquatable<XName>.Equals(XName)

Gibt an, ob der aktuelle XName und der angegebene XName gleich sind.Indicates whether the current XName is equal to the specified XName.

ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind.Populates a SerializationInfo with the data required to serialize the target object.

Gilt für:

Siehe auch