définir une DTD externe

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

définir une DTD externe

Message par arno. »

Bonjour,
quand je tapes ça :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html 
[
  <!ENTITY hello "Hello World!">
]>

<html xmlns="http://www.w3.org/1999/xhtml">
<p>&hello;</p>
</html>
j'ai bien un paragraphe avec marqué Hello World! comme je veux
par contre, si je tapes ça :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html SYSTEM "hello.dtd" >

<html xmlns="http://www.w3.org/1999/xhtml">
<p>&hello;</p>
</html>
et dans un fichier hello.dtd je tape ça :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>

<!ENTITY hello "Hello World!">
ça marche pas. j'ai regaré dans Google, et d'après ce que j'ai compris ça devrait marcher. J'en déduis que j'ai mal compris, mais est-ce que vous savez à quel niveau je me suis trompé ?
merci d'avance
FF_Olivier
Iguane
Messages : 979
Inscription : 09 juil. 2004, 15:41

Re: définir une DTD externe

Message par FF_Olivier »

arno. a écrit :et dans un fichier hello.dtd je tape ça :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>

<!ENTITY hello "Hello World!">
Vire la première ligne, le DTD n'est pas du XML si tu regardes bien ;)

Code : Tout sélectionner

<!ENTITY hello "Hello World!">
openSUSE 12.2 - FF v24.0 FR - TB v24.0 FR ma config en détails - Décrivez la vôtre ici ;)
userContent.css : modifiez l'apparence et le contenu des sites visités !
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

j'avais déjà essayé de faire ça, ça ne marche pas mieux :(
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

J'avais fait quelques investigations à ce sujet...

http://www.geckozone.org/forum/viewtopic.php?t=23131
http://forum.alsacreations.com/topic.php?fid=3&tid=3650

Je n'avais pas réussi à faire reconnaitre les entités non plus... :roll:
(en bas du topic d'alsacréations, je propose de le supprimer, mais il me faut garder les déclarations d'entités, chose impossible).
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

Bon, j'ai pas tout compris à ces 2 sujets, mais en gros ça a pas l'air possible.
Et donc, ça veut dire qu'on peut pas localiser un fichier XUL standalone comme on fait fait pour une extension :?:
edit : c'est bizarre, ça marche dans une extension
<!DOCTYPE window SYSTEM "chrome://extension/locale/ext.dtd">
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Hello, la syntaxe correcte est (par exemple pour insérer une DTD externe dans un document XHTML 1.1, je te laisse adapter) :

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8>
<DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd>[
  <!ENTITY %myDTD SYSTEM "path/to/my.dtd"> %myDTD;
]>
En résumé, tu dois déclarer ta DTD au sein du DOCTYPE de ta page en tant qu'entité externe, puis utiliser cette même entité juste après (toujours à l'intérieur de DOCTYPE).
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Aha ! Je m'en vais de ce pas essayer ça :)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

J'ai essayé ça... pas brillant :?

Code : Tout sélectionner

<DOCTYPE html [
  <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
  <!ENTITY svg "http://www.w3.org/2000/svg">
  <!ENTITY %HTMLlat1 SYSTEM "http://www.w3.org/TR/html4/HTMLlat1.ent"> %HTMLlat1;
  <!ENTITY %HTMLsymbol SYSTEM "http://www.w3.org/TR/html4/HTMLsymbol.ent"> %HTMLsymbol;
  <!ENTITY %HTMLspecial SYSTEM "http://www.w3.org/TR/xhtml1/xhtml-special.ent"> %HTMLspecial;
]>
Le doctype est mal formé :( cf. http://cui.unige.ch/~robin0/xhtml.xhtml
FF_Olivier
Iguane
Messages : 979
Inscription : 09 juil. 2004, 15:41

Message par FF_Olivier »

@calimo : il faut une espace, % HTMLlat1, mais même comme ça, ça ne marche pas.

Par contre, dans chrome://browser/content/credits.xhtml, je viens de tomber sur ça :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
  [
    <!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd">
    %brandDTD;
    <!ENTITY % creditsDTD SYSTEM "chrome://browser/locale/credits.dtd">
    %creditsDTD;
    <!ENTITY % licenseDTD SYSTEM "chrome://global/locale/license.dtd">
    %licenseDTD;
  ]
>

<html xmlns="http://www.w3.org/1999/xhtml">
etc...
... Et là, ça marche :? ...
openSUSE 12.2 - FF v24.0 FR - TB v24.0 FR ma config en détails - Décrivez la vôtre ici ;)
userContent.css : modifiez l'apparence et le contenu des sites visités !
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

calimo a écrit :Le doctype est mal formé :( cf. http://cui.unige.ch/~robin0/xhtml.xhtml
C'est normal, tu n'as mis ni "SYSTEM" ni "PUBLIC". Ce n'est pas parce que tu as mis "html" qu'il va deviner qu'il s'agit d'un document HTML, c'est la ligne complète qui a une signification !

J'ai par exemple trouvé ce site où il y a la signification de tous les éléments :
http://www.blooberry.com/indexdot/html/ ... octype.htm
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

À lire aussi pour construire ton propre identifiant, si le but est de créer ton propre langage à partir des modules XHTML au lieu d'étendre XHTML lui-même comme dans mon exemple plus haut
http://www.w3.org/TR/xhtml-modularizati ... ming_rules
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

re,
merci pour les réponses.
Je viens d'essayer, ça marche pas.

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
[
 <!ENTITY % bonjour SYSTEM "hello.dtd"> %bonjour;
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<p>&hello;</p>
</html>
j'ai bien du mal à comprendre toutes ces histoires, même en suivant les liens :oops:
C'est normal, tu n'as mis ni "SYSTEM" ni "PUBLIC". Ce n'est pas parce que tu as mis "html" qu'il va deviner qu'il s'agit d'un document HTML, c'est la ligne complète qui a une signification !
Ca je comprends pas bien :? Il peut pas se débrouiller avec xmlns="http://www.w3.org/1999/xhtml" :?: (au fait il, le validateur du w3c ou le parseur XML de Firefox ?)

et puis je comprends pas pourquoi on peut faire :
<!DOCTYPE window SYSTEM "chrome://extension/locale/ext.dtd">
et pas :
<!DOCTYPE window SYSTEM "ext.dtd">

Bobo disait dans un autre sujet :
Le chargement des fichiers externes dans la section DOCTYPE est interdite pour les fichiers du web, il me semble.
C'est à cause de ça en fait ?
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : debian-dev et 3 invités