« STIC:STIC I - exercice 6 (Nestor-Pixel) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{stic12}}
{{stic_archive}}
== Enoncé de l'exercice 6 ==
== Enoncé de l'exercice 6 ==
<categorytree mode="pages" depth="1" style="float:right; clear:right; margin-left:3px; border:1px solid gray; padding:0.7ex; background-color:#f9f9f9;">STIC</categorytree>
<categorytree mode="pages" depth="1" style="float:right; clear:right; margin-left:3px; border:1px solid gray; padding:0.7ex; background-color:#f9f9f9;">STIC</categorytree>
Ligne 62 : Ligne 62 :
** Menu ''Schema->Convert Schema''
** Menu ''Schema->Convert Schema''


== Templates à utiliser pour bien commencer l'exercice ==
== Templates à utiliser pour un nouveau schéma ==


Comme il existe plusieurs façons d'utiliser un XSD, je vous conseille de suivre la logique ci-dessous. Un peu plus à copier/coller, mais à mon avis la façon la plus simple de travailler
Comme il existe plusieurs façons d'utiliser un XSD, je vous conseille de suivre la logique ci-dessous. Un peu plus à copier/coller, mais à mon avis la façon la plus simple de travailler avec XSD.
avec XSD.
 
Note: Adaptez aussi la DTD traduite à cette logique !


=== XSD ===
=== XSD ===
Ligne 112 : Ligne 113 :
Attention: Comme vous utiliserez des name spaces probablement, '''il faut en conséquence adapter le XSLT pour que XSLT trouve les balises de votre namespace''' !
Attention: Comme vous utiliserez des name spaces probablement, '''il faut en conséquence adapter le XSLT pour que XSLT trouve les balises de votre namespace''' !


<pre>
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet  
<xsl:stylesheet  
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
xmlns:tic="http://tecfa.unige.ch/perso/maltt/XXXX"
xmlns:tic="http://tecfa.unige.ch/perso/maltt/XXXX"
version="1.0"
version="1.0"
exclude-result-prefixes="tic"
exclude-result-prefixes="tic"
>
>
<xsl:output method="html"/>
<xsl:output method="html"/>
<xsl:template match="tic:VOTRE_RACINE">
<xsl:template match="tic:VOTRE_RACINE">
<html>
<html>
<head>
  <head>
<title>
  <title>
<xsl:value-of select="tic:title"/>
    <xsl:value-of select="tic:title"/>
</title>
  </title>
</head>
</head>
<body bgcolor="#8CA7FC">
<body bgcolor="#8CA7FC">
<xsl:apply-templates/>
  <xsl:apply-templates/>
</body>
</body>
</html>
</html>
</xsl:template>
</xsl:template>


<xsl:template match="tic:UN_ELEMENT">
<xsl:template match="tic:UN_ELEMENT">
</xsl:template>
</xsl:template>




<xsl:template match="tic:UN_ELEMENT">
<xsl:template match="tic:UN_ELEMENT">
</xsl:template>
</xsl:template>


</pre>
</source>


Template XSLT qui marchera avec un XML sans namespaces (donc faudrait les enlever après validation)
Template XSLT qui marchera avec un XML sans namespaces (donc faudrait enlever toute trace de namespace dans votre XML (!) après validation)
<pre>
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
Ligne 173 : Ligne 174 :
</xsl:stylesheet>
</xsl:stylesheet>


</pre>
</source>


== Ressources ==
== Ressources ==
Ligne 198 : Ligne 199 :
: [[:en:XSLT_Tutorial_-_Basics|XSLT Tutorial]] (en, mini-tutoriel)
: [[:en:XSLT_Tutorial_-_Basics|XSLT Tutorial]] (en, mini-tutoriel)
: [[:en:Character encoding| Character encoding]] (en, liens encodage)
: [[:en:Character encoding| Character encoding]] (en, liens encodage)
[[Category: STIC]]

Dernière version du 14 septembre 2010 à 19:12

Cette page fait partie des archives des cours Cours STIC (STIC I, STIC II,STIC III,STIC IV)

Enoncé de l'exercice 6

Cet exercice du cours STIC I vous permet:

  • d'apprendre comment construire des XSD
  • d'améliorer vos connaissances de XSLT

Tâche

  • Faire une XSD de votre choix.
  • Afficher avec une feuille de style XSLT un contenu fait avec cette XSD
  • Contribuer au Wiki

Emplacement de la page d'accueil / rapport:

/etu-maltt/nestor/<login>/stic/ex6/
Suggestions contribution WIKI
  • Tout ce qui a un rapport avec XML, XSLT, XSD, etc.

Contraintes

  • Contenu selon vos envies et possibilités, mais en rapport avec les thématiques de MALTT
  • Vous pouvez reprendre la DTD de l'exercice 2, mais essayez d'abord de l'améliorer (le cas échéant):
    • Evitez la multiplication des éléments ayant le même type de contenu.
    • Tentez de mieux hiérarchiser: chaque élément correspond à un objet naturel. Ses sous-éléments décrivent ses composants ou propritiés. Ses attributs décrivent ses propriétés.
  • La XSD doit être correcte et vos contenus doivent être valides (respecter la XSD)
  • Vous devez présenter le contenu d’un fichier test avec une XSLT. Cette présentation se fera à choix en HTML, XHTML (strict ou transitoire) ou SVG ou X3D.

Il faut donc produire 4 fichiers au moins: Une XSD, un fichier *.xml, un fichier *.xsl et finalement un rapport.

Le rapport:

  • Titre, auteur et date
  • Le résulat:
    • Lien vers la XSD (XML Schema)
    • Lien vers le fichier XML
    • Lien vers le *.XSLT qui va avec (et la CSS si vous en utilisez)
  • Objectifs XSD: Elle sert à quoi ?
  • Objectifs XSLT: Comment avez-vous pensé la mise en page ?
  • La production: bref résumé de la démarche
  • Difficultés, auto-évaluation, remarques
  • Ressources utilisées, bibliographie.

Evaluation

  • Qualité du rapport (y compris discussion des besoins et du vocabulaire)
  • Thématique (pas de recette de cuisine, liste de CDs etc. !)
  • Ergonomie et qualité de la présentation
  • Fonctionalité, originalité. etc.
  • Qualité de la XSD par rapport au buts fixés
  • Validité des fichiers XML, XSLT et de la XSD
  • Contribution au wiki
  • Bonus: Richesse de la XSD (par ex. contraintes sur les données et faire plus qu’une simple structure tabulaire)
  • Bonus: Sortie en SVG ou X3D.

Activités en classe

Warm-up - traduire une DTD vers XML Schema (XSD)

  • Faites une copie de vos fichiers de l'exercice 2 (Si vous avez raté de faire l'exercice, copiez les fichiers d'un de vos collègues).
  • Faites une traduction de la DTD vers XSD avec XML Exchanger light.
    • Menu Schema->Convert Schema

Templates à utiliser pour un nouveau schéma

Comme il existe plusieurs façons d'utiliser un XSD, je vous conseille de suivre la logique ci-dessous. Un peu plus à copier/coller, mais à mon avis la façon la plus simple de travailler avec XSD.

Note: Adaptez aussi la DTD traduite à cette logique !

XSD

Remplacez le XXX par votre login sur nos serveurs ou mettez un autre URL à vous.

<?xml version="1.0"?>
<xs:schema 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   targetNamespace="http://tecfa.unige.ch/perso/maltt/XXXX" 
   xmlns="http://tecfa.unige.ch/perso/maltt/XXXX"
   elementFormDefault="qualified"
   attributeFormDefault="unqualified" 
   version="1.0">
<xs:annotation>
  <xs:documentation xml:lang="fr">bla bla ... (petite documentation) ... </xs:documentation>
</xs:annotation>

   <!-- ici les règles XSD -->

</xs:schema>

XML

Template XML (remplacez "votre_racine", XXXX, "votre_xsd.xsd et votre_style.xsl")

<?xml version="1.0"?>
<?xml-stylesheet href="votre_style.xsl" type="text/xsl"?>

<votre_racine  
  xmlns="http://tecfa.unige.ch/perso/maltt/XXXX" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/XXXX votre_xsd.xsd"
  >

   <!-- ici le contenu -->

</votre_racine>

XSLT

Copiez/collez le chablon ci-dessous remplacez "VOTRE_RACINE, "UN_ELEMENT" par vos éléments. Sinon, la plupart des éditeurs XML offrent une assistance XSLT.

Attention: Comme vous utiliserez des name spaces probablement, il faut en conséquence adapter le XSLT pour que XSLT trouve les balises de votre namespace !

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:tic="http://tecfa.unige.ch/perso/maltt/XXXX"
version="1.0"
exclude-result-prefixes="tic"
>
<xsl:output method="html"/>
	
<xsl:template match="tic:VOTRE_RACINE">
 <html>
  <head>
   <title>
    <xsl:value-of select="tic:title"/>
  </title>
 </head>
 <body bgcolor="#8CA7FC">
  <xsl:apply-templates/>
 </body>
 </html>
</xsl:template>

<xsl:template match="tic:UN_ELEMENT">
	
</xsl:template>


<xsl:template match="tic:UN_ELEMENT">
	
</xsl:template>

Template XSLT qui marchera avec un XML sans namespaces (donc faudrait enlever toute trace de namespace dans votre XML (!) après validation)

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

  <xsl:output method="html"/>

  <xsl:template match="VOTRE_RACINE">
    <html>
      <body bgcolor="#FFFFFF">
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="UN_ELEMENT">
    
  </xsl:template>

  <xsl:template match="UN_ELEMENT">
    
  </xsl:template>


</xsl:stylesheet>

Ressources

Transparents
Introduction à XML Schema (XSD) - PDF File
TECFA's XML page
Introduction à XML et DOM - PDF file , (transparents)
Introduction technique à XML - PDF file , (transparents)
Introduction technique à XSLT - PDF file , (transparents)
Exemples de XSD
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
EduTech Wiki français
Encodage de caractères
XML
Tutoriel DTD
Tutoriel XSLT débutant
EduTech Wiki anglais
XSLT (en, liens)
XML (en, mini-tutoriel + liens)
XSLT Tutorial (en, mini-tutoriel)
Character encoding (en, liens encodage)