Vous êtes sur la page 1sur 4

TP Structuration des documents XML

En xmllink
Installation sous le système d’exploitation Windows :

https://www.zlatkovic.com/pub/libxml/

irst check what you need to download. There are several packages available and some of them
depend on the others. The packages available on this site are:

• libxml2, the XML parser and processor.


• libxslt, the XSL and EXSL Transformations processor.
• xmlsec, the XMLSec and XMLDSig processor.
• xsldbg, the XSL Transformations debugger.
• openssl, the general crypto toolkit.
• iconv, the character encoding toolkit.
• zlib, the compression toolkit.

How these packages depend on each other is shown in the following figure:

Figure: libxml package dependencies

Lors de ce TP et des suivants, nous serons amenés à utiliser xmllint qui est un petit
Utilitaire en ligne de commande pour valider et manipuler des fichiers xml.

Tester qu'un document est bien formé


xmllint −−noout fichier.xml. /*--noout permet ne pas
afficher l’arbre xml */ Exemple soit le document xml doc.xml
suivant:

<un>
essai
</deux>
Afin de vérifier si le document est bien formé en exécute la
commande en ligne suivant :
xmllint −−noout doc.xml
Le résultat après exécution est le suivant :
dmf.xml:3: error: Opening and ending tag mismatch: un and deux
</deux>

1
Exercice 1 Correction de documents XML

Récupérez les fichiers exemple1.xml, exemple2.xml, exemple3.xml, exemple4.xml et


exemple5.xml ces fichiers ne sont pas bien formés, donc ouvrez-les avec un ́éditeur de texte et
non un navigateur web.
Corrigez ces documents afin qu’ils soient bien formés. Pour tester qu’un document est bien
formé.
Exercice 2 - Création d’un document XML :
Fichiers: - biblio.bib - inproc.xml
On donne ci-dessous l'extrait d'un fichier BiBTeX, un système permettant de répertorier des
références bibliographiques.

@InProceedings{DalzilioS:learnbs,
author = "Dal Zilio, Silvano
and Bernard, Thierry M.",
title = "Learning Binary Shapes as Compression and its
Cellular Implementation",
booktitle = "ACCV '95 -- 2nd Asian Conference on Computer
Vision",
year = 1995,
volume = 2,
pages = "616--620",
month = dec,
url = "http://www.cmi.univ-mrs.fr/~dalzilio/Papers/accv95.ps",
abstract = "We present a methodology to learn how to
recognize binary shapes, based on the principle that
recognition may be understood as a process of
information compression. Our approach, directed
towards adaptive target tracking applications, is
intended to be well suited to fine-grained parallel
architectures, such as cellular automata machines
that can be integrated in artificial retinas. This
methodology, fruitfully explained within the frame
of mathematical morphology, is then particularized
in the perspective of its actual implementation."

Cette entrée correspond à un article paru dans une conférence. Une traduction possible de ces
données sous la forme d'un fichier XML se trouve dans le fichier inproc.xml. Traduisez les
entrées bibliographiques de l'article et du livre se trouvant dans le fichier biblio.bib.

Exercice 3 :
On souhaite écrire un livre en utilisant le formalisme XML. Le livre est structuré en sections,
en chapitres (au moins 2 par section) et en paragraphes (au moins 2 par chapitre). Le livre doit
contenir la liste des auteurs (avec nom et prénom).
Le livre ainsi que chaque section et chaque chapitre doivent posséder un titre. Chaque
paragraphe doit contenir du texte.
Proposez un exemple de livre formaté comme un document XML respectant les contraintes
susmentionnées avec 3 sections. Vérifier la validité de votre document via la commande
xmllint.

Exercice 4 Validation d’un document XML avec une DTD:

2
Vérifiez la validité des 5 fichiers XML, donnés plus bas, relativement à la DTD pingpong.dtd
ci-dessous. Si un fichier est invalide, corrigez-le pour le rendre valide, en Minimisant le
nombre de corrections. Vérifiez que votre fichier est bien formé et valide en utilisant
la commande xmllint −−noout –dtdvalid nomfichier.dtd
nomfichier.xml.
<!ELEMENT racine (debut? , suite+)>
<!ELEMENT debut (ping? , pong*)>
<!ELEMENT suite (ping , pong)>
<!ELEMENT ping (#PCDATA)>
<!ELEMENT pong (#PCDATA)>
pp1.xml :
<racine>
<debut>
<ping/><pong/>
</debut>
<suite>
<ping/><pong/>
</suite>
<suite>
<ping/><pong/>
</suite>
</racine>
pp2.xml :
<racine>
<debut/>
<suite>
<ping/><pong/>
</suite>
</racine>
pp3.xml :
<racine>
<debut>
<ping/><ping/>
<pong/><pong/>
</debut>
<suite>
<ping/><pong/>
</suite>
</racine>

pp4.xml :
<racine>
<suite>
<pong/><pong/>
</suite>
<suite>

3
<ping/><pong/>
</suite>
</racine>
pp5.xml :
<racine>
<debut/>
<suite/>
</racine>

Exercice 5: Création de DTD


1• Ecrivez une DTD pour le fichier de bibliographie que vous avez écrit dans l'exercice 2.
2• Fichiers: - exam.xml
Écrivez un fichier exam.dtd contenant une DTD pour des documents XML de type examen.
Un examen contient un code de cours, un titre et une date qui contient uniquement le mois et
l'année. Ces éléments sont suivis par une liste de questions. Un examen a entre 5 et 6 questions
et chaque question a une ou plusieurs parties. Une partie se découpe en textes mélangés avec
d'autres parties. Le code est uniquement alphanumérique, sans espace, la valeur de mois doit
être une chaîne de caractère valide (idée: utilisez des énumérations). Donnez une instance de
document valide par rapport à votre DTD et deux exemples invalides en expliquant pourquoi.

Vous aimerez peut-être aussi