XName XName XName XName Class

Définition

Représente un nom d'un attribut ou d'un élément XML.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
Héritage
XNameXNameXNameXName
Attributs
Implémente

Remarques

Les noms XML incluent un espace de noms et un nom local.XML names include a namespace and a local name. Un nom qualifié complet est la combinaison de l’espace de noms et du nom local.A fully qualified name is the combination of the namespace and local name.

Création d’un objet XNameCreating an XName Object

XNamene contient pas de constructeurs publics.XName does not contain any public constructors. Au lieu de cela, cette classe fournit une String conversion implicite de qui vous XNamepermet de créer un.Instead, this class provides an implicit conversion from String that allows you to create an XName. L’emplacement le plus courant que vous utilisez pour cette conversion est lors de la construction d’un élément ou d’un attribut: Le premier argument du XElement constructeur est un. XNameThe most common place you use this conversion is when constructing an element or attribute: The first argument to the XElement constructor is an XName. En passant une chaîne, vous tirez parti de la conversion implicite.By passing a string, you take advantage of the implicit conversion. Le code suivant crée un élément avec un nom qui ne se trouve pas dans un espace de noms:The following code creates an element with a name that is in no namespace:

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

Dans Visual Basic, il est plus approprié d’utiliser des littéraux XML:In Visual Basic, it is more appropriate to use XML literals:

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

Cet exemple génère la sortie suivante :This example produces the following output:

<ElementName>content</ElementName>  

L’assignation d’une chaîne à XName un utilise la conversion implicite de. StringAssigning a string to an XName uses the implicit conversion from String.

L’exemple Visual Basic crée le XElement à l’aide de littéraux XML.The Visual Basic example creates the XElement using XML literals. Même si les littéraux XML sont utilisés, XName un objet est créé pour XElementle.Even though XML literals are used, an XName object is created for the XElement.

En outre, vous pouvez appeler la Get méthode pour un XName objet.In addition, you can call the Get method for an XName object. Toutefois, la méthode recommandée consiste à utiliser la conversion implicite à partir d’une chaîne.However, the recommended way is to use the implicit conversion from string.

Création d’un XName dans un espace de nomsCreating an XName in a Namespace

Comme avec XML, un XName peut figurer dans un espace de noms ou ne peut pas être dans un espace de noms.As with XML, an XName can be in a namespace, or it can be in no namespace.

Pour C#, l’approche recommandée pour créer un XName dans un espace de noms consiste à XNamespace déclarer l’objet, puis à utiliser la substitution de l’opérateur d’addition.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.

Pour Visual Basic, l’approche recommandée consiste à utiliser des littéraux XML et des déclarations d’espaces de noms globaux pour créer du code XML qui se trouve dans un espace de noms.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  

Cet exemple génère la sortie suivante :This example produces the following output:

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

Création d’un XName dans aucun espace de nomsCreating an XName in no Namespace

Il Namespace est garanti que XName la propriété d’un objet ne soit pas null.The Namespace property of an XName object is guaranteed to not be null. Si ne Namespace Nonese trouve dans aucun espace de noms, la propriété aura la valeur. XNameIf the XName is in no namespace, then the Namespace property will be set to None. Le code suivant illustre ceci: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  

Cet exemple génère la sortie suivante :This example produces the following output:

The element is in no namespace.  

Utilisation de noms développésUsing Expanded Names

Vous pouvez également créer un XName à partir d’un nom XML développé au {namespace}localnameformat suivant: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)  

Cet exemple génère la sortie suivante :This example produces the following output:

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

Sachez que la création XName d’un à l’aide d’un nom développé est XNamespace moins efficace que la création d’un objet et l’utilisation de la substitution de l’opérateur d’addition.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. Elle est également moins efficace que l’importation d’un espace de noms global et l’utilisation de littéraux XML dans Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

Si vous créez un XName à l’aide d’un nom développé, LINQ to XML devez Rechercher l’instance atomisée d’un espace de noms.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. Ce travail doit être répété pour chaque utilisation d’un nom développé.This work must be repeated for every use of an expanded name. Ce temps supplémentaire est susceptible d’être négligeable lors de l’écriture de requêtes LINQ; Toutefois, cela peut être important lors de la création d’une arborescence XML volumineuse.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

Les objets XName sont atomisésXName Objects are Atomized

XNameles objets sont assurément atomisés; autrement dit, si deux XName objets ont exactement le même espace de noms et exactement le même nom local, ils partageront la même instance.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. Les opérateurs d’égalité et de comparaison sont également fournis explicitement à cet effet.The equality and comparison operators are also provided explicitly for this purpose.

Entre autres avantages, cette fonctionnalité permet une exécution plus rapide des requêtes.Among other benefits, this feature allows for faster execution of queries. Lors du filtrage sur le nom des éléments ou des attributs, les comparaisons exprimées dans les prédicats utilisent la comparaison des identités, et non la comparaison des valeurs.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Il est beaucoup plus rapide de déterminer que deux références font en fait référence au même objet que de comparer deux chaînes.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Propriétés

LocalName LocalName LocalName LocalName

Obtient la partie locale (non qualifiée) du nom.Gets the local (unqualified) part of the name.

Namespace Namespace Namespace Namespace

Obtient la partie de l'espace de noms du nom qualifié complet.Gets the namespace part of the fully qualified name.

NamespaceName NamespaceName NamespaceName NamespaceName

Retourne l'URI du XNamespace pour ce XName.Returns the URI of the XNamespace for this XName.

Méthodes

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

Détermine si le XName spécifié est égal à ce XName.Determines whether the specified XName is equal to this XName.

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

Obtient un objet XName à partir d'un nom développé.Gets an XName object from an expanded name.

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

Obtient un objet XName à partir d'un nom local et d'un espace de noms.Gets an XName object from a local name and a namespace.

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

Obtient un code de hachage pour ce XName.Gets a hash code for this XName.

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

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

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

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

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

Retourne le nom XML développé au format {namespace}localname.Returns the expanded XML name in the format {namespace}localname.

Opérateurs

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

Retourne une valeur indiquant si deux instances de XName sont égales.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)

Convertit une chaîne mise en forme en tant que nom XML développé (c’est-à-dire, {namespace}localname) en objet XName.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)

Retourne une valeur indiquant si deux instances de XName ne sont pas égales.Returns a value indicating whether two instances of XName are not equal.

Implémentations d’interfaces explicites

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

Indique si le XName actuel est égal au XName spécifié.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)

Remplit SerializationInfo avec les données nécessaires pour sérialiser l'objet cible.Populates a SerializationInfo with the data required to serialize the target object.

S’applique à

Voir aussi