STIC:STIC I - exercice 6 (Nestor-Pixel)
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
Emplacement de la page d'accueil / rapport:
/etu-maltt/nestor/<login>/stic/ex6/
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 d'en faire une meilleure version (le cas échéant). Donc éviter de multiplier des éléments ayant le même type de contenu par exemple ou encore mieux hiérarchiser.
- 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 un 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
- Bonus: Richesse de la XSD (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)
- Copiez vos fichiers de l'exercice 2
- Faites une traduction avec XML Exchanger light.
- Menu Schema->Convert Schema
Templates
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.
XSD
Remplacez le XXX par votre login sur nos serveurs ou mettez un autre URL à vous.
<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 si vous voulez et remplacez "VOTRE_RACINE, "UN_ELEMENT" par vos éléments. Sinon, la plupart des éditeurs XML offrent une assistance XSLT.
Template XSLT:
<?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
- TECFA's XML page
- Introduction à XML et DOM - PDF file , (transparents)
- Introduction technique à XML - PDF file , (transparents)
- Introduction technique à XSLT - PDF file , (transparents)
- Introduction à XML Schema (XSD) - PDF File
- Exemples de XSD
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
- Autres
- XSLT (en, liens)
- XML (en, mini-tutoriel + liens)
- XSLT Tutorial (en, mini-tutoriel)
- Encodage de caractères
- Character encoding (en, liens encodage)