XName XName XName XName Class

Определение

Представляет имя элемента или атрибута 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
Наследование
XNameXNameXNameXName
Атрибуты
Реализации

Комментарии

Имена XML включают пространство имен и локальное имя.XML names include a namespace and a local name. Полное имя — это сочетание пространства имен и локального имени.A fully qualified name is the combination of the namespace and local name.

Создание объекта XNameCreating an XName Object

XNameне содержит открытых конструкторов.XName does not contain any public constructors. Вместо этого этот класс предоставляет неявное преобразование String , которое позволяет XNameсоздать.Instead, this class provides an implicit conversion from String that allows you to create an XName. Наиболее распространенным местом, где вы используете это преобразование, является создание элемента или атрибута: Первым аргументом для XElement конструктора 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. Передавая строку, можно воспользоваться неявным преобразованием.By passing a string, you take advantage of the implicit conversion. Следующий код создает элемент с именем, которое не находится в пространстве имен:The following code creates an element with a name that is in no namespace:

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

В Visual Basic более уместно использовать литералы XML:In Visual Basic, it is more appropriate to use XML literals:

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

В этом примере выводятся следующие данные:This example produces the following output:

<ElementName>content</ElementName>  

При XName присвоении строке параметру используется неявное Stringпреобразование из.Assigning a string to an XName uses the implicit conversion from String.

В Visual Basic примере создаются XElement XML-литералы.The Visual Basic example creates the XElement using XML literals. Несмотря на то, что используются литералы XML XName , XElementдля объекта создается объект.Even though XML literals are used, an XName object is created for the XElement.

Кроме того, можно вызвать Get метод XName для объекта.In addition, you can call the Get method for an XName object. Однако рекомендуется использовать неявное преобразование из String.However, the recommended way is to use the implicit conversion from string.

Создание XName в пространстве именCreating an XName in a Namespace

Как и в случае с XName XML, может находиться в пространстве имен или отсутствовать в пространстве имен.As with XML, an XName can be in a namespace, or it can be in no namespace.

Для C#рекомендуемый подход к созданию XName в пространстве имен XNamespace — объявить объект, а затем использовать переопределение оператора сложения.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.

Для Visual Basic рекомендуется использовать литералы XML и глобальные объявления пространств имен для создания XML-кода в пространстве имен.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  

В этом примере выводятся следующие данные:This example produces the following output:

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

Создание XName в отсутствии пространства именCreating an XName in no Namespace

Namespace СвойствоXName объекта гарантированно не может иметь значение null.The Namespace property of an XName object is guaranteed to not be null. Если объект XName не находится в пространстве имен, Namespace свойство будет установлено в Noneзначение.If the XName is in no namespace, then the Namespace property will be set to None. Это показано в следующем коде: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  

В этом примере выводятся следующие данные:This example produces the following output:

The element is in no namespace.  

Использование расширенных именUsing Expanded Names

Можно также создать XName из расширенного XML-имени в форме {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)  

В этом примере выводятся следующие данные:This example produces the following output:

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

Имейте в виду, что XName создание с использованием развернутого имени менее эффективно, XNamespace чем создание объекта и использование переопределения оператора сложения.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. Он также менее эффективен, чем импорт глобального пространства имен и использование литералов XML в Visual Basic.It is also less efficient than importing a global namespace and using XML literals in Visual Basic.

При создании XName с использованием развернутого имени LINQ to XML должен найти атомарный экземпляр пространства имен.If you create an XName using an expanded name, LINQ to XML must find the atomized instance of a namespace. Эта работа должна повторяться при каждом использовании развернутого имени.This work must be repeated for every use of an expanded name. Это дополнительное время, скорее всего, будет незначительным при написании запросов LINQ. Однако это может быть существенным при создании большого XML-дерева.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

Объекты XName разбитыXName Objects are Atomized

XNameобъекты гарантированно будут разъединены; то есть, если два XName объекта имеют одно и то же пространство имен и одно и то же локальное имя, они будут совместно использовать один и тот же экземпляр.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. Операторы равенства и сравнения также предоставляются явно для этой цели.The equality and comparison operators are also provided explicitly for this purpose.

Помимо других преимуществ, эта функция обеспечивает более быстрое выполнение запросов.Among other benefits, this feature allows for faster execution of queries. При фильтрации по именам элементов или атрибутов, сравнения, выраженные в предикатах, используют сравнение идентификаторов, а не сравнение значений.When filtering on the name of elements or attributes, the comparisons expressed in predicates use identity comparison, not value comparison. Гораздо быстрее определить, что две ссылки на самом деле ссылаются на один и тот же объект, чем на сравнение двух строк.It is much faster to determine that two references actually refer to the same object than to compare two strings.

Свойства

LocalName LocalName LocalName LocalName

Вызывает локальную (неопределенную) часть имени.Gets the local (unqualified) part of the name.

Namespace Namespace Namespace Namespace

Вызывает часть пространства имен полностью определенного имени.Gets the namespace part of the fully qualified name.

NamespaceName NamespaceName NamespaceName NamespaceName

Возвращает URI XNamespace для этого XName.Returns the URI of the XNamespace for this XName.

Методы

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

Определяет, является ли указанное XName равным данному XName.Determines whether the specified XName is equal to this XName.

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

Вызывает объект XName из развернутого имени.Gets an XName object from an expanded name.

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

Вызывает объект XName из локального имени и пространства имен.Gets an XName object from a local name and a namespace.

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

Получает хэш-код для данного объекта XName.Gets a hash code for this XName.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает развернутое имя XML в формате {пространство_имен}локальное_имя.Returns the expanded XML name in the format {namespace}localname.

Операторы

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

Возвращает значение, указывающее, равны ли два экземпляра XName.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)

Преобразует строку, отформатированную как развернутое имя XML (то есть {пространство_имен}локальное_имя), в объект 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)

Возвращает значение, указывающее, являются ли два экземпляра XName неравными.Returns a value indicating whether two instances of XName are not equal.

Явные реализации интерфейса

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

Показывает, является ли текущий XName равным указанному XName.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 данными, требуемыми для сериализации целевого объекта.Populates a SerializationInfo with the data required to serialize the target object.

Применяется к

Дополнительно