XName XName XName XName Class

Definice

Představuje název XML elementu nebo atributu.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
Dědičnost
XNameXNameXNameXName
Atributy
Implementuje

Poznámky

Názvy XML obsahují obor názvů a místní název.XML names include a namespace and a local name. Plně kvalifikovaný název je kombinací oboru názvů a místního názvu.A fully qualified name is the combination of the namespace and local name.

Vytvoření objektu XNameCreating an XName Object

XNameneobsahuje žádné veřejné konstruktory.XName does not contain any public constructors. Místo toho poskytuje tato třída implicitní převod z String , který umožňuje XNamevytvořit.Instead, this class provides an implicit conversion from String that allows you to create an XName. Nejběžnějším místem, kdy tento převod použijete, je při sestavování elementu nebo atributu: První argument XElement konstruktoru XNameje.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. Předáním řetězce můžete využít implicitní převod.By passing a string, you take advantage of the implicit conversion. Následující kód vytvoří element s názvem, který není v oboru názvů:The following code creates an element with a name that is in no namespace:

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

V Visual Basic je vhodnější použít literály XML:In Visual Basic, it is more appropriate to use XML literals:

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

Tento příklad vytvoří následující výstup:This example produces the following output:

<ElementName>content</ElementName>  

Přiřazení řetězce k XName používá implicitní převod z String.Assigning a string to an XName uses the implicit conversion from String.

Příklad Visual Basic vytvoří XElement pomocí literálů XML.The Visual Basic example creates the XElement using XML literals. I když jsou použity literály XML, XName je vytvořen objekt XElementpro.Even though XML literals are used, an XName object is created for the XElement.

Kromě toho můžete zavolat Get metodu XName pro objekt.In addition, you can call the Get method for an XName object. Doporučeným způsobem je však použít implicitní převod z řetězce.However, the recommended way is to use the implicit conversion from string.

Vytvoření XName v oboru názvůCreating an XName in a Namespace

Stejně jako u XML XName může být v oboru názvů nebo může být v žádném oboru názvů.As with XML, an XName can be in a namespace, or it can be in no namespace.

Pro C#je doporučený postup pro vytvoření XName v oboru názvů, který deklaruje XNamespace objekt a pak použijte přepsání operátoru sčítání.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.

Pro Visual Basic je doporučený přístup použití literálů XML a globálních deklarací oboru názvů k vytvoření XML, které je v oboru názvů.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  

Tento příklad vytvoří následující výstup:This example produces the following output:

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

Vytvoření XName v žádném oboru názvůCreating an XName in no Namespace

Namespace VlastnostXName objektu je zaručena, že nesmí mít hodnotu null.The Namespace property of an XName object is guaranteed to not be null. Pokud není v oboru názvů, Namespace bude vlastnost nastavena na None. XNameIf the XName is in no namespace, then the Namespace property will be set to None. Následující kód demonstruje: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  

Tento příklad vytvoří následující výstup:This example produces the following output:

The element is in no namespace.  

Používání rozšířených názvůUsing Expanded Names

Můžete také vytvořit XName z rozbaleného názvu XML ve formuláři {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)  

Tento příklad vytvoří následující výstup:This example produces the following output:

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

Uvědomte si, že XName vytváření prostřednictvím rozšířeného názvu je méně efektivní než XNamespace vytvoření objektu a použití přepisu operátoru sčítá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. Je také méně efektivní než import globálního oboru názvů a použití literálů XML v Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

Pokud vytvoříte XName pomocí rozšířeného názvu, LINQ to XML musí najít atomickou instanci oboru názvů.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. Tato práce musí být opakována pro každé použití rozšířeného názvu.This work must be repeated for every use of an expanded name. Tato dodatečná doba je pravděpodobně zanedbatelné při psaní dotazů LINQ; může však být důležité při vytváření velkého stromu XML.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

Objekty XName jsou atomickéXName Objects are Atomized

XNameje zaručeno, že objekty budou atomické; To znamená, že pokud XName dva objekty mají přesně stejný obor názvů a přesně stejný místní název, budou sdílet stejnou instanci.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. Operátory rovnosti a porovnávání jsou k tomuto účelu k dispozici také explicitně.The equality and comparison operators are also provided explicitly for this purpose.

Kromě dalších výhod Tato funkce umožňuje rychlejší spouštění dotazů.Among other benefits, this feature allows for faster execution of queries. Při filtrování názvu prvků nebo atributů porovnávání vyjádřené v predikátech používá porovnání identity, nikoli porovnání hodnot.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Je mnohem rychlejší určit, že dva odkazy ve skutečnosti odkazují na stejný objekt, než aby bylo možné porovnat dva řetězce.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Vlastnosti

LocalName LocalName LocalName LocalName

Načte místní (nekvalifikovaný) část názvu.Gets the local (unqualified) part of the name.

Namespace Namespace Namespace Namespace

Načte část plně kvalifikovaného názvu z oboru názvů.Gets the namespace part of the fully qualified name.

NamespaceName NamespaceName NamespaceName NamespaceName

Vrátí identifikátor URI XNamespace pro this XName.Returns the URI of the XNamespace for this XName.

Metody

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

Určuje, zda je XName zadaný parametr roven této XNamehodnotě.Determines whether the specified XName is equal to this XName.

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

XName Získá objekt z rozbaleného názvu.Gets an XName object from an expanded name.

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

XName Získá objekt z místního názvu a oboru názvů.Gets an XName object from a local name and a namespace.

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

Získá kód XNamehodnoty hash.Gets a hash code for this XName.

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

Získá Type aktuální instance.Gets the Type of the current instance.

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

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

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

Vrátí rozbalený název XML ve formátu {namespace} localname.Returns the expanded XML name in the format {namespace}localname.

Operátory

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

Vrátí hodnotu, která označuje, zda XName jsou dvě instance stejné.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)

Převede řetězec formátovaný jako rozbalený název XML (tj.{namespace} localname) na 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)

Vrátí hodnotu, která označuje, zda XName se dvě instance neshodují.Returns a value indicating whether two instances of XName are not equal.

Explicitní implementace rozhraní

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

Označuje, zda aktuální XName je rovno zadané XNamehodnotě.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)

SerializationInfo Naplní data potřebná k serializaci cílového objektu.Populates a SerializationInfo with the data required to serialize the target object.

Platí pro

Viz také