« STIC Discussion:STIC II (R2D2) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
m (oublié une étoile ...)
Aucun résumé des modifications
Ligne 32 : Ligne 32 :


(Donc Choi a fait une DTD pour écrire des rapports et les affiche avec XSLT).
(Donc Choi a fait une DTD pour écrire des rapports et les affiche avec XSLT).
===== Remerciements =====
J'ai trouvé une solution alternative, qui m'a demandé de modifier légèrement ma DTD (en lui créant un item "para"), en ajoutant ce "para" sur ma feuille XSL. De plus, comme <p> était formaté à tirer un trait entre les paragraphes, j'ai dû aussi créer <p class="back"> et modifier le style dans ma CSS. Bref, bref, cela m'a permis de créer en quelque sorte des blocs. Mais l'ennui, c'est que les saut entre les paragraphes sont un peu larges.. Mais bon, tant pis, l'essentiel est que le texte ne soit plus visible en paquet... Alors, merci pour tous vos bons conseils!! Choï
De visu, ça donne ça: [http://tecfa.unige.ch/etu-maltt/maya/jennij/stic/ex11/index.xml mon exercice]

Version du 26 mars 2008 à 01:08

QUESTION 1 - saut de ligne dans fichier xml

- Est-ce que quelqu'un sait comment on fait un saut de ligne dans un fichier xml?? y'a un truc à faire dans xsl?? (ou dites-moi si la question a déjà été posée en me mettant le lien de la réponse... ) Merci. Choï

Réponse

Oui priori la notion de saut de ligne n'est pas dans la logique XML. S'il s'agit de faire encoder un saut de ligne dans un texte par exemple, il faudrait définir une balise "saut" (comme le <br> en HTML) et ensuite avec XSLT (ou autre mécanisme) traduire en saut: <br> pour HTML, <br/> pour XHTML, control-J pour un fichier texte etc.

Réponse compliquée: Maintenant il existe des situations où il faut gérer des données déjà produites et on peut le faire, mais c'est pas du XSLT pour débutants: Quand un analyseur XML lit des données, les sauts de lignes (control-M suivi de control-J sous Windows et control-J sous Unix) sont traduits en \n. Maintenant, on peut écrire un template qui remplace le \n en br par exemple. C.f. la XSLT FAQ:

Réflexion

Intrigué par cette réponse (j'adore, la solution est d'un complexe), je me demandais en regardant le contenu du flux de ce wiki (lien rss). Et on remarque que les sauts de lignes (et tous le code html) sont écrites en dur. A la différence que les caractères d'ouverture et de fermeture de balises ( < et > ) sont écrites avec leur code ASCII ( &lt; et &gt; ).

Le xml ne traite pas les caractères ASCII comme des balises donc le traite "normalement" (ou plutôt ne les traitent pas) et les navigateurs (IE, Firefox, etc.) traitent les balises qu'elles soient écrites en clair ou non et les traitent normalement...

Donc, (j'ai aucune idée de ce que tu veux en faire....) mais dans ton cas, tu pourrais essayée de mettre &lt;br /&gt; à l'endroit où tu veux mettre ton saut de ligne.. La question est en fait, qui va traiter ton XML ? C'est une solution viable à votre avis grand manitou ?--Davidc 18 mars 2008 à 19:10 (CET)Répondre[répondre]

Pas viable je pense

RSS est un monde pleins de hacks avec des fortes incompatibilités, donc pas forcément une bonne source d'inspiration. Ils n'arrivaient même pas à publier une DTD avant la toute dernière version ....

D'un point de vue "système d'information" la solution est vraiment à chercher dans ma première réponse. Une DTD ou autre schéma doit être faite pour encoder TOUTE information nécessaire. Donc si Choi détaille une entrée en paragraphe et liste à puces, faudrait idéalement qu'elle adopte sa DTD à la tâche. La solution de mettre des &lt;br&gt; n'est pas trop différente de celle qui consiste à interpréter les caractères de fin de ligne. Va aussi falloir écrire du code XSLT assez compliqué pour le rendering.

Maintenant il faudrait simplement qu'elle refasse la DTD sans casser les anciens fichiers XML faits. Donc ajouter les fonctionalités supp. comme option

Avant: <!ELEMENT DEMARCHE (#PCDATA) >
Après: <!ELEMENT DEMARCHE (#PCDATA|P|ITEM)* >

(Donc Choi a fait une DTD pour écrire des rapports et les affiche avec XSLT).

Remerciements

J'ai trouvé une solution alternative, qui m'a demandé de modifier légèrement ma DTD (en lui créant un item "para"), en ajoutant ce "para" sur ma feuille XSL. De plus, comme

était formaté à tirer un trait entre les paragraphes, j'ai dû aussi créer

et modifier le style dans ma CSS. Bref, bref, cela m'a permis de créer en quelque sorte des blocs. Mais l'ennui, c'est que les saut entre les paragraphes sont un peu larges.. Mais bon, tant pis, l'essentiel est que le texte ne soit plus visible en paquet... Alors, merci pour tous vos bons conseils!! Choï De visu, ça donne ça: mon exercice