STIC Discussion:STIC I - exercice 3 (Nestor-Pixel)

De EduTech Wiki
Aller à : navigation, rechercher

1 Erreur dans la DTD "travaux.dtd" à télécharger -- Benoit Gogniat 26 octobre 2008 à 19:05 (CET)

Dans le libellé suivant:

Capt Ecran DTD.jpg

Il manque l'expression avec la flèche juste avant le mot "remarks". Il vaut mieux changer d'emblée votre DTD pour qu'il n'y ait pas de plantage. Bonne semaine, Benoit

1.1 Re: Erreur dans la DTD "travaux.dtd" à télécharger -- Daniel K. Schneider 26 octobre 2008 à 21:44 (CET)

Hmm étrange. On utilise cette DTD depuis des années. Sans doute qq. part une erreur de manip ou une vieille version que vous avez trouvé qq. part.

Vous êtes sur d'avoir copié depuis http://tecfa.unige.ch/tecfa/teaching/staf14/files/workpage/travaux.dtd ?

La capture d'écran correspond pas à cette DTD. Avez-vous affiché dans IE puis sauvé ? ou autre chose dans ce style ?

En plus je ne comprends pas votre message "il manque l'expression avec la flèche ..." c'est quoi le message d'erreur ? Il fallait juste télécharger la DTD et puis si vous voulez utiliser le fichier http://tecfa.unige.ch/tecfa/teaching/staf14/files/workpage/ENLEVERwelcome.xml ENLEVERwelcome.xml comme point de départ.

Il faudrait me donner un message d'erreur précis et plutot copier la DTD ici. Me sens un peu perdu là :)

2 Demande de contrôle d'un arbre -- Sugarch0 22 octobre 2009 à 10:00 (CEST)

Bonjour! Pourriez-vous contrôler mon arbre xml avant que j'y introduise des données svp?

Le fichier est ICI

Concernant les liens URL et autres, je n'ai pas trouvé si on doit mettre une définition particulière ou des attributs du lien dans le xml et si oui comment le mettre.

Merci!

2.1 Re: Demande de contrôle d'un arbre -- Daniel K. Schneider 22 octobre 2009 à 10:42 (CEST)

Oui c'est bon (j'ai validé), de toutes les façons le valideur de votre éditeur XML vous le dira aussi. Donc utilisez l'éditeur !

Concernant les urls, il faut les mettre "tel quel".

<url>http://xxxx </url>

Ce langage "travaux" n'implémente pas d'attributs. Puisque vous avez aussi fait l'exercice 2, je vous conseille de regarder le fichier travaux.dtd et pour deux raisons:

  • Cela permet de répondre à ce type de questions
  • C'est un exercice de lecture. Dans l'avenir certains d'entre vous devront lire et comprendre d'autres schémas. (Toutes les normes e-learning sont en XML par exemple)

Donc juste pour rappel: Tout est dans la DTD et rien n'est ailleurs. XML est une formalisme pour définir des langages et XML en soi ne connait strictement rien de HTML (URLs, images, etc.) !

2.1.1 Re: Re: Demande de contrôle d'un arbre -- Sugarch0 22 octobre 2009 à 13:51 (CEST)

Merci! J'ai de toute facon regardé la dtd et fait valider le xml, mais je ne suis pas encore très sûre de moi.

En réfléchissant sur ces différents fichiers, je trouve que la dtd correspond à une base de données (il y a qques milions d'années, j'ai travaillé un peu avec dbase4, c'est là que j'ai un peu appris certaines lois du monde des ordinateurs)

2.1.1.1 Re: Re: Re: Demande de contrôle d'un arbre -- Daniel K. Schneider 22 octobre 2009 à 14:06 (CEST)
oui vous pouvez voir cela comme ca. C'est une structuration formelle de données. Enfin pour ceux qui connaissent déjà un peu SQL: Rien à voir. Un tel fichier XML correspond plus à une base de données objets et hierarchique comme par exemple le registre de Windows ou encore LDAP. Enfin l'analogie base de données n'est pas juste au même titre qu'on peut pas dire cette grammaire définit un formulaire. Mais ces deux "images" peuvent aider à comprendre la logique ....

3 Addition CSS avec XSLT et XML -- Sugarch0 23 octobre 2009 à 11:34 (CEST)

J'ai créé un fichier css tout simple pour la page travaux, je l'ai importé dans le XSL (comme mentionné dans la page de cours exercice 3) et ca n'a pas l'air de marcher. En suivant les instrucions de la page, je n'ai pas bien compris s'il fallait styler la page avec le xsl ou avec le css.

Tous les fichiers sont dans mon dossier ex3

3.1 Re: Addition CSS avec XSLT et XML -- Daniel K. Schneider 23 octobre 2009 à 22:53 (CEST)

Vous avez une légère misconception. XSLT c'est un traducteur, rien d'autre. Donc vous ne pouvez pas ajouter un style CSS à la feuille de style XSLT comme vous l'avez fait. Tout est assez mécanique. XSLT prend un élément XML et le traduit en autre chose (HTML dans notre cas). Si HTML doit être stylé en CSS, faut donc include une instruction HTML qui fait appel à la feuille de style (c.f. ex1).

Faux:

<?xml-stylesheet type="text/css" href="travaux.css"?>

Juste:

<xsl:template match="student">
    <html>
      <head>
       <link href="travaux.css" type="text/css" rel="stylesheet"/>
        <title>
          Page Travaux STAF 
        </title>
      </head>
.....
</xsl:template>

PS: La réponse est aussi dans mes slides ou encore dans l'article XSLT, chapitre CSS pour le résultat de la transformation

Vous y êtes presque :)

4 Corrections -- Sugarch0 6 janvier 2010 à 09:49 (CET)

J'ai repris l'exercie, réparé les liens où c'était possible et mis les fichiers au bon endroit. Le problème que je n'arrive pas à résoudre (avant de compléter toute la liste des travaux) est que le fichier est double (copie apparaît en bas) et je n'arrive pas à trouver la cause. Pouvez-vous m'aider?

4.1 Re: Corrections -- Daniel K. Schneider 6 janvier 2010 à 12:29 (CET)

Oui, vous avez laissé "trainer" un xsl:apply-templates. J'ai corrigé dans votre fichier sur le serveur. Dessus mis en commentaire.

  <xsl:template match="student">
  	<html>
      <head>
      	<link rel="stylesheet" href="style_asc.css" type="text/css"/>
        <title>
          Page Travaux MALTT - Aviva Chmiel
        </title>
      </head>
      <body>
        <h1 align="center">Page Travaux Maltt</h1>
        <h2>Données Personnelles</h2>
        <div id="personal">
        <xsl:apply-templates select="personal-data"/></div>	
        <h2 align="center">Liste des travaux effectués pour le master MALTT</h2>
        <xsl:apply-templates select="courses"/>
      </body>
      </html>
<!-- enlevé ci-dessous .... fait que certains templates sont exécutés 2 fois 
  <xsl:apply-templates />
-->
  </xsl:template>

Donc si vous avez d'abord xsl:apply-templates select="personal-data" et xsl:apply-templates select="courses" et ensuite encore xsl:apply-templates, les deux première règles vont encore être exécutés une fois. C'est mécanique comme presque tout en informatique :)