web-dev-qa-db-fra.com

Entité XML pour "/"?

J'écris donc du code de génération XML et j'ai constaté que la valeur d'attribut suivante bousillait la mise en forme XML:

"Jim/Bob"

J'ai donc examiné les entités XML utilisées comme séquences d'échappement et chaque liste que j'ai vue n'en incluait pas pour la barre oblique. Suis-je en train de manquer quelque chose d'évident ici? On dirait le genre de chose que vous voudriez échapper ...

41
Alpants

La barre oblique est valide telle quelle et n'a pas besoin d'encodage supplémentaire.

Les seuls caractères réservés sont:

>
<
&
%

Pour encore plus d'entités XML - http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

49
Ray Booysen

Je sais qu'il s'est avéré que ce n'était pas le problème, mais j'ai pensé qu'il serait utile de mentionner que, en plus de la réponse de Bobince, la Fraction Slash Entité HTML &frasl; ressemble comme une barre oblique . Juste au cas où quiconque accède à cette page le fait veut une entité HTML pour quelque chose représentant une barre oblique.

7
sinisterstuf

Je ne pense pas que les commentaires dans ce fil soient entièrement corrects car si vous utilisez un schéma (XSD), vous pouvez définir des éléments avec les noms Jim, Bob et Jim/Bob sans aucun problème. Mais quand vous voulez définir l'élément et l'entité:

<names>
  <Jim>Carrey</Jim>
  <Bob>Jones</Bob>
  <Jim/Bob>Six figured Hillbilly</Jim/Bob>
</names>

Les problèmes sont évidents.

6
Eamonn Kenny

Pour info bien qu'une barre oblique soit du XML valide, faites attention à la façon dont elle est utilisée en aval. Nous l'avons utilisé pour se connecter à une file d'attente de bus de service Azure. Azure lui-même a généré des clés avec des barres obliques dans les chaînes de connexion, mais s'est cassé en silence lorsque nous avons essayé de les utiliser. Les échapper avec “&#47;” l'a fait fonctionner

"Jim&#47;Bob"
5
Adam Diament

Il n'y a pas de référence d'entité prédéfinie pour cela, mais vous pouvez utiliser une référence de caractère: "# 47;".

Cependant, vous n'avez pas besoin d'échapper/pour l'inclure dans XML. Vous devrez peut-être l'inclure pour l'inclure dans autre chose, par exemple une partie de chemin URI. Mais alors vous devez d'abord y échapper pour ce format; l'application qui récupère l'URI n'aurait aucun moyen de savoir si vous l'aviez encodé dans le XML ou non.

5
bobince

Je ne vois pas pourquoi une valeur de "Jim/Bob" devrait s'échapper ou causer des problèmes à XML.

4
AnthonyWJones

Vous avez probablement un attribut contraint, tel que défini dans le schéma XML.

Je ne sais pas ce que vous entendez par formatage XML.

0
leppie