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

De EduTech Wiki
Aller à la navigation Aller à la recherche
 
(13 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>
Cet exercice du cours [[STIC I]] vous permet:
Cet exercice du cours [[STIC I]] vous permet:
* d'apprendre comment construire des XSD
* d'apprendre comment construire des XSD
Ligne 10 : Ligne 10 :
* Faire une XSD de votre choix.
* Faire une XSD de votre choix.
* Afficher avec une feuille de style XSLT un contenu fait avec cette XSD
* Afficher avec une feuille de style XSLT un contenu fait avec cette XSD
* Contribuer au Wiki


Emplacement de la page d'accueil / rapport:
Emplacement de la page d'accueil / rapport:


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


=== Contraintes ===
=== Contraintes ===
Ligne 46 : Ligne 50 :
* Qualité de la XSD par rapport au buts fixés
* Qualité de la XSD par rapport au buts fixés
* Validité des fichiers XML, XSLT et de la XSD
* 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: 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.
* Bonus: Sortie en SVG ou X3D.
Ligne 53 : Ligne 58 :
=== Warm-up - traduire une DTD vers XML Schema (XSD) ===
=== Warm-up - traduire une DTD vers XML Schema (XSD) ===


* Copiez vos fichiers de l'exercice 2
* 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 avec XML Exchanger light.
* Faites une traduction de la DTD vers XSD avec XML Exchanger light.
** Menu ''Schema->Convert Schema''
** Menu ''Schema->Convert Schema''


== Templates ==
== 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.
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 ===
=== XSD ===
Ligne 70 : Ligne 77 :
   targetNamespace="http://tecfa.unige.ch/perso/maltt/XXXX"  
   targetNamespace="http://tecfa.unige.ch/perso/maltt/XXXX"  
   xmlns="http://tecfa.unige.ch/perso/maltt/XXXX"
   xmlns="http://tecfa.unige.ch/perso/maltt/XXXX"
   elementFormDefault="qualified">
   elementFormDefault="qualified"
   attributeFormDefault="unqualified"  
   attributeFormDefault="unqualified"  
   version="1.0">
   version="1.0">
Ligne 102 : Ligne 109 :
=== XSLT ===
=== XSLT ===


Copiez/collez le chablon ci-dessous si vous voulez et remplacez "VOTRE_RACINE, "UN_ELEMENT" par vos éléments. Sinon, la plupart des éditeurs XML offrent une assistance 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.


Template 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''' !
<pre>
 
<source lang="xml">
<?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>
 
</source>
 
Template XSLT qui marchera avec un XML sans namespaces (donc faudrait enlever toute trace de namespace dans votre XML (!) après validation)
<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 130 : Ligne 174 :
</xsl:stylesheet>
</xsl:stylesheet>


</pre>
</source>


== Ressources ==
== Ressources ==
Ligne 144 : Ligne 188 :
: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/


; Autres
; EduTech Wiki français
: [[Encodage de caractères]]
: [[XML]]
: [[Tutoriel DTD]]
: [[Tutoriel XSLT débutant]]
 
; EduTech Wiki anglais
: [[:en:XSLT|XSLT]] (en, liens)
: [[:en:XSLT|XSLT]] (en, liens)
: [[:en:XML|XML]] (en, mini-tutoriel + liens)
: [[:en:XML|XML]] (en, mini-tutoriel + liens)
: [[:en:XSLT_Tutorial_-_Basics|XSLT Tutorial]] (en, mini-tutoriel)
: [[:en:XSLT_Tutorial_-_Basics|XSLT Tutorial]] (en, mini-tutoriel)
: [[Encodage de caractères]]
: [[: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)