II. XML, par où commencer ?
Avant de commencer à créer des
documents XML, des grammaires pour définir des types de documents DTD
(Définition de Type de Documents) ou des schémas (XML Schema), il faut posséder
tous les outils nécessaires à la création et à la visualisation de ces
documents.
Le contenu du document, que ce
soient les balises ou le contenu à afficher (l'information) est constitué de
texte ascii. Vous pouvez donc utiliser des éditeurs tels vi, emacs, le bloc
notes sous Windows ou SimpleText sur MacOs. Si vous décidez d'utiliser des
éditeurs plus complexes tels word ... pensez qu'il faut sauvegarder le document
au format texte. Vous pouvez aussi utiliser des éditeurs XML. Attention ils ne
vont pas vous créer votre document tout seul ni le xml ni la DTD éventuelle,
ils facilitent les choses en effectuant des contrôles, en proposant des
éléments tout fait (entête ...), en colorant les balises ... Certains sont
payants d'autres gratuits mais n'attendez pas de miracle, c'est vous qui allez
travailler.
Voici une liste non exhaustive d'éditeurs gratuits
disponibles :
Nom de l'éditeur |
Plate-forme |
Adresse internet |
XML Notepad |
Windows |
http://msdn.microsoft.com/ |
ElfData Xml Editor |
Mac |
http://www.elfdata.com/index.html |
Getox |
Linux |
http://idx-getox.idealx.org/ |
Cooktop |
windows |
http://xmlcooktop.com/ |
Xeena |
Unix, Mac, Windows |
http://alphaworks.ibm.com/tech/xeena |
Amaya |
Toutes |
http://www.w3.org/Amaya/ |
XmlSpy |
Windows (30 jours free) |
http://www.xmlspy.com |
Vous pouvez trouver sur le site de l'ATICA (http://www.atica.gouv.fr) une liste d'éditeurs gratuits et
un lien vers le site internet.
Vous trouverez des informations encore plus complètes sur le
site de xmlsoftware (http://www.xmlsoftware.com/).
N'oubliez pas que l'extension de vos fichiers xml est xml.
Vous pouvez aussi créer des documents XML via des programmes
(php, perl ...) mais aussi via d'autres documents xml en utilisant le langage
de transformation XSL (eXtensible Style Language) et líoutil rattaché XSLT (XSL
Transformation).
XML en tant que tel ne permet pas de
produire un document lisible. Rappelez vous que XML est un méta-langage. Vous
pourrez au mieux voir un arbre correspondant à l'organisation, la structure de
votre document mais en aucun cas son format sans transformation préalable dans
un langage lisible (RTF, PS, XHTML ...) et compréhensible par l'application qui
doit le publier.
Il existe deux types d'affichage :
|
Le premier est décrit précédemment sous forme d'arbre. |
C'est un affichage brut sans prise en compte du format.
Internet Explorer 5 et supérieur le permet, tout comme d'autres visualiseur
et/ou éditeur dont getox.
Par contre avec Mozilla et Netscape il reste de gros
problèmes. Souvent vous obtenez le contenu sur une seule ligne.
DEUGlicenceMaitrise
|
Le deuxième est l'affichage après transformation. |
Le plus courant est la transformation du document XML en un
document XHTML (eXtensible HyperText Markup Language) en vue d'une publication
sur le Web.
Il existe d'ailleurs une DTD (Définition du Type de
Document), une grammaire en quelque sorte utilisée à cette fin que l'on
retrouve dans les éditeurs comme Amaya, ElfData. Cette DTD englobe XHTML,
MathML (Mathematical Markup Language) et SVG (Scalable Vector Graphics). Le
document XML est traduit en XHTML en respectant la structure indiquée dans
cette DTD.
La méthode la plus courante pour produire des documents
publiables sur internet est l'utilisation des feuilles de styles qui permettent
au navigateur de comprendre le format du document XML et ainsi permet son
affichage. Deux formes sont alors utilisées :
|
Les CSS ou Cacading Style Sheets |
|||
|
http://www.w3.org/Style/CSS/ |
Elles sont déjà souvent utilisées pour formater des pages
HTML. Mais attention tous les navigateurs ne sont pas égaux face à ces CSS.
|
Le XSL (eXtensive Stylesheet Language) |
|||
|
http://www.w3.org/Style/XSL/ |
Le XSL est plus un langage de programmation qu'un langage
de description ou de formatage. En effet il gère des éléments comme les
boucles, les instructions ...
Il est plus complexe que les CSS ce qui est son principal
défaut. C'est aussi le W3C qui se charge de son développement.
Lorsque vous utiliserez ces feuilles de style, les
principaux navigateurs vont pouvoir effectuer un affichage formaté correct. A
noter sur le serveur du W3C le navigateur gratuit cité précédemment Amaya qui
intègre les CSS, le XHTML ...
|
XML oblige, à contrario de HTML,
díavoir une syntaxe parfaite. En HTML si vous ne fermez pas une balise où si
vous ne l'écrivez pas avec la même casse (minuscule, majuscule ...) pas
d'importance et peu d'incidence sur son formatage et sa visualisation.
En XML, l'analyseur syntaxique ou parseur ne vous fait pas
ce cadeau. Votre document ne sera pas validé et donc pas affiché.
Je supprime la fin de la balise
UFR du document visualisé tout à l'heure sous forme d'arbre et je tente de le
lire avec getox qui va, avant tout, tester sa validité avec le parseur
´ xml4c ª (http://www.alphaworks.ibm.com).
#
/usr/local/xml4c4_0_1-linux/bin/PParse propech.xml
Fatal Error at file
/home/web/XML/propech.xml, line 2, char 214
Message: Expected end of tag 'UFR'
A ce stade, les éditeurs de XML peuvent se révéler très
utiles car ils permettent de détecter ces erreurs. Mais attention, ces
analyseurs ne détectent que les erreurs simples dues à un problème dans la
structure de votre document ou dans la syntaxe. Si vous désirez des outils
qui travaillent à un niveau supérieur, vous devez vous tourner vers les
validateurs. Ces derniers prennent en compte les DTD, les modèles définis
pour créer votre document, les règles à suivre, en quelque sorte la grammaire
de votre langage. Vous pouvez utiliser des outils comme Xerces développé par
Apache (http://xml.apache.org/), mais aussi des outils en ligne
sur internet.
Il vous suffit de fournir l'adresse internet de votre
document XML ou de télécharger ce dernier, et de définir le type de contrôle
désiré. Ces outils proposent
même l'affichage de l'arborescence de votre document (celui du W3C) voir
un mini éditeur permettant de valider votre document en ligne (RUWF). Pour
les utiliser il faut évidemment que vos documents, y compris la DTD, soient
accessibles via internet et une URL (sauf si comme le validateur du W3C vous
pouvez télécharger votre document (Upload)).
A noter que le W3C propose aussi un validateur de CSS (http://jigsaw.w3.org/css-validator/).
Logo |
Adresse Web |
Type díoutils |
|
http://validator.w3.org/ |
Validateur/Parseur |
|
http://www.hcrc.ed.ac.uk/~richard/xml-check.html |
Validateur/Parseur |
|
http://www.xml.com/pub/a/tools/ruwf/check.html |
Parseur |
|
http://www.stg.brown.edu/service/xmlvalid |
Validateur/Parseur |
|
http://www.w3.org/2000/06/webdata/xsv |
Validateur
par rapport à un schéma |
Prenons comme exemple le plus
complet celui du W3C en testant toujours le fichier xml dont l'arborescence
est décrite plus haut.
Le site http://validator.w3.org propose l'interface suivante :
Soit vous utilisez le lien
´ upload files ª si vos fichiers (xml et dtd) ne sont pas
disponibles sur internet ou alors vous entrez directement l'adresse du
document xml dans la zone ´ Address: ª.
Dans le cas où le document ne
comporterait pas d'erreurs, les éléments suivants seraient affichés par ce
site :
Dans le cas où une erreur serait
détectée dans le document, le validateur tenterait de la corriger pour
afficher un arbre correct. De plus, il indiquerait l'erreur trouvée :
La signification de
´ document well-formed ª ou ´ document bien formé ª sera
abordée dans le chapitre III (les bases díun document XML).
Comme indiqué précédemment, XML en
tant que tel ne produit pas de document publiable directement. Il est
nécessaire de transformer le document au format xml (méta-langage) en un
format publiable, lisible.
Pour cela des outils sont à votre disposition et notamment
un, lui-même dans un langage proche de
XML : XSLT (eXtensible Style Language for Translation).
Le langage utilisé est XSL ( eXtensible Style Language).
Le moteur de transformation qui gère ce langage va suivre
les instructions indiquées dans le fichier xsl pour créer un nouveau
document, tiré du document au format xml, dans le langage désiré (HTML,
XHTML, pdf, ps ...).
Par exemple, le logiciel Xalan dévéloppé par le W3C permet
de transformer un document XML en un document HTML.
|
http://xml.apache.org/xalan-c (Version C++) Documentation : http://xml.apache.org/xalan-c/getstarted.html Nous líutiliserons à la fin de ce document. |
|
http://xml.apache.org/xalan-j (Version Java) Documentation : |
Saxon |
Líun des FreeWare souvent utilisé pour effectuer des transformations
est saxon. http://users.iclway.co.uk/mhkay/saxon/ |
Ces logiciels sont utilisable sur toutes les
plates-formes.
Si vous avez créé, un document xml
: facture.xml ainsi quíun document xsl permettant de le transformer en html,
vous pouvez tapez la ligne de commande suivante si vous utilisez Xalan :
XalanTransform
facture.xml facture.xsl facture.html
Ou
Xalan ño facture.html
facture.xml facture.xsl
Le fichier facture.html sera alors créé suivant les
instructions que vous avez indiquées dans le fichier facture.xsl à partir du fichier facture.xml. Ceci, évidemment, si votre
document xml et xsl, ainsi que líéventuelle DTD associée, sont bien formés.
Vous pouvez aussi créer à partir d'un même document xml un
document sous un autre format ce qui est impossible si vous l'écrivez
directement en HTML.
Nous reverrons la partie transformation dans les chapitres
suivants.
Le plus difficile níest pas
díutiliser les outils cités ci-dessus, cíest uniquement de la technique et en
lisant la documentation en référence avec ces outils, il est assez simple de
les maîtriser.
Par contre là où se situe la difficulté principale est la
construction de votre document et sa mise en place.
Il faut pour partir sur de bonnes bases préciser que la
visualisation díun document XML se fait sous forme díarbre. Les núuds ou
branches sont les éléments et les feuilles sont les contenus. Ceci est
extrêmement important notamment pour bien comprendre et appréhender la partie
concernant la transformation des documents XML.
Avant de vous lancer tête baissée dans la création de
votre document XML, il faut que vous vous posiez la question de son utilité,
de son utilisation et de sa construction.
Le plus simple est de prendre un crayon et un papier et de
partir de la racine de votre document et de descendre dans ce document en y
insérant les différents éléments, les différents contenus possibles ainsi que
bien sûr les liens quíil y a entre ces entités.
La représentation se fait comme un arbre généalogique. Il
faut bien mettre en évidence les différents niveaux hiérarchiques de vos
documents.
Prenez un peu de temps pour réaliser cette phase díétude,
vous verrez ensuite que votre travail en sera díautant facilité.