Académique Documents
Professionnel Documents
Culture Documents
UFR de Sciences
Travail d’étude
Licence Informatique
Année 2002 / 2003
1 Introduction à XML 4
1.1 Les balises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 la DTD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Les Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Le XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Le XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Conclusion 30
2
Introduction
SGML[1], prédécesseur de XML et HTML, fut adopté comme standard ISO[2] en 1986 et a
été la première tentative systématique de créer des documents électroniques, c’est-à-dire des docu-
ments papier sous forme électronique, la principale idée étant de séparer le contenu logique d’un
document de sa forme matérielle. SGML a été une percée, mais il était si complexe que sa manipu-
lation était réservée aux spécialistes. Le développement de la documentation en ligne, interactive,
presque parallèlement, a été la première forme de documentation à être purement électronique, et
avec elle est arrivée la popularisation des liens hypertextes. Mais cette forme de documentation
restait une aide, accessoire à la documentation papier.
XML[3] est un langage de mise en forme de documents grâce à des balises développé par le
W3C[4] dès 1996, essentiellement pour dépasser les limites du HTML. En effet, il arrive que les
pages ne soient pas identiques d’un navigateur Web un autre. HTML est un langage défini et figé1 .
XML, qui peut être considéré comme un métalangage2 , permet de définir ses propres balises afin
de décrire la présentation d’un document, ce qui introduit de nouvelles opportunités en matière
de programmation Web. La force de XML réside dans sa capacité à pouvoir décrire n’importe
quel domaine de données grâce à son extensibilité. XML sépare le contenu d’un document de sa
présentation ce qui permet par exemple d’afficher un même document sur des applications ou des
périphériques différents sans pour autant nécessiter de créer autant de versions du document que
de représentations nécessaires.
Le XML trouve diverses applications utiles dans un environnement Internet comme la mainte-
nance de gros sites Web, l’échange d’informations entre entreprises, le commerce électronique, les
livres électroniques pour les droits d’auteur et le copyright, simulation de base de données. XML
a aussi des applications au sein des entreprises comme la conception de solution personalisées,
les modèles de communication. Nous pouvons aussi envisager des formulaires officiels comme une
demande de permis de conduire qui serait traitée à par l’institution concernée et reliée á des infor-
mations pertinentes comme le service des casiers judiciaires ou encore le service des infractions du
code de la route.
Il est évident que le XML met en valeur la structure des documents. Nous allons poursuivre en
nous intéressant d’un peu plus près à quelques spécificités d’XML telles que la DTD et les Schema
qui sont des mécanismes décrivant la structure des documents, ou bien encore à XSLT qui permet
de convertir un document XML dans un autre format.
3
1
Introduction à XML
La syntaxe XML est simple. Elle comprend les mêmes caractéristiques que n’importe quel
langage à balises, a savoir des balises ouvrantes et fermantes, et des commentaires. Un document
XML peut être représenté comme une structure arborescente.
– l’entête :
– le corps qui peut se lire sous forme d’arbre et ne comprend qu’une racine, ici <carnet-adresses> :
<carnet-adresses>
<entree>
<nom>
<prenom>Antoine</prenom>
<nomf>Perroud</nomf>
</nom>
<adresse>
<rue>rue Trachel</rue>
<code-postal>06000</code-postal>
<localite>Nice</localite>
<pays>France</pays>
</adresse>
<tel>6046540604</tel>
<email>perrouda@echo.unice.fr</email>
</entree>
<entree>
<nom>
<prenom>Sylvain</prenom>
<nomf>Petrucci</nomf>
</nom>
</entree>
</carnet-adresses>
Ce code déclare deux entrées d’un carnet d’adresses. XML extrapole la définition d’un carnet
d’adresse de la structure déclarée. Il y a cependant deux moyens de rendre cette structure plus
rigide. Il s’agit de la DTD[5] et des Schema[6].
4
1.2 la DTD
La DTD est une grammaire définissant un document XML. Cette pratique, héritée de SGML à
la demande d’IBM, est de moins en moins utilisée car limitée, nous verrons plus tard pour quelles
raisons. Le document en question n’est pas obligé d’utiliser une DTD, mais en écrire une permet de
limiter le document à certaines balises. C’est en fait un mécanisme permettant de décrire chaque
objet (élément, attribut, etc.) pouvant apparaı̂tre dans le document.
Une adresse se compose d’une rue, d’un code postal, d’une localité et d’un pays. La syntaxe
DTD permet de définir simplement une telle adresse ainsi :
< !ELEMENT adresse (rue, code-postal, localite, pays)>
Un élément est une information que l’on désire utiliser et se déclare de la manière suivante, un
modèle étant une expression régulière :
< !ELEMENT Nom Modèle>
Il est possible d’ajouter des propriétés à un élément particulier en lui affectant un attribut, c’est
à dire une paire clé/valeur. Un attribut se déclare ainsi :
< !ATTLIST Elément Attribut Type>.
Il faut ensuite ajouter en entête du document XML la ligne suivante signifiant la DTD que l’on
souhaite utiliser :
< !DOCTYPE carnet-adresses SYSTEM "carnet-adresses.dtd">
Les DTD on cependant quelques limitations. Les DTD utilisent une syntaxe spécifique différente
de XML, contrairement aux Schemas. De plus, elles ne permettent pas de typer les contenus et
n’intègrent pas les espaces de noms. Enfin, on ne peut faire de modélisation partielle avec la DTD,
ce qui signifie que la DTD doit être exhaustive dans la définition du document XML.
Sur la figure 1.1, nous voyons la structure du document sous la forme d’un arbre. Il s’agit de
5
Fig. 1.1 – Schema du carnet d’adresses
la modélisation la plus simple d’un Schema. Les pointillés indiquent un élément optionnel. Nous
pouvons voir aussi que l’élément entree doit apparaı̂tre au moins une fois dans le document XML.
Un Schema étant écrit en XML, il en reprend donc la structure. Un Schema contient donc une
entête et un corps. Voici un exemple de définition d’un élément :
1.4 Le XSLT
Le langage de transformation XSL[7] permet de transformer la structure des éléments XML.
On appelle processeur le composant logiciel chargé de la transformation XSLT. XSL est défini avec
le formalisme XML, ce qui signifie qu’une feuille de style XSL est un document XML bien formé,
c’est à dire un document conforme à la syntaxe XML. XSL permet de modifier la structure d’un
document XML, ce qui permet de générer d’autres types de document (HTML, TEX, PostScript,
RTF ou XML). Le XSLT modifie l’arbre source du document XML en le transformant grâce à des
template rules contenues dans la feuille de style XSL afin de produire un arbre résultat.
Voici un exemple de feuille de style XSL qui se compose de deux parties, comme tout document
XML et qui définit les régles d’affichage en HTML d’un prénom contenu dans un carnet d’adresse :
– L’entête :
– Le corps qui est compris entre les balises <xsl :stylesheet ...> et </xsl :stylesheet>,
ces balises encapsulant des balises <xsl :template> définissant les template rules nécessaires
à la transformation :
6
<xsl :stylesheet version="1.0"
xmlns :xsl="http ://www.w3.org/1999/XSL/Transform"
xmlns :fo="http ://www.w3.org/1999/XSL/Format">
L’exemple transforme le fichier XML en un fichier HTML dont le titre sera exemple. A chaque
fois que l’on rencontrera dans le carnet d’adresse un élément de type prenom, on écrira ”Prenom :”
en gras suivi du prénom contenu dans le fichier XML. Il faut ajouter la ligne suivante en entête du
document XML pour lui dire quelle feuille de style utiliser :
< ?xml-stylesheet href="fichier.xsl" type="text/xsl" ?>
1.5 Le XPath
Le XPath[8] est un langage qui permet d’adresser et de désigner des noeuds de l’arbre consti-
tuant un document XML. Il est conçu pour être utilisé par XSLT et XPointer[9]. XPath utilise
une syntaxe différente de celle du XML. Dans cette syntaxe, / désigne la racine du document. Le
chemin sera relatif au noeud courant s’il ne commence pas par /. S’il commence par //, le chemin
concernera toutes les sous-parties du document. Le caractère * remplace un niveau de hiérarchie.
<carnet-adresses>
<entree>
<nom>
<prenom>Antoine</prenom>
</nom>
...
</entree>
</carnet-adresses>
7
2
Les différents IDE XML
Regardons maintenant dans le détail les fonctionnalités utiles qu’un IDE XML doit posséder :
– Code source éditable : un développeur XML peut avoir besoin d’accéder directement au code
source du document XML.
– Coloration syntaxique : c’est le fait de colorer les éléments de syntaxe XML. Cela rend l’édition
de code source considérablement plus claire, les erreurs étant plus faciles à repérer.
– Vue arborescente : cette vue est la représentation la plus claire d’un document XML et colle
parfaitement à sa structure. Une vue arborescente éditable permet de construire un document
d’une manière plus précise tout en conservant une vue d’ensemble du document.
– Vue navigateur : c’est l’affichage que l’on obtient en ouvrant un document XML dans un na-
vigateur. Cela permet de gagner du temps et de ne pas aller ouvrir son navigateur à chaque
fois que l’on souhaite vérifier une modification.
– Gestion du XSL : un IDE XML doit pouvoir permettre les transformations XSLT. Une feuille
de style XSL est compliquée à débugger et nécessite l’utilisation d’un débugger XSL.
– Gestion du XPath : cette fonctionnalité va en général de paire avec la gestion du XSL et per-
met de trouver rapidement une clé dans un document XML par l’intermédiaire de requêtes.
– Extraction de DTD / Schema : ces fonctionnalités permettent, comme leur nom l’indique,
d’extraire automatiquement une DTD ou un Schema d’un document XML. Cette DTD ou
ce Schema peuvent être réutilisés par d’autres documents XML.
– Validation de code : l’IDE vérifie que le document XML respecte sa DTD et son Schema.
– Autres fonctionnalités : certains IDE intègrent en plus un client FTP, permettent de convertir
un document d’un autre format en XML, peuvent se mettre à jour automatiquement, etc.
8
2.1 XML Cooktop
Version 2.5 beta gratuite
Plateforme : Windows
Editeur : XML Everywhere (xmlcooktop.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Gestion du XSL
– Gestion du Xpath
– Extraction de DTD
– Validation de code
– Mise jour automatique
– Liens vers les tutoriaux XML (DTD, Schemas, Xpath, ...)
Points faibles :
– Pas de vue arborescente
– Pas de vue navigateur
– Pas d’extraction de Schema
Interface :
9
2.2 EditML Pro
Version 3.0 commerciale
Plateforme : Windows
Editeur : Netbryx Technologies (www.netbryx.com)
Fonctionnalités :
– Vue arborescente du document éditable
– Vue navigateur
– Extraction de DTD
– Extraction de Schema
– Validation de code
– Charge automatiquement la DTD et une previsualisation post XSLT
– Importe et convertit un fichier excel et/ou texte en XML valide avec extraction DTD et
Schema
– FTP
Points faibles :
– Pas de vue du code source
– Pas de gestion du XSLT
– Pas de gestion du XPath
Interface :
10
2.3 eXeed
Version 0.9 gratuite
Plateforme : Windows
Editeur : Toru Marumoto (www.toru.marumoto.net)
Fonctionnalités :
– Code source éditable
– Vue arborescente
– Validation de code
Points faibles :
– Pas de coloration syntaxique
– Vue arborescente non éditable
– Pas de vue navigateur
– Pas de gestion du XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
11
2.4 Peter’s XML Editor
Version 2.0 gratuit
Plateforme : Windows
Editeur : Peter Reynolds (www.iol.ie/˜pxe
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente
– Vue navigateur
– Validation de code
– Recherche de fichiers dans les disques locaux
Points faibles :
– Vue arborescente non éditable
– Pas de gestions du XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
12
2.5 XML Edit Pro
Version 2.0 gratuite
Plateforme : Windows
Editeur : www.daveswebsite.com
Fonctionnalités :
– Code source éditable
– Vue arborescente
– Vue navigateur
– Gestion du XSL
– Gestion du Xpath
– Validation de code
Points faibles :
– Pas de coloration syntaxique
– Vue arborescente non éditable
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
13
2.6 XML Origin
Version 1.11.0.58 commerciale
Plateforme : Windows
Editeur : TFI Technologies (www.xmlorigin.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente
– Extraction de DTD
– Validation de code
Points faibles :
– Vue arborescente non éditable
– Pas de vue navigateur
– Pas de gestion de XSLT
– Pas de gestion du XPath
– Pas d’extraction de Schema
Interface :
14
2.7 XML Content Express
Version 1.89 Shareware
Plateforme : Windows
Editeur : Synoft Group (xce.synoft.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente éditable
– Validation de code
Points faibles :
– Pas de vue navigateur
– Pas de gestion de XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
15
2.8 Bonfire Studio
Version 1.4 gratuite
Plateforme : Windows
Editeur : NZ Software (nzworks.com/bonfire)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente
– Vue navigateur
– Validation de code
– Gestion de projet
Points faibles :
– Vue arborescente non éditable
– Pas de gestion de XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
16
2.9 XML Notepad
Version 1.5 beta abandonware
Plateforme : Windows
Editeur : Microsoft (www.msdn.microsoft.com)
Fonctionnalités :
– Vue arborescente éditable
– Validation de code
Points faibles :
– Code source non éditable
– Code affiché en noir
– Pas de vue navigateur
– Pas de gestion de XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
– Abandonware
Interface :
17
2.10 Sydock Document Processor Standard Edition
Version 1.1.0.1 commerciale
Plateforme : Windows
Editeur : Sydock Software (www.sydock.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Validation de code
– Importe et transforme des fichiers texte, word et base de donne en
– Assistant de creation de feuille de style et de schema
Points faibles :
– Pas de vue arborescente
– Pas de vue navigateur
– Pas de gestion de XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
18
2.11 XMLSpy
Version 5.4 commerciale
Plateforme : Windows
Editeur : Altova (www.altova.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente éditable
– Vue navigateur
– Extraction de DTD
– Extraction de Schema
– Gestion du XSLT
– Gestion du XPath
– Validation de code
Points faibles :
Interface :
19
2.12 XMLWriter
Version 2.13 commerciale
Plateforme : Windows
Editeur : Wattle Software (xmlwriter.net)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente
– Gestion du XSLT
– Validation de code
– Gestion de projet
– Liste toutes les balises (XML, DTD, Schema, XSLT)
Points faibles :
– Vue arborescente non éditable
– Pas de vue navigateur
– Pas de gestion du XPath
– Pas d’extraction de DTD
Interface :
20
2.13 Collaborative Markup Editor
Version 1.1.3 commerciale
Plateforme : Windows/Unix/Mac OS
Editeur : Topologi P/L (www.topologi.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Gestion du XSLT
– Validation de code
– FTP
– Importe les fichiers RTF, les URL et les bases de donnée JDBC et ODBC
– Exporte en SGML
Points faibles :
– Pas de vue arborescente
– Pas de vue navigateur
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
21
2.14 XMLShell
Version 1.1 commerciale
Plateforme : Windows
Editeur : www.softgauge.com
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente éditable
– Vue navigateur
– Validation de code
– Choix du parser XML
Points faibles :
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
22
2.15 Xerlin
Version 1.3 beta 1 open source
Plateforme : Java
Editeur : The Xerlin Project (www.xerlin.org)
Fonctionnalités :
– Vue arborescente éditable
– Validation de code
– FTP
Points faibles :
– Pas de vue du code source
– Pas de vue navigateur
– Pas de gestion du XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
23
2.16 Morphon
Version 3.0 commerciale
Plateforme : Java
Editeur : Morphon Technologies (www.morphon.com)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Vue arborescente éditable
– Gestion du XPath
– Validation de code
– Correcteur orthographique
– Montre les noeuds valides
Points faibles :
– Pas de vue navigateur
– Pas de gestion du XSLT
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
24
2.17 eXchaNGeR
Version 1.0 open source
Plateforme : Java
Editeur : xngr.org
Fonctionnalités :
– Code source éditable
– Vue navigateur
– Gestion du XPath
– Validation de code
Points faibles :
– Pas de coloration syntaxique
– Pas de vue arborescente
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
25
2.18 XMLware
Version 4.1 open source
Plateforme : Java
Editeur : Thierry Machicoane (www.chez.com/mustcorp/xmlware)
Fonctionnalités :
– Code source éditable
– Vue arborescente éditable
– Validation de code
Points faibles :
– Pas de coloration syntaxique
– Pas de vue navigateur
– Pas de gestion du XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
26
2.19 PSGML pour Emacs
Version alpha 1.3.1
Plateforme : GNU Emacs
Editeur : Lennard Staflin (www.lysator.liu.se/projects/about psgml.html)
Fonctionnalités :
– Code source éditable
– Coloration syntaxique
– Validation de code
– Masquage des balises
– Génération de balises
Points faibles :
– Pas de vue arborescente
– Pas de vue navigateur
– Pas de gestion du XSLT
– Pas de gestion du XPath
– Pas d’extraction de DTD
– Pas d’extraction de Schema
Interface :
27
Nom Version Licence Plateforme Développeur Site
XML Cooktop 2.5 beta Gratuit Windows XML Everywhere xmlcooktop.com
EditML Pro 3.0 Commercial Windows Netbryx Technologies www.netbryx.com
eXeed 0.9 Gratuit Windows Toru Marumoto www.toru.marumoto.net
Peter’s XML Editor 2.0 Gratuit Windows Peter Reynolds www.iol.ie/˜pxe
XML Edit Pro 2.0 Gratuit Windows www.daveswebsite.com
XML Origin 1.11.0.58 Commercial Windows TFI Technologies www.xmlorigin.com
XML Content Express 1.86 Shareware Windows Synoft Group xce.synoft.com
Bonfire Studio 1.4 Gratuit Windows NZ Software nzworks.com/bonfire
XML Notepad 1.5 beta Abandonware Windows Microsoft msdn.microsoft.com
Sydock Document Processor
Standard Edition 1.1.0.1 Commercial Windows Sydock Software www.sydock.com
28
XMLSpy 5.4 Commercial Windows Altova www.altova.com
XML Writer 2.13 Commercial Windows Wattle Software xmlwriter.net
Collaborative
Markup Editor 1.1.3 Commercial Windows/Linux/Mac Topologi P/L www.topologi.com
XMLShell 1.1 Commercial Windows www.softgauge.com
Xerlin 1.3 beta 1 Libre Java The Xerlin Project www.xerlin.org
Morphon 3.0 Commercial Java Morphon Technologies www.morphon.com
eXchaNGeR 1.0 Libre Java xngr.org
XMLware 4.1 Libre Java Thierry Machicoane www.chez.com/mustcorp/xmlware
PSGML 1.3.1 alpha Libre GNU Emacs Lennard Staflin www.lysator.liu.se/projects/about psgml.html
29
! !
XMLSpy ! ! ! ! ! ! ! ! !
XMLWriter ! ! ! ! !
Collaborative
Markup Editor ! ! !
XMLShell ! ! ! ! ! !
Xerlin ! !
Morphon ! ! ! ! !
eXchaNGeR ! ! !
XMLware ! ! !
PSGML ! !
Tab. 2.2 – Gestion du XML
3
Conclusion
Il ressort de nos tests que XMLSpy est le plus performant des IDE XML que nous avons testé.
Malgré tout, il n’est pas parfait puisque réservé aux utilisateurs de Windows ayant les moyens de
s’offrir une licence avoisinant les 500 B
C.
Nous pouvons aussi remarquer que les logiciels gratuits en Java sont bien représentés. Leur
intérêt réside principalement dans le fait qu’ils tournent sur tous les OS et sont généralement libres.
Les IDE XML sont issus d’une volonté de simplifier la standardisation des différents formats
de documents. Le framework est une application pratique de ce principe puisqu’il s’agit de pou-
voir programmer sous un environnement quelconque tout en conservant une compatibilité entre
les différents modules, ces modules pouvant être programmés dans plusieurs langages différents.
C’est ce que Microsoft commence à faire avec son environnement .net, par exemple. Le XML peut
intervenir directement dans ce système en étant potentiellement le noyau rendant compatibles ces
diffénts langages.
30
Bibliographie
31