2013-03-12 3 views
2

J'ai une compréhension de base de XML. Ma question est pourquoi est-il nécessaire de mentionner l'encodage utilisé au début d'un document XML et pourquoi l'encodage est requis?Pourquoi le codage XML est-il requis?

+0

question connexe: http://stackoverflow.com/q/5165347/1698732 –

Répondre

2

It is not required, bien que vous pouvez généralement vouloir inclure:

En l'absence de caractère externe codage des informations (telles que -têtes MIME), les entités analysables sont stockées dans un codage autre que UTF- 8 ou UTF-16 doit commencer par une déclaration de texte (voir 4.3.1 La déclaration de texte) contenant une déclaration de codage.

Ainsi, par exemple, lors du transfert de XML via HTTP, analyseur XML peut utiliser la valeur de Content-Type tête comme ceci:

Content-Type application/xml; charset=UTF-8 

Mais une fois que ce document est stocké localement, il ne contient pas ces informations - il semble donc judicieux d'inclure l'encodage dans la partie déclaration du document XML.

+0

Contrairement au 'VersionInfo', la' EncodingDecl' dans la notation de la grammaire BNF ne [regarde pas en option] (https: //www.w3. org/TR/REC-xml/# sec-TextDecl). –

0

pourquoi est-il nécessaire de mentionner le codage utilisé au début d'un document XML

Il n'est pas. Il y a des défauts. (UTF-8 et UTF-16, qui peut être fiable une distinction entre programatically)

et pourquoi le codage est nécessaire

Les ordinateurs ne comprennent le binaire. L'encodage est le processus de représentation des lettres, des nombres, etc. en binaire afin qu'il puisse être traité par un ordinateur. Différents encodages stockent les caractères de différentes manières.

+0

Cela signifie que je n'ai pas besoin de mentionner le codage dans la balise AmritaS

+0

Tant que le codage est UTF-8 ou UTF-16. – Quentin

+1

@Quentin, est-ce vrai? De la spécification: 'TextDecl :: = '' - Je pense que EncodingDecl ne peut ommiter que si toute la deletion XML est ignorée. – kamituel