<texit info> author=E. Bruno title=XML TP1 </texit>
Les outils suivant sont utilisables pour l’édition :
/usr/local/Oxygen
Dans le cadre de ces TP, nous utiliserons
Le fichier books.dtd.zip décrit un modèle de document qui permet de représenter une collection de livres. Le fichier books-errors.xml est un document XML exemple qui est une instance de la dtd précédente, il contient des erreurs. Deux types d’erreurs peuvent apparaître. Des erreurs de non-conformité avec le langage XML (balises non fermés, …), on dira alors que le document n’est pas bien formé ; et des erreurs de non conformité par rapport à une DTD, on dira alors que le document n’est pas valide par rapport à cette DTD.
Pour vérifier la conformité d’un document à la norme XML, on utilise un editeur XML (eclipse pour nous) ou un parser (Xerces en ligne de commande) :
java -cp xerces-2_11_0/xercesImpl.jar:xerces-2_11_0/xercesSamples.jar:xerces-2_11_0/xml-apis.jar dom.Counter -v books-errors.xml
En fait, il s’agit d’un application java qui analyse le document en comptant les éléments mais au et à mesure elle vérifie le document.
Corriger les erreurs syntaxiques du document books-errors.xml
pour le rendre bien formé.
Pour valider un documents XML par rapport à une DTD, on ajoute un DOCTYPE dans le document pour le lier à cette
DTD (enlever le commentaire autour de celui qui est présent et modifier le chemin). Le parser l’utilisera pour vérifier la validité du document. Rendre le document books-errors.xml
valide par rapport à la dtd books.dtd
.
java -cp xerces-2_11_0/xercesImpl.jar:xerces-2_11_0/xercesSamples.jar:xerces-2_11_0/xml-apis.jar dom.Counter -v books.xml
En utilisant eclipse, exercez vous à ajouter des élements, des attributs et du texte en insérant deux ou trois nouveau livre dans le document XML.
Vous mettrez éventuellement la DTD à jour, et vous validerez le document modifié.
Modifier le document précédent en utilisant les espaces de noms. Vous structurerez de façon plus fine les auteurs pour leur ajouter un title
(Dr., Pr., Ms., Mrs., Miss). Pour distinguer les éléments ayant le même nom, vous définirez deux espaces de noms, un pour les livres et un pour les auteurs.
Proposer une structuration XML pour les classes et interfaces de la javadoc http://java.sun.com/j2se/1.5.0/docs/api/index.html .Vous détaillerez un exemple avec les classes String
et StringBuilder
. Attention, le site Web est orienté présentation mais votre document XML devra décrire la structure logique. Vous utiliserez en particulier la possibilité de décrire des listes et des tableaux et les références internes.
A partir des balisages que vous venez de définir, proposer une DTD javadoc.dtd
et valider les deux documents.
La DTD docbook (ainsi qu’une version simplifié) sont présentés sur les sites http://www.docbook.org et http://www.oasis-open.org/docbook/. Un exemple simple de document se trouve dans le fichier sample-docbook.xml.
La documentation complète de docbook écrite en XML se trouve ici : http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/defguide/en/, une version HTML (générée automatiquement) est disponible ici : http://www.docbook.org/tdg/en/html/docbook.html.
La DTD est ici http://www.oasis-open.org/docbook/xml/
les feuilles de style là : http://sourceforge.net/projects/docbook/ (Plus d’information http://sagehill.net/docbookxsl/index.html).
Écrire le manuel d’utilisation d’un projet que vous avez réalisé en utilisant la DTD docbook.
Un document XML peut être transformé en un autre document XML (ou en un fichier texte) en utilisant des feuilles de style XSLT (celles-ci seront étudiées ultérieurement en cours, nous allons ici simplement les utiliser).
Trois feuilles de style sont proposées pour transformer un document XML valide pour la DTD docbook en
Il faut utiliser un processeur XSLT (Saxon par exemple). La commande pour appliquer une feuille de style de xhtml est :
java -cp saxon9he.jar net.sf.saxon.Transform -strip:all -s:sample-docbook.xml -xsl:docbook-xsl-1.77.1/xhtml/docbook.xsl -o:sample-document.xhtml
Transformer le document de l’exercice précédent en un document HTML, puis en un document XHTML/XHTML5.
La troisième feuille de style produit un document XML dans un format appelé FO (Formating Object) qui décrit un document formaté. Ce document peut ensuite être converti vers un format propriétaire (dvi, ps, pdf, . . . ).
Pour réaliser cette transformation, divers outils sont disponibles par exemple FOP (http://xml.apache.org/fop/) .
java -cp saxon9he.jar net.sf.saxon.Transform -strip:all -s:sample-docbook.xml -xsl:docbook-xsl-1.77.1/fo/docbook.xsl -o:sample-document-fo.xml fop -fo sample-document-fo.xml -pdf sample-document-fo.pdf