Share via


XmlConvert.EncodeName(String) 메서드

정의

이름을 올바른 XML 이름으로 변환합니다.

public:
 static System::String ^ EncodeName(System::String ^ name);
public static string EncodeName (string name);
public static string? EncodeName (string? name);
static member EncodeName : string -> string
Public Shared Function EncodeName (name As String) As String

매개 변수

name
String

변환할 이름입니다.

반환

String

잘못된 문자가 이스케이프 문자열로 바뀐 이름입니다.

예제

다음 예제에서는 이름을 인코딩하고 디코딩합니다.

#using <System.dll>
#using <System.XML.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Encode and decode a name with spaces.
   String^ name1 = XmlConvert::EncodeName( "Order Detail" );
   Console::WriteLine( "Encoded name: {0}", name1 );
   Console::WriteLine( "Decoded name: {0}", XmlConvert::DecodeName( name1 ) );
   
   // Encode and decode a local name.
   String^ name2 = XmlConvert::EncodeLocalName( "a:book" );
   Console::WriteLine( "Encoded local name: {0}", name2 );
   Console::WriteLine( "Decoded local name: {0}", XmlConvert::DecodeName( name2 ) );
}
using System;
using System.IO;
using System.Xml;

public class Sample
{

  public static void Main()
  {

     // Encode and decode a name with spaces.
     string name1 = XmlConvert.EncodeName("Order Detail");
     Console.WriteLine("Encoded name: " + name1);
     Console.WriteLine("Decoded name: " + XmlConvert.DecodeName(name1));

     // Encode and decode a local name.
     string name2 = XmlConvert.EncodeLocalName("a:book");
     Console.WriteLine("Encoded local name: " + name2);
     Console.WriteLine("Decoded local name: " + XmlConvert.DecodeName(name2));
  }
}
Imports System.IO
Imports System.Xml

public class Sample

  public shared sub Main()

     ' Encode and decode a name with spaces.
     Dim name1 as string = XmlConvert.EncodeName("Order Detail")
     Console.WriteLine("Encoded name: " + name1)
     Console.WriteLine("Decoded name: " + XmlConvert.DecodeName(name1))

     ' Encode and decode a local name.
     Dim name2 as string= XmlConvert.EncodeLocalName("a:book")
     Console.WriteLine("Encoded local name: " + name2)
     Console.WriteLine("Decoded local name: " + XmlConvert.DecodeName(name2))

  end sub
end class

설명

이 메서드는 스키마의 지원 또는 존재 없이 XML 이름에 매핑해야 하는 공백 또는 반자 가타카나와 같은 잘못된 문자를 변환합니다. 잘못된 문자가 이스케이프된 숫자 엔터티 인코딩으로 변환됩니다.

이스케이프 문자는 "_"입니다. XML 1.0 사양(네 번째 버전) 권장 사항을 준수하지 않는 XML 이름 문자는 xHHHH_로 _이스케이프됩니다. HHHH 문자열은 가장 중요한 비트 첫 번째 순서의 문자에 대한 4자리 16진수 UCS-2 코드를 의미합니다. 예를 들어 이름 주문 세부 정보는 주문_x0020_세부 정보로 인코딩됩니다.

밑줄 문자 뒤에 밑줄과 함께 이름을 디코딩할 때 이스케이프 시퀀스로 잘못 해석될 수 있는 문자 시퀀스가 없으면 밑줄 문자를 이스케이프할 필요가 없습니다. 예를 들어 주문_세부 정보는 인코딩되지 않지만 Order_x0020_ 은 Order_x005f_x0020_으로 인코딩됩니다. 단락은 허용되지 않습니다. 예를 들어 x20_ 형식_은 __ 생성되지 않습니다.

이 메서드는 이름이 XML 사양에 따라 유효한지 확인합니다. 모든 위치에서 콜론을 허용하므로 W3C 네임스페이스 사양에 따라 이름이 여전히 유효하지 않을 수 있습니다. 접두사 및 로컬 이름 부분에 유효한 네임스페이스 정규화된 이름 사용 EncodeLocalName 임을 보장하기 위해 결과를 콜론과 조인합니다.

적용 대상

추가 정보