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. Тем не менее рекомендуется использовать неявное преобразование из строки.However, the recommended way is to use the implicit conversion from string.

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

Как и в случае с XML, XName может быть в пространстве имен, или он может быть вне пространства имен.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.

Атомарные объекты XNameXName 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.

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

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