-
XML et encodage
Bonjour à tous,
J'ai une question à propos de l'encodage dans XML.
J'ai lu sur le site http://www.w3.org/TR/xmlbase/ qu'un fichier XML
supporte par défaut UTF-8 et que quelques caractéres spéciaux sont supportés par défaut ( > < & ' ").
Si je souhaite utiliser un autre caractére spécial (je suis forcé de rester en UTF-8), je peux :
- le définir comme une entité en utilisant la balise ENTITY dans le fichier XML
- utiliser directement le code de la table unicode http://www.unicode.org/charts/
Est-ce vrai ?
J'ai un problème avec un caractère censé être prédéfini qui est '.
Il est remplacé par ' dans mon fichier et j'obtiens une erreur lors du traitement.
Ma question est simple :) : d'ou viens le problème (du parser )?
Est correct/possible d'utiliser directement le code unicode dans ce cas ou seul l'utilisation du "&apos" est possible ?
Merci !!
-
Bonjour,
ce n'est pas exactement cela. A partir du moment où l'encodage de ton XML est de l'Unicode (UTF-8), tu peux taper n'importe quel caractère dans ton XML, et il apparaitra de façon littérale. Les caractères <, > et & ne peuvent pas être pas utilisés tels quels non pas pour un problème d'encodage, mais pour éviter que cela crée une ambiguïté entre le balisage et le contenu du document XML, qui empêcherait l'analyse par un parseur.
L'appel d'une entité caractère, selon la syntaxe &xxxx; ou xxxx est le numéro Unicode du caractère n'est nécessaire que si l'on veut utiliser dans un document XML un caractère Unicode qui n'existe pas dans l'encodage du document. Ainsi, pour un encodage ISO-8859-1 (aussi appelé latin-1), le caractère € n'existe pas ; pour quand même l'utiliser dans un document utilisant cet encodage, il faudra utiliser l'entité caractère € , 8364 étant le numéro Unicode de ce caractère. En fait, en interne, un parseur ne connaît qu'Unicode.
Par contre, je n'ai pas trop compris ton problème d'apostrophe...