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 qualifizierter Name ist die Kombination aus dem Namespace und dem lokalen Namen.A fully qualified name is the combination of the namespace and local name.

Erstellen eines XName-ObjektsCreating an XName Object

XNameenthält keine öffentlichen Konstruktoren.XName does not contain any public constructors. Stattdessen stellt diese Klasse eine implizite Konvertierung von String bereit, die es Ihnen ermöglicht, eine XNamezu erstellen.Instead, this class provides an implicit conversion from String that allows you to create an XName. Diese Konvertierung wird am häufigsten verwendet, wenn Sie ein Element oder Attribut erstellen: Das erste Argument für den 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. Durch die Übergabe einer Zeichenfolge profitieren Sie von der impliziten Konvertierung.By passing a string, you take advantage of the implicit conversion. Der folgende Code erstellt ein Element mit einem Namen, der sich 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 ist die Verwendung von XML-Literalen besser geeignet: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>  

Beim Zuweisen einer Zeichenfolge XName zu einer wird die implizite StringKonvertierung von verwendet.Assigning a string to an XName uses the implicit conversion from String.

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

Darüber hinaus können Sie die Get -Methode für ein XName -Objekt aufzurufen.In addition, you can call the Get method for an XName object. Die empfohlene Vorgehensweise ist jedoch die Verwendung der impliziten Konvertierung aus einer Zeichenfolge.However, the recommended way is to use the implicit conversion from string.

Erstellen eines XName in einem NamespaceCreating an XName in a Namespace

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

Für C#ist die empfohlene Vorgehensweise zum Erstellen XName eines in einem Namespace, das XNamespace -Objekt zu deklarieren und dann die Überschreibung des Additions Operators zu verwenden.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.

Für Visual Basic ist die empfohlene Vorgehensweise die Verwendung von XML-Literalen und globalen Namespace Deklarationen zum Erstellen von XML-Code, der sich 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 eines XName in keinem NamespaceCreating an XName in no Namespace

Die Namespace -Eigenschaft XName eines Objekts ist garantiert nicht NULL.The Namespace property of an XName object is guaranteed to not be null. Wenn das XName -Objekt keinen Namespace hat, wird Namespace die-Eigenschaft auf Nonefestgelegt.If the XName is in no namespace, then the Namespace property will be set to None. Dies wird im folgenden Code veranschaulicht: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 erweiterter NamenUsing Expanded Names

Sie können auch einen XName aus einem erweiterten XML-Namen in der Form {namespace}localnameerstellen: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 das XName Erstellen eines über einen erweiterten Namen weniger effizient ist als XNamespace das Erstellen eines Objekts und das Verwenden der außer Kraft setzung des Additions Operators.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 das Importieren eines globalen Namespace und das Verwenden von XML-Literalen in Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

Wenn Sie einen XName mit einem erweiterten Namen erstellen, muss LINQ to XML die atomisierte Instanz eines Namespaces suchen.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 Verwendung eines erweiterten Namens wiederholt werden.This work must be repeated for every use of an expanded name. Diese zusätzliche Zeit ist wahrscheinlich unerheblich, wenn LINQ-Abfragen geschrieben werden. Dies kann jedoch beim Erstellen einer großen XML-Struktur von Bedeutung sein.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

XName-Objekte sind atomisiert.XName Objects are Atomized

XNameDas Atomisieren von Objekten ist garantiert. Das heißt, wenn zwei XName Objekte genau denselben Namespace und genau denselben lokalen Namen aufweisen, verwenden Sie dieselbe Instanz gemeinsam.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. Die Gleichheits-und Vergleichs Operatoren werden ebenfalls explizit zu diesem Zweck bereitgestellt.The equality and comparison operators are also provided explicitly for this purpose.

Diese Funktion ermöglicht neben anderen Vorteilen eine schnellere Ausführung von Abfragen.Among other benefits, this feature allows for faster execution of queries. Beim Filtern nach dem Namen von Elementen oder Attributen wird bei den in Prädikaten ausgedrückten vergleichen der Identitäts Vergleich und kein Wert Vergleich verwendet.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Es ist viel schneller zu bestimmen, dass zwei Verweise tatsächlich auf das gleiche Objekt verweisen, als zwei Zeichen folgen zu vergleichen.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