Est-ce un document XML valide (bien formé)?Les encodages d'entités XHTML sont-ils valides dans les documents XML tant qu'ils sont contenus dans des balises CDATA?
<?xml version="1.0" encoding="UTF-8" ?>
<outer>
<inner>©</inner>
</outer>
La question est de savoir si l'entité HTML/XHTML « © » de codage est valable dans un document XML où il n'y a pas DTD ou schéma pour la définir. Une autre façon d'exprimer ce qui précède serait de dire:
<?xml version="1.0" encoding="UTF-8" ?>
<outer>
<inner>©</inner>
</outer>
qui semble être XML valide avec un encodage UTF-8.
Mais est ce valide:
<?xml version="1.0" encoding="UTF-8" ?>
<outer>
<inner><![CDATA[©]]></inner>
</outer>
L'auteur du compte ci-dessus pour indiquer à l'analyseur XML qu'il doit passer par le symbole de copyright ci-dessus comme la chaîne « & copie; » plutôt que comme un caractère Unicode approprié. À cet égard, je trouve cette citation un peu déroutante: «Les nouveaux auteurs de documents XML ont souvent mal compris le but d'une section CDATA, croyant à tort que son but est de« protéger »les données d'être traitées comme des données de caractères ordinaires pendant le traitement. . [Mais] les données de caractère est des données de caractère, peu importe si elle est exprimée par une section CDATA ou balisage ordinaire. »(De Wikipedia)
Je cherche séparement à un format XML proposé à partir d'un second auteur qui a enveloppé tous balise dans les sections CDATA même lorsque l'étiquette peut, par exemple, contenir que des chiffres.
Espérons un gourou XML peut aider à éclaircir la confusion sur le but de CDATA.
Merci!
Ce dernier exemple est bien formé n'est-ce pas? Vous dites juste que n'importe quelle DTD ou XSD qui s'appliquerait devrait permettre des étiquettes imbriquées ... Je veux juste m'assurer que j'ai bien compris. :-) –
Oui, le dernier exemple * est * bien formé en XML, mais il peut être invalide en XML si le schéma ou la DTD indique que le contenu de la balise "inner" est une donnée de caractère et non d'autres éléments. – Eddie
J'ai mis à jour mon asnwer en réponse à votre commentaire. – Eddie