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

Имя, где все недопустимые знаки замещены escape-строкой.

Примеры

В следующем примере кодируются и декодируются имена.

#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 без поддержки или наличия схем. Недопустимые символы превратятся в кодировки escape-числовых сущностей.

Escape-символ — "_". Любой символ имени XML, который не соответствует рекомендации спецификации XML 1.0 (четвертый выпуск), экранируется как _xHHHHHH_. Строка HHHH обозначает шестнадцатеричный шестнадцатеричный код UCS-2 для символа в самом значительном порядке в первом порядке. Например, имя "Сведения о заказе" закодировано как "Сведения о заказе_" x0020_.

Символ подчеркивания не нужно экранировать, за исключением случая, когда за ним следует последовательность символов, которая вместе с символом подчеркивания может ошибочно обрабатываться во время декодирования имени как управляющая последовательность. Например, сведения о заказе_не кодируются, но заказ_x0020_ закодирован как Order_x005f_x0020_. Короткие формы не допускаются. Например, формы _x20_ и __ не создаются.

Этот метод гарантирует допустимость имени в соответствии со спецификацией XML. Он разрешает двоеточия в любой позиции, что означает, что имя по-прежнему может быть недопустимым в соответствии со спецификацией пространства имен W3C. Чтобы гарантировать, что это допустимое полное имя пространства имен, используемое EncodeLocalName для элементов префикса и локальных имен, и объединение результата с двоеточием.

Применяется к

См. также раздел