TP : Utilisation d`XML et des DTD
Transcription
TP : Utilisation d`XML et des DTD
TP : Utilisation d’XML et des DTD 1 Préliminaires 1.1 Tester un exemple • Commencez par préparer le document exemple.xml 1 . Vérifier la syntaxe de ce document avec la commande xmllint --noout nom-de-votre-fichier.xml Utilisez la commande xmllint pour produire une nouvelle version basée sur un autre encodage. Utilisez de nouveau cette commande pour produire une version bien présentée. • Préparez la DTD exemple.dtd 2 et ajoutez la ligne ci-dessous à votre fichier XML (après le préambule) : <!DOCTYPE stock SYSTEM "exemple.dtd"> vérifiez la validité du document XML avec la commande xmllint --valid --noout nom-de-votre-fichier.xml • Utilisez la feuille de style exemple.xsl 3 pour transformer votre document XML en un document XHTML. La commande xsltproc doit être utilisée pour appliquer un feuille de style XSL à un document XML. xsltproc -o resultat.html feuille-de-style.xsl nom-de-votre-fichier.xml • Améliorez cette feuille de style pour qu’elle produise un fichier XHTML valide avec plus de couleurs et/ou de mise en forme. En d’autres termes, faites en sorte que la commande tidy n’ai rien à reprocher au fichier resultat.html . • Afin de bien comprendre la structure de l’arbre XML, appliquez la feuille de style arbre.xsl visualiser les noeuds de l’arbre. 1.2 4 pour Utliser un éditeur validant Pour continuer d’éditer et de valider vos fichiers XML, vous pouvez utiliser la version JEE d’Eclipse (commande eclipse-ee-neon ) qui intègre un éditeur XML validant. Pour ce faire, • créez un projet simple (sans type), • importez vos fichiers dans ce projet, • ouvrez le fichier XML et jouez entre les onglets Design et Source, • dans l’onglet Source, testez les propositions de l’éditeur avec les touches Ctrl-espace , • profitez de cette étape pour ajouter plusieurs produits à votre document XML ainsi que des commentaires ou des instructions de traitement. 1. 2. 3. 4. exemples/ exemples/ exemples/ exemples/ 1 1.3 Modifier le document XML • Ajoutez un commentaire et vérifiez sa présence dans l’arbre (avec arbre.xsl ). • Ajoutez une instruction de traitement 5 et vérifiez sa présence. • Ajoutez la définition d’un espace de noms 6 mais sans l’utiliser. Vérifiez sa présence dans l’arbre. • Utilisez une section littérale 7 pour coder un noeud de texte. Vérifiez l’arbre XML. 1.4 Améliorer la DTD • Modifiez la DTD pour faire en sorte que les produits aient une quantité en stock. Complétez la document XML pour qu’il soit valide vis à vis de la nouvelle DTD. • Ajoutez à votre DTD la définition d’une entité 8 et utilisez la dans le fichier XML. Définissez une autre entité mais en utilisant la partie interne 9 de la clause <!DOCTYPE ...> . • Définissez de nouveaux produits dans un autre fichier XML et importez les dans votre fichier principal (mécanisme des entités externes 10 ). Vérifiez la validité des deux fichiers. • Ajoutez à votre DTD une entité paramètre interne 11 qui définie le contenu d’un produit et utilisez cette entité dans la définition de l’élément produit. • Ajoutez à vos produits un attribut facultatif pour coder sa nature 12 (produit final ou intermédiaire). Faites plusieurs essais et testez la validité de votre fichier XML. Utilisez cette information dans votre feuille XSL. • Ajoutez une valeur par défaut à cet attribut et vérifier sa prise en compte dans l’arbre XML. • Testez les clauses INCLUDE/IGNORE 13 de la DTD pour ignorer ou utiliser l’attribut nature . • Utilisez les sections conditionnelles 14 de la DTD pour permettre au rédacteur XML (en utilisant la partie interne) d’utiliser, ou d’ignorer la défintion de l’attribut nature . • Utilisez la norme XInclude 15 pour inclure un fichier XML dans un autre (à la place de l’entité externe). Vous pouvez également utiliser l’éditeur Oxygen 16 (licence gratuite pendant 30 jours). Ce dernier est disponible sur plusieurs plateforme ainsi que sous la forme d’un plugin Eclipse. 1.5 Identifiants et références • Modifiez la DTD pour ajouter un attribut obligatoire qui identifie 17 chaque produit. Validez la nouvelle version de votre fichier XML. • Ajoutez ensuite à vos produits une structure permettant d’indiquer que le produit X est voisin du produit Y. Pour ce faire, vous devez introduire un élément qui pourrait ressembler à 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 02-xml.html#pi 02-xml.html#ns 02-xml.html#cdata 03-dtd.html#entite 03-dtd.html#interne-externe 03-dtd.html#entite-externe 03-dtd.html#entite-parametre 03-dtd.html#liste-identificateurs 03-dtd.html#include-ignore 03-dtd.html#section-conditionnelle https://en.wikipedia.org/wiki/XInclude http://www.oxygenxml.com/ 03-dtd.html#identifiant 2 <produit> ... <voisin ref="XYZ" /> </produit> • Introduisez dans votre fichier plusieurs relations de voisinage et vérifiez la validité de la nouvelle version. • Ajoutez un nouvel élément voisins doté d’un attribut typé IDREFS . Préparez quelques exemples et validez votre nouveau document. • À ne pas faire. Modifiez la feuille de style XSL pour qu’elle affiche (dans le fichier résultat) les produits voisins (utilisez la fonction XPATH id ). 2 Utilisation de la DTD DocBook • Récupérez sur le site http://www.docbook.org la DTD DocBook (disponible également en local 18 ). Créez un document valide pour cette DTD en utilisant l’éditeur XML Buddy de eclipse. • Récupérez sur le site http://www.badgers-in-foil.co.uk/projects/docbook-css/ une CSS pour DocBook (disponible également en local 19 ). Utilisez cette feuille de style en insérant la ligne suivante dans votre document XML : <?xml-stylesheet href="chemin/vers/driver.css" media="screen" type="text/css" ?> • Essayez ensuite d’ouvrir le document XML avec le navigateur firefox ou chrome pour voir le résultat. Vous pouvez changer certains attributs de la feuille de style comme font-size (en points) color (#RRVVBB) background (#RRVVBB) • Vous pouvez également appliquer les feuilles de style XSL (récupérer le package docbook-xsl sur son site d’origine http://wiki.docbook.org/topic/DocBookXslStylesheets ou plus simplement en local 20 ) pour obtenir une version HTML, FO ou XHTML. 3 Si vous avez du temps... • Commencez à étudier les données présentes sur le site WEB du Master Informatique 21 . • Prévoyez un premier codage XML pour les UE du M1. 18. 19. 20. 21. ref:files ref:files ref:files http://masterinfo.univ-mrs.fr 3