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.

 

II.1 L'éditeur

 

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).

 

 

II.2 La visualisation

 

 

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 ...

 

http://www.w3.org/Amaya/

 

 

II.3 Le parseur

 

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é.

 

Exemple

 

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

 

Exemple

 

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).

 

 

II.4 La transformation du 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 :

http://xml.apache.org/xalan-j/getstarted.html

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.

 

Exemple

 

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.

 

 

II.5 Réflexion autour du document xml

 

         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é.