Ajout d’entités de caractère pour XSLT sous Dreamweaver

Dernière mise à jour le 20 déc. 2021

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 et versions ultérieures. Par conséquent, il se peut que vous ne trouviez pas certaines options décrites dans cet article sous Dreamweaver et versions ultérieures. Pour plus d’informations, consultez cet article.

Spécification d’une entité de caractère manquant

En XSLT, certains caractères ne sont pas autorisés dans certains contextes. Par exemple, vous ne pouvez pas utiliser le symbole inférieur (<) et l'esperluette (&) dans le texte entre balises ou dans une valeur d'attribut.Le moteur de transformation XSLT vous donnera une erreur si ces caractères sont utilisés de manière incorrecte. Pour résoudre le problème, vous pouvez spécifier des entités de caractère pour remplacer les caractères spéciaux.

Une entité de caractère est une chaîne de caractères qui représente d'autres caractères. Les entités de caractère sont soit nommées, soit 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, &lt; représente le caractère chevron ouvrant (<).Les entités numérotées commencent et se terminent également de la même manière, sauf qu'un signe de hachage (#) et un numéro spécifient le caractère.

XSLT comporte les cinq entités prédéfinies suivantes :

Caractère

Code d'entité

< (inférieur à)

<

& (esperluette)

&

> (supérieur à)

>

" (guillemets)

&quot;

‘ (apostrophe)

&apos;

Si vous utilisez d'autres entités de caractère 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 d'un fichier XSL créé dans Dreamweaver. Ces entités par défaut couvrent une large sélection des caractères les plus couramment utilisés.

Lorsque vous prévisualisez votre fichier XSL dans un navigateur, Dreamweaver recherche des entités non définies dans le fichier XSL et vous avertit si une entité non définie est trouvée.

Si vous prévisualisez un fichier XML attaché à un fichier XSLT ou si vous prévisualisez une page côté serveur avec une transformation XSLT, le serveur ou navigateur (au lieu de Dreamweaver) vous avertit d'une entité non définie. Voici un exemple d'un message que vous pourriez recevoir dans Internet Explorer lorsque vous demandez un fichier XML transformé par un fichier XSL avec une définition d'entité manquante :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''>&auml;</p> -------------------^

Pour corriger l'erreur dans votre page, vous devez ajouter la définition d'entité à votre page manuellement.

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''>&auml;</p>

-------------------^

Spécification d’une définition d’entité manquante

Recherchez le caractère manquant dans la page de référence d'entité de caractère sur le site web du W3C à www.w3.org/TR/REC-html40/sgml/entities.html.

Cette page web contient les 252 entités autorisées en HTML 4 et XHTML 1.0.

Par exemple, si l'entité de caractère Egrave est manquante, recherchez « Egrave » sur la page web du W3C.Vous trouverez l'entrée suivante :

<!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->

Notez le nom d'entité et le code d'entité dans l'entrée.

Dans l'exemple, Egrave est le nom de l'entité, et &#200 est le code d'entité.

Avec ces informations, basculez en mode Code et saisissez la balise d'entité suivante en haut de votre fichier XSL (après la déclaration Doctype et avec les autres balises d'entité) :

<!ENTITY entityname "entitycode;">

Dans l'exemple, vous saisirez la balise d'entité suivante : <!ENTITY Egrave &quot;&#200;&quot;>

<!ENTITY Egrave "&#200;">

Enregistrez le fichier.

Si vous utilisez plusieurs fois les mêmes entités de caractère, vous pouvez ajouter de façon permanente leurs définitions dans les fichiers XSL que Dreamweaver crée par défaut lorsque vous utilisez Fichier > Nouveau.

Ajout de définitions d'entité aux fichiers XSL que Dreamweaver crée par défaut

Localisez le fichier de configuration suivant dans le dossier de l'application Dreamweaver et ouvrez-le dans n'importe quel éditeur de texte :

Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

Localisez la déclaration mm_xslt_1 :

<documenttypedeclaration id="mm_xslt_1">

Saisissez la nouvelle balise d'entité ou les nouvelles balises dans la liste des balises d'entité, comme suit :

<!ENTITY entityname "entitycode;">

Enregistrez le fichier et redémarrez Dreamweaver.