OVH Cloud OVH Cloud

xhtml et entité

17 réponses
Avatar
unbewusst.sein
je cherhe la syntaxe pour ajouter une(des) entités à un document xhtml.

j'utilise un js dont je ne suis pas maitre du code, il produit une
sortie htmlisée-colorisée de code javascript et utilise au moins
l'entité   pour créer les tabs.

quelle est la syntaxe exacte pour ajouter cette entité au DOVTYPE ?
--
Artaban de Médée

10 réponses

1 2
Avatar
unbewusst.sein
Pierre Goiffon wrote:

> le message d'erreur de Firefox

Mettez une page en ligne pour reproduire le prb, et donnez nous le
message d'erreur obtenu (dans la console JS ??)



Dans la page-même, Firefox n'affichait que ce message d'erreur.
Même chose dans la console (en moins bien).

avec la version exacte
de Firefox utilisée (exemple Mozilla/5.0 (Windows; U; Windows NT 5.1;
en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1)



Firefox version 2.0.0.1
Mozilla/5.0(Macintosh;U;PPC Mac OS X Mach-O;fr;rv;1.8.1.1)Gecko/20061204
Firefox/2.0.0.1

je referai cette page, mais ce soir je n'en aurai pas le temps.

> je ne savais pas qu'une entité était indifférente à l'encodage.

A quoi serviraient les entités si c'était le cas ! Une entité permet
d'inclure un caractère que l'on ne pourrait pas ajouter à sa page autrement.
Exemple : je suis en ISO Latin-1 et je veux insérer un symbole Euro...
Latin-1 ne contient pas le caractère ! Une entité permettra de l'ajouter.



ça veut dire que les browsers embarquent leurs propres glyph ?
le code que vous mettez pour cette entité :
<!ENTITY euro "&#xyz;">
il correspond à quoi, puisqu'il n'est pas prévu dans Latin-1 ?
--
Artaban de Médée
Avatar
Olivier Miakinen
Le 19/01/2007 18:26, Une Bévue a écrit :

ça veut dire que les browsers embarquent leurs propres glyph ?



Non, ça veut dire qu'un « ¤ » Latin-9 est le même caractère qu'un
« ¤ » cp1252 ou qu'un « ¤ » UTF-8. Le choix d'un charset ne change
que l'indexation du caractère quand il n'est pas sous forme d'entité.

Par exemple, le caractère numéro 8364 dans la table Unicode (U+20AC en
hexadécimal) se trouve à la position 164 en Latin9 et à la position 128
en cp1252 alors qu'il n'existe pas dans Latin1.
En latin9 on le représentera par un octet de valeur 164, en cp1252 par
un octet de valeur 128, et en UTF-8 par trois octets de valeurs
respectives 226, 130 et 172. Mais quel que soit le charset on peut aussi
le représenter par la chaîne de 7 octets &#8364; (38 35 56 51 54 52 59)

le code que vous mettez pour cette entité :
<!ENTITY euro "&#xyz;">
il correspond à quoi, puisqu'il n'est pas prévu dans Latin-1 ?



Il correspond au caractère Unicode U+0xyz.
Avatar
unbewusst.sein
Pierre Goiffon wrote:

Mettez une page en ligne pour reproduire le prb, et donnez nous le
message d'erreur obtenu (dans la console JS ??)



donc, finalement j'ai eu le temps de mettre en ligne, contrairement à ce
que j'ai dit, là je n'ai plus qu'un message d'erreur à la console.

<http://www.yvon-thoraval.com/XHTML11/syntax_dp_shl.xhtml>

là je n'ai plus rien en sortie dans les deux textarea...

le message d'erreur à la console :

Erreur : entité non définie
Ligne : 1
<SPAN xmlns="http://www.w3.org/1999/xhtml">&nbsp;i&nbsp;</-------------^
---------------------------------------------^

Erreur : uncaught exception: [Exception..."An invalid or illegal string
was specified" code: "12" nsresult: "0x8053000c
(NS_ERROR_DOM_SYNTAX_ERR)" location:
"http://www.yvon-thoraval.com/dp.SyntaxHighlighter/Scripts/shCore.uncomp
ressed.js Line: 280"]



pour comparaison, le résultat d'un autre script :

<http://www.yvon-thoraval.com/XHTML11/syntax_shjs.xhtml>


bien sûr, je préférerais que "ça marche" avec le premier exemple qui a
la possibilité de numéroter les lignes ce que ne sais pas faire l'autre
script.
--
Artaban de Médée
Avatar
Olivier Miakinen
Le 19/01/2007 12:10, Une Bévue a écrit :

Pour les différences entre XHTML et HTML concernant les entités, voir :
http://www.w3.org/TR/xhtml1/#h-A2



ouais ça parle du Latin 1, mais mon code est en UTF-8.



Surtout, ça parle de XHTML 1.0, alors que je vois que ton document est
en XHTML 1.1.
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:

Non, ça veut dire qu'un « ¤ » Latin-9 est le même caractère qu'un
« ¤ » cp1252 ou qu'un « ¤ » UTF-8. Le choix d'un charset ne change
que l'indexation du caractère quand il n'est pas sous forme d'entité.



<snip />

> le code que vous mettez pour cette entité :
> <!ENTITY euro "&#xyz;">
> il correspond à quoi, puisqu'il n'est pas prévu dans Latin-1 ?

Il correspond au caractère Unicode U+0xyz.



ah d'accord pigé le système des entités, qui ne servent que lorsque le
caractère n'est pas dispo dans l'encodage choisi.


--
Artaban de Médée
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:


Surtout, ça parle de XHTML 1.0, alors que je vois que ton document est
en XHTML 1.1.



je suis en train de regarder les ENTITY... pour xhtml 1.1
--
Artaban de Médée
Avatar
Olivier Miakinen
Le 19/01/2007 19:51, Olivier Miakinen a écrit :

Pour les différences entre XHTML et HTML concernant les entités, voir :
http://www.w3.org/TR/xhtml1/#h-A2



ouais ça parle du Latin 1, mais mon code est en UTF-8.



Surtout, ça parle de XHTML 1.0, alors que je vois que ton document est
en XHTML 1.1.



Tiens, si, ça devrait marcher :
http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/dtd_module_defs.html#a_module_XHTML_Latin_1_Character_Entities
Avatar
Olivier Miakinen
Le 19/01/2007 19:52, Une Bévue a écrit :

ah d'accord pigé le système des entités, qui ne servent que lorsque le
caractère n'est pas dispo dans l'encodage choisi.



C'est presque ça. Les entités peuvent servir *même* lorsque le caractère
n'est pas disponible dans le jeu de caractères choisi. Ceci vaut aussi
bien pour les entités numériques que pour les entités nommées (&#160;
&#xA0; ou &nbsp;).
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:


Tiens, si, ça devrait marcher :
http://www.w3.org/TR/2001/REC-xhtml-modularization


-20010410/dtd_module_defs.html#a_module_XHTML_
Latin_1_Character_Entities

ben oui, yen a un paquet !

le mystère s'épaissit ;-)
--
Artaban de Médée
Avatar
Olivier Miakinen
Le 19/01/2007 20:29, Une Bévue a écrit :

le mystère s'épaissit ;-)



Note que si tu ne veux pas (ou ne peux pas) inclure une espace
insécables directement dans le fichier, tu peux toujours utiliser
l'une des deux entités numériques &#160; ou &#xA0; à la place de
l'entité nommée &nbsp;. Là il n'y a pas de raison que le navigateur
râle puisqu'il n'y a pas besoin de les définir.
1 2