XmlConvert.EncodeName(String) Metoda

Definice

Převede název na platný název 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

Parametry

name
String

Jméno, které se má přeložit.

Návraty

String

Název se všemi neplatnými znaky nahrazený řídicím řetězcem.

Příklady

Následující příklad kóduje a dekóduje názvy.

#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

Poznámky

Tato metoda překládá neplatné znaky, jako jsou mezery nebo katakana s poloviční šířkou, které je potřeba namapovat na názvy XML bez podpory nebo přítomnosti schémat. Neplatné znaky se překládají do kódování řídicích číselných entit.

Řídicí znak je "_". Jakýkoli znak názvu XML, který neodpovídá doporučení specifikace XML 1.0 (čtvrtá edice), je řídicí znak jako _xHHHHH_. Řetězec HHHH představuje čtyřciferný šestnáctkový kód UCS-2 pro znak v nejvýznamnějším bitovém pořadí. Například název Podrobnosti objednávky je kódován jako Podrobnosti objednávky_x0020_Podrobnosti objednávky.

Znak podtržítka nemusí být řídicí, pokud není následovaný posloupností znaků, která spolu s podtržítkem může být při dekódování názvu nesprávně interpretována jako řídicí sekvence. Například Podrobnosti objednávky_nejsou kódovány, ale order_x0020_ je kódován jako Order_x005f_x0020_. Nejsou povoleny žádné krátké tvary. Například formuláře _x20_ a __ nevygenerují se.

Tato metoda zaručuje, že název je platný podle specifikace XML. Umožňuje dvojtečky v libovolné pozici, což znamená, že název může být stále neplatný podle specifikace oboru názvů W3C. Chcete-li zaručit, že se jedná o platný název oboru názvů, který se používá EncodeLocalName pro předponu a místní části názvů, a spojte výsledek s dvojtečku.

Platí pro

Viz také