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.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 для элементов префикса и локальных имен, и объединение результата с двоеточием.