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 仕様 (第 4 版) の推奨事項に準拠していない XML 名文字は、xHHHH_ として_エスケープされます。 HHHH 文字列は、最も重要なビットの最初の順序で文字の 4 桁の 16 進数 UCS-2 コードを表します。 たとえば、Order Details という名前は Order_x0020_Details としてエンコードされます。

アンダースコア文字は、名前のデコード時にエスケープ シーケンスとして解釈される可能性のある文字の並びが後に続いていない限り、エスケープする必要はありません。 たとえば、Order_Details はエンコードされませんが、Order_x0020_ は Order_x005f_x0020_ としてエンコードされます。 ショートフォームは使用できません。 たとえば、フォーム _x20_ __ は生成されません。

このメソッドは、XML 仕様に従って名前が有効であることを保証します。 任意の位置にコロンを使用できるため、 W3C 名前空間の仕様に従って名前が無効である可能性があります。 プレフィックスとローカル名の部分に使用 EncodeLocalName される有効な名前空間修飾名であることを保証し、結果をコロンで結合します。

適用対象

こちらもご覧ください