名前を有効な XML 名に変換します。
Public Shared Function EncodeName( _
ByVal name As String _) As String
[C#]
public static string EncodeName(stringname);
[C++]
public: static String* EncodeName(String* name);
[JScript]
public static function EncodeName(
name : String) : String;
パラメータ
- name
変換する対象の名前。
戻り値
エスケープ文字列で置換された無効な文字を含む名前を返します。
解説
このメソッドは、スキーマのサポートや存在がない XML 名に割り当てる必要のある空白、半角カタカナなどの無効な文字を変換します。無効な文字は、エスケープされた数値エンティティ エンコーディングに変換されます。
エスケープ文字は "_" です。W3C『Extensible Markup Language (XML) 1.0』の仕様に適合しない XML 名の文字は、_xHHHH_ としてエスケープされます。HHHH 文字列は、文字の 4 桁の 16 進 UCS-2 コードを先頭が最上位ビットになる順で表しています。たとえば、Order Details という名前は Order_x0020_Details としてエンコードされます。
アンダースコア (_) 文字は、後ろに文字シーケンスを指定しない限りエスケープする必要はありません。アンダースコア (_) の後に文字シーケンスが付くと、名前のデコード時にエスケープ シーケンスと誤って解釈される場合があります。たとえば、Order_Details はエンコードされませんが、Order_x0020_ は Order_x005f_x0020_ としてエンコードされます。短縮形は許可されません。たとえば、_x20_ および __ という形式は生成されません。
このメソッドは、名前が XML 仕様に従って有効であることを保証します。コロンはどこにでも指定できます。したがって、W3C の名前空間の仕様 (www.w3.org/TR/REC-xml-names) に従えば無効な名前である可能性あります。有効な名前空間限定名であることを保証するには、プリフィックスおよびローカル名部分に対しては EncodeLocalName を使用し、結果をコロンで結合します。
使用例
[Visual Basic, C#, C++] 名前をエンコードおよびデコードする例を次に示します。
Imports System
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
[C#]
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));
}
}
[C++]
#using <mscorlib.dll>
#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(S"Order Detail");
Console::WriteLine( S"Encoded name: {0}", name1);
Console::WriteLine( S"Decoded name: {0}", XmlConvert::DecodeName(name1));
// Encode and decode a local name.
String* name2 = XmlConvert::EncodeLocalName(S"a:book");
Console::WriteLine( S"Encoded local name: {0}", name2);
Console::WriteLine( S"Decoded local name: {0}", XmlConvert::DecodeName(name2));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
参照
XmlConvert クラス | XmlConvert メンバ | System.Xml 名前空間 | EncodeLocalName | DecodeName