XName 클래스

정의

XML 요소 또는 특성의 이름을 나타냅니다.Represents a name of an XML element or attribute.

public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>
public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>, System::Runtime::Serialization::ISerializable
public sealed class XName : IEquatable<System.Xml.Linq.XName>
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
type XName = class
    interface IEquatable<XName>
type XName = class
    interface IEquatable<XName>
    interface ISerializable
[<System.Serializable>]
type XName = class
    interface IEquatable<XName>
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))>]
type XName = class
    interface IEquatable<XName>
    interface ISerializable
Public NotInheritable Class XName
Implements IEquatable(Of XName)
Public NotInheritable Class XName
Implements IEquatable(Of XName), ISerializable
상속
XName
특성
구현

설명

XML 이름에는 네임 스페이스와 로컬 이름이 포함 됩니다.XML names include a namespace and a local name. 정규화 된 이름은 네임 스페이스와 로컬 이름을 조합한 것입니다.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 만들기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. 또한 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 쿼리를 작성 하는 경우이 추가 시간이 무시할 수 있습니다. 그러나 큰 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. 요소 또는 특성의 이름을 필터링 할 때 조건자로 표현 되는 비교는 값 비교가 아닌 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

이름의 정규화되지 않은 로컬 부분을 가져옵니다.Gets the local (unqualified) part of the name.

Namespace

정규화된 이름의 네임스페이스 부분을 가져옵니다.Gets the namespace part of the fully qualified name.

NamespaceName

XNamespace에 대한 XName의 URI를 반환합니다.Returns the URI of the XNamespace for this XName.

메서드

Equals(Object)

지정된 XName이 이 XName과 같은지 확인합니다.Determines whether the specified XName is equal to this XName.

Get(String)

확장된 이름을 사용하여 XName 개체를 가져옵니다.Gets an XName object from an expanded name.

Get(String, String)

로컬 이름 및 네임스페이스를 사용하여 XName 개체를 가져옵니다.Gets an XName object from a local name and a namespace.

GetHashCode()

XName의 해시 코드를 가져옵니다.Gets a hash code for this XName.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

{namespace}localname 형식의 확장된 XML 이름을 반환합니다.Returns the expanded XML name in the format {namespace}localname.

연산자

Equality(XName, XName)

XName의 두 인스턴스가 같은지를 표시하는 값을 반환합니다.Returns a value indicating whether two instances of XName are equal.

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)

XName의 두 인스턴스가 다른지 여부를 나타내는 값을 반환합니다.Returns a value indicating whether two instances of XName are not equal.

명시적 인터페이스 구현

IEquatable<XName>.Equals(XName)

현재 XName 가 지정된 XName와 같은지 여부를 나타냅니다.Indicates whether the current XName is equal to the specified XName.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

적용 대상

추가 정보