STIC:STIC I - exercice 6 (Nestor-Pixel)
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)