XName XName XName XName Class

Definicja

Reprezentuje nazwę elementu lub atrybutu 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
Dziedziczenie
XNameXNameXNameXName
Atrybuty
Implementuje

Uwagi

Nazwy XML zawierają przestrzeń nazw i nazwę lokalną.XML names include a namespace and a local name. W pełni kwalifikowana nazwa jest kombinacją przestrzeni nazw i nazwy lokalnej.A fully qualified name is the combination of the namespace and local name.

Tworzenie obiektu XNameCreating an XName Object

XNamenie zawiera żadnych konstruktorów publicznych.XName does not contain any public constructors. Zamiast tego Klasa ta zapewnia niejawną konwersję z String , która umożliwia XNametworzenie.Instead, this class provides an implicit conversion from String that allows you to create an XName. Najczęstszym miejscem, w którym korzysta się z tej konwersji, jest konstruowanie elementu lub atrybutu: Pierwszym argumentem XElement konstruktora XNamejest.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. Przekazując ciąg, można wykorzystać niejawną konwersję.By passing a string, you take advantage of the implicit conversion. Poniższy kod tworzy element o nazwie, która nie znajduje się w obszarze nazw:The following code creates an element with a name that is in no namespace:

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

W Visual Basic jest bardziej odpowiednie do używania literałów XML:In Visual Basic, it is more appropriate to use XML literals:

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

Ten przykład generuje następujące wyniki:This example produces the following output:

<ElementName>content</ElementName>  

Przypisanie ciągu do obiektu XName używa niejawnej konwersji z. StringAssigning a string to an XName uses the implicit conversion from String.

W Visual Basic przykładzie tworzone są XElement literały XML.The Visual Basic example creates the XElement using XML literals. Chociaż literały XML są używane, XName tworzony jest obiekt XElementdla.Even though XML literals are used, an XName object is created for the XElement.

Ponadto można wywołać Get metodę XName dla obiektu.In addition, you can call the Get method for an XName object. Jednak zalecanym sposobem jest użycie niejawnej konwersji z ciągu.However, the recommended way is to use the implicit conversion from string.

Tworzenie XName w przestrzeni nazwCreating an XName in a Namespace

Podobnie jak w przypadku języka XName XML, może być w przestrzeni nazw lub nie może być w żadnej przestrzeni nazw.As with XML, an XName can be in a namespace, or it can be in no namespace.

W C#przypadku, Zalecanym podejściem do XName tworzenia w przestrzeni nazw XNamespace jest zadeklarowanie obiektu, a następnie użycie przesłonięcia operatora dodawania.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.

W przypadku Visual Basic Zalecanym podejściem jest użycie literałów XML i globalnych obszarów nazw w celu utworzenia kodu XML, który znajduje się w przestrzeni nazw.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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Tworzenie elementu XName w obszarze brak przestrzeni nazwCreating an XName in no Namespace

Namespace WłaściwośćXName obiektu ma gwarantowaną wartość nie równą null.The Namespace property of an XName object is guaranteed to not be null. Jeśli nie Namespace Nonema przestrzeni nazw, właściwość zostanie ustawiona na. XNameIf the XName is in no namespace, then the Namespace property will be set to None. Poniższy kod ilustruje: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  

Ten przykład generuje następujące wyniki:This example produces the following output:

The element is in no namespace.  

Używanie rozwiniętych nazwUsing Expanded Names

Możesz również utworzyć XName z rozwiniętej nazwy XML w postaci {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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Należy pamiętać, że utworzenie XName za pomocą rozwiniętej nazwy jest mniej wydajne niż XNamespace utworzenie obiektu i użycie przesłonięcia operatora dodawania.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. Jest ona również mniej wydajna niż Importowanie globalnej przestrzeni nazw i używanie literałów XML w Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

Jeśli utworzysz XName przy użyciu rozwiniętej nazwy, LINQ to XML musi znaleźć wystąpienie w postaci atomowej przestrzeni nazw.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. To działanie musi być powtórzone dla każdego użycia rozwiniętej nazwy.This work must be repeated for every use of an expanded name. Ten dodatkowy czas może być nieznaczny podczas pisania zapytań LINQ; Jednak może być istotny podczas tworzenia dużego drzewa XML.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

Obiekty XName są atomoweXName Objects are Atomized

XNameobiekty są gwarantowane jako atomowe; oznacza to, że jeśli XName dwa obiekty mają dokładnie tę samą przestrzeń nazw i dokładnie taką samą nazwę lokalną, współużytkują to samo wystąpienie.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. Operatory równości i porównania są również jawnie podane w tym celu.The equality and comparison operators are also provided explicitly for this purpose.

Oprócz innych korzyści ta funkcja umożliwia szybsze wykonywanie zapytań.Among other benefits, this feature allows for faster execution of queries. Podczas filtrowania nazw elementów lub atrybutów, porównania wyrażone w predykatach używają porównania tożsamości, a nie porównania wartości.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Jest znacznie szybszy, aby określić, że dwa odwołania rzeczywiście odwołują się do tego samego obiektu, niż w celu porównania dwóch ciągów.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Właściwości

LocalName LocalName LocalName LocalName

Pobiera lokalną (niekwalifikowaną) część nazwy.Gets the local (unqualified) part of the name.

Namespace Namespace Namespace Namespace

Pobiera część przestrzeni nazw z w pełni kwalifikowanej nazwy.Gets the namespace part of the fully qualified name.

NamespaceName NamespaceName NamespaceName NamespaceName

Zwraca identyfikator URI XNamespace dla tego XNameelementu.Returns the URI of the XNamespace for this XName.

Metody

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

Określa, czy wartość XName określona jest równa XNametej wartości.Determines whether the specified XName is equal to this XName.

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

XName Pobiera obiekt z rozwiniętej nazwy.Gets an XName object from an expanded name.

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

XName Pobiera obiekt z lokalnej nazwy i przestrzeni nazw.Gets an XName object from a local name and a namespace.

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

Pobiera kod skrótu dla tego XNameelementu.Gets a hash code for this XName.

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

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

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

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

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

Zwraca rozwiniętą nazwę XML w formacie {namespace} localname.Returns the expanded XML name in the format {namespace}localname.

Operatory

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

Zwraca wartość wskazującą, czy dwa wystąpienia XName są równe.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)

Konwertuje ciąg sformatowany jako rozwinięta Nazwa XML (czyli{namespace} localname) do XName obiektu.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)

Zwraca wartość wskazującą, czy dwa wystąpienia XName nie są równe.Returns a value indicating whether two instances of XName are not equal.

Jawne implementacje interfejsu

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

Wskazuje, czy bieżąca XName jest równa określonej. XNameIndicates 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 Wypełnia dane wymagane do serializacji obiektu docelowego.Populates a SerializationInfo with the data required to serialize the target object.

Dotyczy

Zobacz też