XmlConvert.EncodeName(String) Méthode

Définition

Convertit le nom en un nom XML valide.

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

Paramètres

name
String

Nom à traduire.

Retours

String

Nom avec les caractères non valides remplacés par une chaîne d’échappement.

Exemples

L’exemple suivant encode et décode les noms.

#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

Remarques

Cette méthode traduit des caractères non valides, tels que des espaces ou des katakanas de demi-largeur, qui doivent être mappés aux noms XML sans prise en charge ni présence de schémas. Les caractères non valides sont traduits en encodages d’entités numériques d’échappement.

Le caractère d’échappement est «_ ». Tout caractère de nom XML qui n’est pas conforme à la recommandation de spécification XML 1.0 (quatrième édition) est placé dans une séquence d’échappement comme _xHHHHH_. La chaîne HHHH représente le code UCS-2 hexadécimal à quatre chiffres pour le caractère dans le premier ordre de bits le plus significatif. Par exemple, le nom Détails de la commande est encodé en tant que Détails de la commande_x0020_.

Le caractère de soulignement ne doit pas être repris dans une séquence d'échappement à moins qu'il ne soit suivi par une séquence de caractères qui, avec le caractère de soulignement, puisse être confondu avec une séquence d'échappement lors du décodage du nom. Par exemple, les détails de la commande_ne sont pas encodés, mais Order_x0020_ est encodé en tant que Order_x005f_x0020_. Aucune forme courte n’est autorisée. Par exemple, les formulaires _x20_ ne __ sont pas générés.

Cette méthode garantit que le nom est valide conformément à la spécification XML. Il autorise les points-virgules dans n’importe quelle position, ce qui signifie que le nom peut toujours être non valide en fonction de la spécification de l’espace de noms W3C. Pour garantir qu’il s’agit d’un nom qualifié d’espace de noms valide utilisé EncodeLocalName pour les parties de préfixe et de nom local et joignez le résultat avec un signe deux-points.

S’applique à

Voir aussi