Lisez cet article pour savoir comment spécifier les entités caractère manquantes afin de remplacer des caractères spéciaux XSLT sous Dreamweaver.
L’interface utilisateur a été simplifiée sous Dreamweaver CC et versions ultérieures. Par conséquent, il se peut que vous ne trouviez pas certaines options décrites dans cet article sous Dreamweaver CC et versions ultérieures. Pour plus d’informations, consultez cet article.
Dans le langage XSLT, certains caractères ne sont pas pris en charge dans certains contextes. Il est par exemple impossible d’utiliser le signe inférieur à (<) et l’esperluette (&) dans du texte placé entre des balises ou dans une valeur d’attribut. Le moteur de transformation XSLT renvoie une erreur si ces caractères sont utilisés incorrectement. Pour résoudre ce problème, vous pouvez remplacer les caractères spéciaux par des entités de caractères.
Une entité de caractère est une chaîne de caractères représentant d’autres caractères. Les entités de caractères sont nommées ou numérotées. Une entité nommée commence par une esperluette (&) suivie du nom ou des caractères et se termine par un point-virgule (;). Par exemple, < représente le chevron gauche (<). Les entités numérotées commencent et se terminent de la même façon, mais le signe dièse (#) et un nombre spécifient le caractère.
XSLT propose cinq entités prédéfinies :
Caractère |
Code d’entité |
---|---|
< (inférieur à) |
< |
& (esperluette) |
& |
> (supérieur à) |
> |
" (guillemets) |
" |
‘ (apostrophe) |
' |
Si vous utilisez d’autres entités de caractères dans un fichier XSL, vous devez les définir dans la section DTD du fichier XSL. Dreamweaver fournit plusieurs définitions d’entité par défaut que vous pouvez voir en haut de tout fichier XSL qui y est créé. Ces entités par défaut couvrent un grand nombre de caractères courants.
Lorsque vous affichez un aperçu de votre fichier XSL dans un navigateur, Dreamweaver vérifie la présence d’entités indéfinies dans le fichier XSL et vous avertit lorsqu’une telle entité est détectée.
Si vous affichez l’aperçu d’un fichier XML associé à un fichier XSLT ou une page côté serveur associée à une transformation XSLT, c’est le serveur ou le navigateur (en lieu et place de Dreamweaver ) qui affiche ce message d’avertissement. L’exemple suivant illustre le message qu’Internet Explorer est susceptible de renvoyer lorsque vous demandez la transformation d’un fichier XML par un fichier XLS dans lequel une entité n’est pas définie : Référence à une entité non définie ’auml’. Erreur lors du traitement de la ressource ’http://localhost/testthis/list.xsl’. Ligne 28, Position 20 <p class=’’test’’>ä</p> -------------------^
Pour corriger l’erreur sur votre page, vous devez y ajouter la définition d’entité manuellement.
Reference to undefined entity 'auml'. Error processing resource 'http://localhost/testthis/list.xsl'. Line 28, Position 20 <p class=''test''>ä</p> -------------------^
Cette page web contient les 252 entités prises en charge par les langages HTML 4 et XHTML 1.0.
Si, par exemple, l’entité de caractère Egrave (e accent grave) n’est pas définie, recherchez « Egrave » sur la page web du W3C. Vous y trouverez les informations suivantes :
<!ENTITY Egrave CDATA "È" -- latin capital letter E with grave, U+00C8 ISOlat1 -->
Dans notre exemple, Egrave est le nom de l’entité et È est le code de l’entité.
<!ENTITY entityname "entitycode;">
Dans notre exemple, vous taperiez la balise d’entité suivante :<!ENTITE Egrave "È">
<!ENTITY Egrave "È">
Si vous utilisez régulièrement les mêmes entités de caractères, il est préférable d’ajouter leur définition dans les fichiers XSL créés par défaut par Dreamweaver lorsque vous utilisez Fichier > Nouveau.
Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml
<documenttypedeclaration id="mm_xslt_1">
<!ENTITY entityname "entitycode;">
Accéder à votre compte