STIC Discussion:STIC II - exercice 10 (Volt)

De EduTech Wiki
Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

voir aussi:

Questions Ex10 -- Arocca 29 février 2012 à 16:41 (CET)

  • comment fait-on pour la documentation technique: Interne (notamment dans la DTD) et/ou externe), je ne trouve pas dans le logiciel exchanger xml !?
  • Bonus : associer une CSS au résultat HTML (à quel moment avons-nous du html?)
  • Je ne me souviens plus de l'utilité de cette procédure : Une fois sur le fichier XML, faites transform, Execute Advanced XSLT, et là il ne faut pas oublier de choisir "current document", "use processing instructions" (avec option processor Saxon (XSLT 2.0)) et "new document" ?

Re: Questions Ex10 -- Daniel K. Schneider 29 février 2012 à 21:28 (CET)

  • La DTD se documente dans la DTD (voir les exemplse) ou encore dans un document à part. A vous de choisir.
  • A un moment donné, il vaut mieux analyser le HTML qui est produit par le XSLT. La procédure fait exactement cela. Vous pouvez créer un document HTML que vous pouvez ensuite valider. Un bon XSLT produit du bon HTML .... Alternativement, il existe des extensions de navigateurs qui montrent aussi le HTML (mais il faut les trouver).

Re: Re: Questions Ex10 -- Arocca 8 mars 2012 à 16:24 (CET)

Voici ma question en video http://tecfaetu.unige.ch/etu-maltt/R2D2/rocca6/stic-2/ex10/QuestionVideo.flv
Re: Re: Re: Questions Ex10 -- Daniel K. Schneider 8 mars 2012 à 18:00 (CET)

La réponse est simple: Il faut pas valider avec cet outil, car c'est juste un éditeur XML. Autrement dit, il ne comprend pas HTML (seulement XHTML). Donc soit:

  • sauver le fichier et valider ailleurs (par exemple avec une extension dans votre navigateur ou encore sur le service de validation W3C.
  • produire du XHTML

Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Raphaël Gracia 18 mars 2013 à 18:07 (CET)

Bonjour,

Je n'arrive pas à associer la dtd à mon fichier xml. Quand je clique sur "validate", j'ai l'erreur suivante: no protocol entrainement.dtd

voici la déclaration au début du fichier xml

<?xml version="1.0"?>
<!DOCTYPE entrainement SYSTEM "entrainement.dtd">

le fichier xml s'appelle "entrainement.xml", et le fichier dtd, s'appelle "entrainement.dtd". Ils sont sauvés dans le même répertoire.

Comment faire pour que ça marche ?

Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Daniel K. Schneider 18 mars 2013 à 18:15 (CET)

Difficile à dire. A priori vous faites juste. Ceci dit, avez-vous fermé et réouvert le fichier XML une fois que vous avez ajouté le lien vers la DTD et l'élément racine ?

<?xml version="1.0"?>
<!DOCTYPE entrainement SYSTEM "entrainement.dtd">
<entrainement>
</entrainement>

Autre possibilité: Votre éditeur XML. Utilisez-vous Exchanger ou un autre ? Certains éditeurs ne savent rien faire ....

Si cela marche tjrs pas, il faut poser les 2 fichiers sur le serveur Web et inclure un lien ici. Ensuite je vais regarder.

Re: Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Raphaël Gracia 24 mars 2013 à 14:03 (CET)

J'utilise exchanger. J'ai fermé, réouvert les fichier. Quand je valide, j'ai toujours la même erreur. Je me demande si ça ne peu pas provenir du fait que, quand j'ai créé les fichiers, j'ai coché "dtd document" pour la dtd, et "document from clipboard" pour le fichier xml (et non "default xml document", parce que cela crée une balise "xngr" dont je ne sais pas ce à quoi elle sert).


http://tecfaetu.unige.ch/etu-maltt/stella/gracia0/stic-1/ex10/

Voici le lien vers mes deux fichiers. Le fichier xml ne contient que la première balise

Re: Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Daniel K. Schneider 24 mars 2013 à 16:17 (CET)

Non, tout est bon ou presque ....

C'est normal d'avoir une erreur de validation, puisque votre DTD définit des élements obligatoires. Il faut remplir le XML, sinon le XML n'est pas valide. La DTD a justement pour but d'assurer à ce que toute information exigée soit présente et dans une "bonne" forme.

Maintenant, la validation de la DTD (Schema->Validate DTD) regarde en fait juste la forme, c-a-d cela regarde si vous avez bien défini règle par règle. Dans votre DTD il y a au moins erreur: Il manque la définition de l'élément seancenumero.

Finalement, XML est du texte pur et se crée/ouvre avec n'importe quel éditeur de texte (sauf le notepad de Windows qui abime tout contenu). la balise xngr est juste un clin d'oeil au nom du logiciel ... suffit de les tuer.

Re: Re: Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Raphaël Gracia 28 mars 2013 à 16:40 (CET)

Toujours le même problème. J'ai rempli le xml, quand je sauvegarde, exchanger me dit que le xml est "well-formed", mais quand je valide, j'ai toujours l'erreur "no-protocol:entrainement.dtd". J'ai re-uploadé les deux fichiers sur le serveur

http://tecfaetu.unige.ch/etu-maltt/stella/gracia0/stic-1/ex10/

Re: Re: Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Daniel K. Schneider 28 mars 2013 à 18:40 (CET)

Mhh inexplicable. J'ai moi cela marche sans aucun problème. Enfin, votre DTD doit être corrigé et le XML aussi.

[Xerces-J 2.9.1] Validating "entrainement.xml" against "file:/home/schneide/schneide/tmp/entrainement.dtd" ...
Ln 4 Col 13 - Element type "objectifs" must be declared.
Ln 8 Col 19 - The content of element type "planification" must match "(volume,objectifperiode)".
Ln 21 Col 14 - The content of element type "principes" must match "(physiologie,mental,nutrition,recuperation)".
Ln 29 Col 28 - The content of element type "entrainementspecifique" must match "(force,souplesse,endurance,vitesse)".
Ln 33 Col 14 - The content of element type "exercice" must match "(exercicenumber,cibleexercice)".
Ln 39 Col 20 - The content of element type "resultatseance" must match "(discipline,ameliorations,commentaires)".
Ln 40 Col 11 - The content of element type "seance" must match "(seancenumber,exercice,entrainementspecifique,logistique,resultatseance)".
7 Errors

Donc, questions:

  • Avez-vous configuré manuellement qc. dans l'éditeur, genre dans les préférences du menu XML
  • Quelle est votre version de l'Editeur (faut utiliser version 3.3.01
  • Quel est votre OS ?
Re: Re: Re: Re: Problème dtd. -- Raphaël Gracia 18 mars 2013 à 18:07 (CET) -- Arnaud (discussion) 22 février 2015 à 21:24 (CET)

Même erreur lors de la validation, Ln -1 Col -1 - no protocol: htmlfr.dtd avec Exchanger XML Editor (3.3.01), ce qui est étrange c'est que l'erreur se produit uniquement quand j'execute mes fichiers depuis le dossier synchronisé avec mon cloud qui se trouve sur mon ordinateur mais pas quand les fichiers se trouvent sur mon bureau.

C'est peut-être une question de droit dans windows?!

Mon XML est bien formé et n'a aucune autre erreur de validation.

XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 22 février 2015 à 21:37 (CET)

Je pense que c'est normal puisque par exemple dans mon "langage" j'ai inventé quelques nouvelles balises dans le "head" qui n'ont pas d'équivalent en HTML (j'ai fait un HTML français extrêmement simplifié^^), il me rajoute un meta avec le format mais ne le ferme pas et cela créé une erreur... Et la <!DOCTYPE html> n'est pas inséré non plus lors de la traduction ce qui provoque de nombreuses erreurs lors de la validation w3c mais est normal non?

Bref, de toute façon les navigateurs tel que FireFox arrive a lire le xml donc c'est pas si important ou cela risque-t-il de me pénaliser?

Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 22 février 2015 à 22:10 (CET)

Non, essayez de produire un HTML presque parfait :=) Cela implique que vous devez absolument utiliser une déclaration de sortie:

Attention: Un éditeur XML ne peut valider du HTML4 ou HTML5 (les 2 ne sont pas XML!). Donc il faut effectivement valider avec un autre outil et ignorer la validation de XML Exchanger. Ce dernier ne valide que du XHTML. La balise meta non fermé ne pose donc pas problème....

Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 23 février 2015 à 12:37 (CET)

Ok merci, j'ai réduit au maximum les erreurs, mais la balise video et audio du html5 ne peuvent pas être validées via le W3C même en utilisant votre méthode car si on veut les rendre valide, c'est le xsl qui pose problème. Je trouve dommage d'être obligé de validé en HTML car du coup je ne peux plus vraiment être créatif au niveau des balises qui définissent mon nouveau langage HTML et qui n'existe pas dans le "vraie" HTML...

Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 23 février 2015 à 16:17 (CET)

Attention: il y a peut-être un mal-entendu. Je ne vous demande pas de valider le XML en tant que HTML, mais de valider le HTML produit par XSLT ! Le XSLT ne peut poser aucun problème, puisque il n'y a pas de XSLT dans le résultat de la transformation. Il faudrait me montrer vos fichiers XML et XSLT pour que je comprenne votre problème.

Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 23 février 2015 à 20:11 (CET)

Non, je n'ai pas validé mon XML en tant que HTML. :D Voilà j'ai posté mon exercice sur le serveur tecfa (si vous voulez jeter un coup d'oeil). Tout est ok sauf la validation du HTML5 après traduction qui me donne 2 erreurs à cause des balises "source" de l'audio et de la vidéo (nouvelles balises html5). Le seul avantage (à part que ce soit demandé dans la consigne^^) que je vois à ce que mon xml soit traduit via XSLT et donne un html avec le moins d'erreur possible, c'est qu'il soit reconnu par Internet Explorer qui n'arrive pas à lire directement le xml il me semble.

Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 24 février 2015 à 10:08 (CET)

Désolé, oui je vois votre problème. J'ai essayé 2 solutions et la 2ème semble marcher.

(1) Construire manuellement le truc (ne sert à rien):

      <xsl:template match="video">
        <video controls="controls">
	  <xsl:element name="source">
	    <xsl:attribute name="src">
	      <xsl:value-of select="sourceVideo"/>
	    </xsl:attribute>
	    <xsl:attribute name="type">video/<xsl:value-of select="formatVideo"/></xsl:attribute>
	  </xsl:element>
	</video>
      </xsl:template>

(2) Changé la sérialisation en XML (au lieu de HTML). En tout cas le processeur XSLT de linux donne un bon résultat valide avec cela. Donc j'ai changé la déclaration output puis ajouté une ligne dans votre template htmlfr.

<xsl:output
     method="xml"
     omit-xml-declaration = "yes"
     encoding="UTF-8"
     indent="yes" />

  <xsl:template match="htmlfr">
    <xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html>]]></xsl:text>
    <html>   
      <xsl:apply-templates/>
    </html>
  </xsl:template>

PS: Sinon ne vous inquiétiez pas trop pour 2 petits erreurs de validation. S'il y en pas des tonnes (et parfois il y en a) on peut aussi fermer les yeux. Enfin, essayez quand-même ma solution.

Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 24 février 2015 à 17:09 (CET)

Excellent, merci ça marche (j'ai testé que la solution 2)! Plus d'erreur lors de la validation W3C du HTML5 qui a été produit. Mais j'aimerai comprendre, en fait ces deux lignes de code permettent de dire à XSLT de traduire de façon différente le XSL ou elle permet de d'outrepasser les erreurs qui pourraient en découler?

omit-xml-declaration = "yes"
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html>]]></xsl:text>

Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 24 février 2015 à 17:38 (CET)

En fait, il semble que:

  • Lorsqu'on dit au processeur de produire du XML, il fabrique des balises auto-fermés
  • Lorsqu'on dit de faire du HTML, il fabrique une balise fermante (ce que vous ne voulez pas).

Donc la solution consiste à fabriquer du XML, mais ensuite retirer la déclaration XML puis insérer manuellement le DocType pourque cela devienne du HTML.

C'est tordu et j'ai trouvé la réponse en cherchant:

... mais les gens ont le problème opposé au votre (ils veulent une balise fermante) et j'ai déduit la solution. Ceci dit, cette solution semble très peu sérieuse, car un processeur XSLT a le droit de produire ce qu'il veut (balise auto-fermé ou non) car en XML c'est équivalent. C'est HTML5 le problème.

Une autre solution et qui serait béton consisterait à sortir carrément des caractères (avec xsl:text c'est possible)... mais c'est moins joli.

Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 24 février 2015 à 19:09 (CET)

Merci pour ces explications.

EDIT : Je viens de voir qu'après upload sur le serveur tecfa, firefox n'arrive plus a lire le xsl :( Du coup je pense que je devrais réutiliser mon ancien bout de code qui genère des erreurs...

Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 24 février 2015 à 21:06 (CET)

ok laissez le truc non validé si cela marche ! A mon avis les concepteurs de HTML5 ont tort d'imposer des balises autofermés alors qu'ils sont super laxistes par ailleurs ....

Le navigateur croit probablement que c'est du XML. Me gonfle ce truc. Donc retour à la solution du départ. Produire du "texte" brut. La solution suviante marche avec avec Chrome et IE, mais pas Firefox (ce dernier ne comprend probablement pas "disable-output-escaping" et cela dure depuis 14 ans, https://bugzilla.mozilla.org/show_bug.cgi?id=98168).

Ne suis pas vraiment expert XSLT et je ne sais pas vraiment ce qu'il faudrait faire ..... je deteste juste perdre ;)

http://tecfa.unige.ch/guides/tmp/

  <xsl:template match="video">
    <video controls="controls">
      <xsl:text disable-output-escaping="yes">&lt;source</xsl:text>
      src="<xsl:value-of select="sourceVideo"/>"
      type="video/<xsl:value-of select="formatVideo"/>"
      <xsl:text disable-output-escaping="yes">/&gt;</xsl:text>
    </video>
  </xsl:template>
Re: Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 24 février 2015 à 22:06 (CET)

Ouai je vais laissé tombé, je crois qu'il n'y pas vraiment de solution "viable", on arrive toujours à avoir une erreur quelque part. Je pense le réel problème ce n'est pas le HTML5 ou Firefox, c'est le XSLT qui n'a pas été mis à jour, la version 2.0 date de 2007 (comme vous l'aviez dit en cours).

J'ai remarqué quelque chose d'étonnant. Pour la balise vidéo le code fournit par le W3C :

 <video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4" >
Your browser does not support the video tag.
 </video>

Mais dans le XSL, il m'oblige a fermé la balise source comme ci-dessous sinon il y a une erreur et impossible de traduire, c'est ce qui doit poser problème une fois le HTML généré et vérifié avec le W3C puisqu'il y a deux fermetures.

 <video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4" />
Your browser does not support the video tag.
 </video>
Re: Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 25 février 2015 à 13:19 (CET)

Le problème est en fait assez complexe.

  • XSLT 1.0 (on parle de cela) a été prévu pour produire facilement du XML et du HTML basé sur SGML (donc HTML 3.2 et HTML 4)
  • XSLT permet de tout produire avec les balises <text> etc., mais Firefox a un bug sérieux qu'ils ont la flemme de corriger (c.f. mon message avant)
  • HTML5 a été pensé avec les programmeurs JavaScript en tête et ils n'ont rien à cirer des normes SGML qui justement autorisent différentes variantes d'écriture <balise/> et <balise></balise> sont équivalents en XML et en SGML. Donc la faut est clairement côté Firefox (d'abord), puis côté HTML5 qui rompt avec une tradition ....
  • XSLT 2.0 est plus puissant, mais les navigateurs ne l'implémentent pas. Il faut utiliser PHP, Java, etc. côté serveur pour cela ....
=Re: Re: Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 25 février 2015 à 14:13 (CET)=

D'accord mais cela signifie que le XSLT est en fin de vie, puisque les grandes sociétés du Web le mettent de coté?!

=Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Daniel K. Schneider (discussion) 25 février 2015 à 14:27 (CET)=
  • Côté client XSLT a rarement été utilisé (je ne sais pas pourquoi, sans doute parce que c'est une technologie plus difficile et qui en plus fait peur aux programmeurs web). Ceci dit, dans le monde MS/IE explorer (cad dans les entreprises) XSLT est aussi utilisé.
  • Un 3ème usage, c'est son utilisation pour écrire des filtres/traducteurs que l'on exécute en local. Comme beaucoup de données sont en XML, XSLT peut faire 10 fois plus rapidement les choses que si vous utilisez des regexps etc.
==Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: XSLT ne peut pas produire du HTML parfait, normal? -- Arnaud (discussion) 25 février 2015 à 16:47 (CET)==

D'accord merci pour ces précisions.

Erreur dans la transformation du xml -- Antonella (discussion) 16 mars 2015 à 16:08 (CET)

Bonjour,

j'ai créé ma grammaire .dtd, mon .xls et mon .xml mais lors du processus de transformation de ce dernier pour afficher l'html, j'obtiens cette erreur :


FATAL ERROR: java.net.MalformedURLException: no protocol: lesson_plan.dtd


Je ne comprends pas pourquoi, j'ai vérifier mes fichiers et ils sont valides et well-formed... Si jamais, je les ai téléchargés dans mon dossier sur le serveur tecfa.


Merci,

Antonella

Re: Erreur dans la transformation du xml -- Daniel K. Schneider (discussion) 16 mars 2015 à 17:56 (CET)

Hello, pouvez-vous me dire avec quel outil vous obtenez ce message ?

Re: Re: Erreur dans la transformation du xml -- Antonella (discussion) 16 mars 2015 à 19:11 (CET)

Pardon, c'est avec Exchanger Editor, et j'ai fait référence surtout au wiki en anglais pour l'utilisation.

Merci,

Antonella

Re: Re: Erreur dans la transformation du xml -- Daniel K. Schneider (discussion) 16 mars 2015 à 19:52 (CET)

Désolé, je ne peux pas aider (enfin pour le moment je n'ai pas d'idée). J'ai pris vos fichiers et la transformation marche très bien avec Exchanger. Donc hypothèse: une mauvaise manip de votre part dans un autre menu ?

La procédure est correctement décrite dans en:Exchanger_XML_Editor#XSLT_Transformation

  • Il faut ouvrir le fichier XML
  • Execute advanced XSLT
  • Choisir "Use processing instructions"
  • Choisir Saxon 2

PS: Il faut bien valider XML, XSLT et DTD. J'ai testé avec Firefox qui ne valide pas le XML avec la DTD.

Re: Re: Re: Erreur dans la transformation du xml -- Antonella (discussion) 18 mars 2015 à 12:01 (CET)

Merci, j'ai trouvé ce qui n'allait pas : choisir Open document et pas Current document dans la fenêtre Execute Advanced XSLT

Antonella

Re: Re: Re: Re: Erreur dans la transformation du xml -- Daniel K. Schneider (discussion) 18 mars 2015 à 12:04 (CET)

Je n'irais pas jusqu'à là.

Cela dépend du document ouvert. Normalement on ouvre le fichier XML et dans ce cas c'est le "current document". Par contre, si vous ouvrez le XSLT ou encore autre chose, il faut effectivement indiquer le document.

... enfin il peut toujours avoir des surprises selon une installation pas totalement réussi (dans le passé, j'ai observé des problèmes avec des utilisateurs Mac).

=Re: Re: Re: Re: Re: Erreur dans la transformation du xml -- Antonella (discussion) 18 mars 2015 à 12:09 (CET)=

Et en fait j'ai un Mac... Je pansais le mettre dans la page wiki, qu'en pensez-vous ?

Merci

==Re: Re: Re: Re: Re: Re: Erreur dans la transformation du xml -- Daniel K. Schneider (discussion) 18 mars 2015 à 12:21 (CET)==

Avez-vous vérifié que exchanger ne trouve pas le document ouvert qui doit être le document *.xml et surtout pas le XSLT ? Si vous partez du XSLT, cela ne peut pas marcher puisque le transform se fait sur le XML.

Si c'est vraiment un problème Java du MAC, oui notez le, SVP ... :=)

XSLT transformation -- Lydie BOUFFLERS (discussion) 26 mars 2016 à 10:43 (CET)

Bonjour,

J'ai un souci avec la transformation XSLT, j'ai suivi la procédure comme indiqué dans Exchanger XML Editor, j'ai même regardé sur la page en anglais et aussi sur Internet. J'ai aussi lu cette page de discussion mais là, je sèche. Mes fichiers sont valides et bien formés et j'obtiens cette erreur : FATAL ERROR: java.net.MalformedURLException: no protocol: articleex10.dtd

Ce qui m'a interpellé est que saxon 2 est une version expérimentale... bon, je ne sais pas si ça a quelque chose à voir mais bon, d'autres avant moi on réussi donc bon.

Auriez vous une idée de l'origine du problème ?

Merci par avance,

Lydie

Re: XSLT transformation -- Daniel K. Schneider (discussion) 27 mars 2016 à 04:52 (CEST)

Montrez-moi ces fichiers (avec un lien) SVP. A mon avis Saxon2 n'est pas le problème. On l'utilise depuis des années et ce n'est pas une version expérimentale à mon avis. Le problème doit être ailleurs. A mon avis simplement un mauvais nom de fichier qq. part. "MalformedURL" point vers cela.

Vous pouvez aussi regarder avec un autre processeur, par exemple celui du navigateur microsoft devrait être assez bon.

Re: Re: XSLT transformation -- Lydie BOUFFLERS (discussion) 27 mars 2016 à 10:17 (CEST)

Bonjour,

Oui, je suis d'accord sur ce point, c'est aussi ce que je me suis dit. J'ai vérifié mes "chemins" et ils ont l'air d'être correct. J'avoue, je sèche totalement.

Voici le répertoire : exercice 10

Personnellement, je ne "vois plus rien", j'ai trop la tête dedans :D) Si vous pouvez jeter un oeil et m'aiguiller vers mon erreur, ça m'aiderait beaucoup.

Merci par avance,

Lydie

Re: Re: Re: XSLT transformation -- Daniel K. Schneider (discussion) 27 mars 2016 à 11:43 (CEST)

Ha vous m'avez fait souffrir là. Il y a deux problèmes dans vos fichiers (par contre je ne vois aucun problème avec Exchanger, à mon avis vous avez du faire une mauvaise manip, il faut bien lancer la transformation depuis XML. Sinon vous pouvez aussi indiquer les 2 fichiers XML et XSL et bien choisir Saxon2). Alternativement: installation ratée.

Enfin:

  • Erreur facile à trouver: Enlever CSS comme stylesheet pour le XML. Le CSS va styler le html !
  • Surtout: Dans votre output declaration il faut produire du HTML et non pas du XML
  • Sinon, ajoutez aussi une déclaration meta charset dans le HTML (comme ci-dessous)

http://tecfa.unige.ch/guides/tmp/lydie/

Fichier XML: SANS lien vers le CSS

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article SYSTEM "articleex10.dtd">
<?xml-stylesheet type="text/xsl" href= "articleex10.xsl" ?> 

Fichier XSL: Avec output declaration corrigé

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- output element definition -->
<xsl:output
     method="html"
     omit-xml-declaration = "yes"
     doctype-system="about:legacy-compat"
     encoding="UTF-8"
     indent="yes" />

<xsl:template match="article">
        <html>
        <head>
          <title>Structure d'un article scientifique</title>
          <meta charset="UTF-8"/>
          <link href="articleex10.css" rel="stylesheet" type="text/css" />
        </head>

voili, bonnes pâques

Re: Re: Re: Re: XSLT transformation -- Lydie BOUFFLERS (discussion) 29 mars 2016 à 16:49 (CEST)

Bonjour Monsieur Schneider,

Désolée de ne pas vous avoir répondu avant, je me remets seulement sur l'exercice 10 aujourd'hui.

Tout d'abord, merci pour votre aide.

Avec les erreurs que vous m'avez reporté (d'ailleurs, le CSS, j'aurais du trouver, c'était logique), j'ai corrigé mes fichiers.

J'ai relancé une génération mais ça ne fonctionnait toujours pas !

Au bout de quelques péripéties (cf. mon rapport), j'ai enfin trouvé : ce n'était pas une erreur de manipulation de XML Exchanger mais un problème de chemin de fichier trop long.

En copiant collant sur le desktop, ça marche tout à fait bien !

Merci encore !

Lydie

PS: je vais ajouter un petit mot sur la page wiki dans XML Exchanger