Udostępnij za pośrednictwem


XmlConvert.EncodeName(String) Metoda

Definicja

Konwertuje nazwę na prawidłową nazwę 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

Nazwa, która ma zostać przetłumaczona.

Zwraca

String

Nazwa z nieprawidłowymi znakami zastąpiona ciągiem ucieczki.

Przykłady

Poniższy przykład koduje i dekoduje nazwy.

#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

Uwagi

Ta metoda tłumaczy nieprawidłowe znaki, takie jak spacje lub pół szerokości Katakana, które muszą być mapowane na nazwy XML bez obsługi lub obecności schematów. Nieprawidłowe znaki są tłumaczone na kodowanie jednostki liczbowej ucieczki.

Znak ucieczki to "_". Każdy znak nazwy XML, który nie jest zgodny z zaleceniem specyfikacji XML 1.0 (czwarta edycja) jest ucieczki jako _xHHHHH._ Ciąg HHHH oznacza czterocyfrowy kod szesnastkowy UCS-2 dla znaku w największej kolejności bitowej. Na przykład nazwa Szczegóły zamówienia jest zakodowana jako Order x0020 Details (Szczegóły zamówienia_x0020_).

Znak podkreślenia nie musi być ucieczki, chyba że następuje po niej sekwencja znaków, która wraz z podkreśleniem może zostać błędnie zinterpretowana jako sekwencja ucieczki podczas dekodowania nazwy. Na przykład szczegóły zamówienia_nie są zakodowane, ale order x0020_ jest zakodowany jako Order__x005f_x0020_. Nie są dozwolone żadne krótkie kształty. Na przykład formularze _x20_ i __ nie są generowane.

Ta metoda gwarantuje, że nazwa jest prawidłowa zgodnie ze specyfikacją XML. Zezwala na dwukropki w dowolnej pozycji, co oznacza, że nazwa może być nadal nieprawidłowa zgodnie ze specyfikacją przestrzeni nazw W3C. Aby zagwarantować, że jest to prawidłowa kwalifikowana nazwa przestrzeni nazw dla EncodeLocalName prefiksu i lokalnych części nazw i dołącz wynik dwukropkiem.

Dotyczy

Zobacz też