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