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

Имя для перевода.

Возвращаемое значение

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

Примеры

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

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 (четвертый выпуск), экранируется как _xHHHH_. Строка HHH обозначает шестнадцатеричный шестнадцатеричный код UCS-2 для символа в самом значительном битовом порядке. Например, сведения о заказе имен кодируются как Order_x0020_Details.

Символ подчеркивания не требуется экранировать, если за ним не следует символьная последовательность, которая вместе с символом подчеркивания может быть неправильно интерпретирована как escape-последовательность при декодировании имени. Например, Order_Details не закодированы, но Order_x0020_ кодируется как Order_x005f_x0020_. Короткие формы не допускаются. Например, формы _x20_ и __ не создаются.

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

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

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