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 정규화 된 이름을 로컬 이름과 네임 스페이스의 조합입니다.A fully qualified name is the combination of the namespace and local name.

XName 개체 만들기Creating an XName Object

XName 모든 public 생성자를 포함 하지 않습니다.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을 Namespace에서 만들기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 없습니다 Namespace에서 만들기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. 전역 네임 스페이스 가져오기 및 Visual Basic의 XML 리터럴을 사용 하 여 보다 덜 효율적 이기도 합니다.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 쿼리를 작성할 때 무시할 수 그러나 것 중요 한 쿼리를 만들 때.This additional time is likely to be negligible when writing LINQ queries; however, it might be significant when creating a large XML tree.

원자화 된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. 요소 또는 특성의 이름을 필터링 하는 경우 조건자로 표현 되는 비교 id 비교가 없습니다 값 비교를 사용 합니다.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

XNamespace에 대한 XName의 URI를 반환합니다.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()

{namespace}localname 형식의 확장된 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 이름 형식({namespace}localname)의 문자열을 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)

대상 개체를 serialize하는 데 필요한 데이터로 SerializationInfo를 채웁니다.Populates a SerializationInfo with the data required to serialize the target object.

적용 대상

추가 정보