Valid XHTML     Valid CSS2    

Pluripass L2 : XML

                     gilles.hunault "at" univ-angers.fr

 

Attention : comme pour la page bases de données il s'agit d'un cours universitaire classique, pas d'une matière à concours. Il n'y a pas de PDF magique associé à ce cours qui contiendrait «toutes les solutions». Vous avez donc plus à réfléchir qu'à mémoriser car c'est un savoir-faire que vous devez acquérir ici, et non pas seulement des connaissances pour singesses et singes savants.

non su   

non su

Table des matières cliquable

  1. Structuration, qualité et transmission d'informations

  2. Le métalangage XML

  3. Les grammaires

  4. Les transformations

  5. Autres formats pour documents structurés

  6. Exemples concrets

  7. Lectures conseillées

  8. Exercices de réflexion et d'entrainement

Le document de base de référence pour ce cours est notre tuteur XML.

Il y a en principe 6 cours de 1 h 20 et 3 TP de 1 h 20 aussi. Il faut utiliser  CELCAT Informatique  et Il faut utiliser  CELCAT Mathématiques  pour en vérifier les dates et heures.

 

1. Structuration, qualité et transmission d'informations

Donnée, information et connaissance ne sont pas des termes équivalents, même si savoir utiliser Google peut faire croire le contraire. Un «bon» transfert de «bonnes» informations suppose des informations structurées, vérifiées, controlées...

Il existe plusieurs façons de structurer des informations avant de les sauvegarder dans un fichier-texte. La structure d'arbre au sens informatique du terme, avec la racine de l'arbre en haut (!), est sans doute l'une des plus générales et la plus adaptée au Web, même si la structure de tableau avec des lignes et des colonnes est l'une des plus répandues, notamment parce qu'elle englobe les tables des bases de données.

Pour distinguer les caractères de structure des caractères propres à l'information, on utilise souvent des marqueurs. Ce peut être par exemple < et > ou { et } ou encore [ et ] car il faut dans la plupart des systèmes indiquer le début de la structure et sa fin.

On donne en général des noms aux structures et aux sous-structures et pour vérifier si un document est correct on fournit ce qu'on nomme la grammaire du document, ce qui se résume souvent à indiquer le nom des éléments et comment on les groupe, regroupe ou comment on les emboite. Une grammaire de documents (ou "type" de document) peut éventuellement contenir des informations de cardinalité (tant de sous-structures en tout, ou au moins une sous-structure...) et de typage (nombre entier, chaine de caractères...).

Nous présenterons ici principalement la structuration via XML mais d'autres formats sont possibles, dont Yaml et Json.

XML fournit deux types principaux de grammaires nommées DTD et XSD et dispose avec les transformations XSL de nombreuses possibilités pour transformer des fichiers XML en d'autres fichiers XML ou en fichiers textes, en fichiers HTML ou même PDF...

               non su                non su

Pour aller plus loin consulter notre tuteur XML et l'introduction à XML de Fabien TORRE.

2. Le métalangage XML

XML utilise principalement deux marqueurs qui sont respectivement < et >. Ces marqueurs permettent de définir des balises ou tags qui délimitent des éléments. Un document XML est donc un fichier texte qui contient des informations regroupées dans des éléments.

Si < et > sont des caractères qui servent de marqueurs, comment les utiliser comme caractères d'information ? XML fournit la réponse via des entités qui commencent par le symbole & et qui se terminent par un point-virgule. Bien sûr pour afficher le symbole & comme caractère d'information il faut aussi passer par une entité. Voici donc les trois entités fondamentales pour XML :

Nom Symbole Entité
Début de balise < &lt;
Fin de balise > &gt;
Début d'entité & &amp;

On notera qu'XML permet de définir ses propres entités.

Pour délimiter les éléments, on utilise des balises ouvrantes et des balises fermantes. A toute balise ouvrante doit correspondre sa balise fermante. Si elt est le nom de l'élément, alors <elt> est sa balise ouvrante et </elt> est sa balise fermante. Dans le cas particulier d'un élément qui ne contient rien, on peut utiliser la forme compacte <elt /> au lieu de <elt></elt>. Attention : il y a bien un espace (obligatoire) avant le symbole / dans cette notation.

Si vous connaissez déjà le langage HTML pour écrire des pages Web, vous pouvez considérer que XML est une généralisation de HTML.

On peut doter les éléments d'attributs. Chaque attribut est défini par un couple (nom,valeur) noté couple="valeur". Un attribut doit être positionné uniquement dans la balise ouvrante d'un élément. En particulier, un attribut qui permet d'identifier de façon unique un élément est souvent nommé id comme par exemple dans <Auteur id="aut1357AT">.

Voici quelques exemples d'extraits de code XML avec leur explication :

Code Explication
<FILM> balise d'ouverture de l'élément FILM
<FILM  imes="M50"> idem + définition de l'attribut nommé imes de valeur M50
<p class="texte bleu"> ouverture de l'élément p avec un attribut class multivalué
Auteur : &gh; utilisation d'une entité personnelle

               non su               non su

Pour aller plus loin consulter notre tuteur XML, la page des concepts de base de XML par Gilles CHAGNON et l'essentiel de XML par Olivier CARTON.

3. Les grammaires

Les grammaires, de type DTD et XSD permettent de valider la structure d'un document XML. Les grammaires DTD sont plus simples mais moins puissantes que les grammairest XSD. Les "grands formats" informatiques fournissent les grammaires de leurs documents, comme par exemple la grammaire de SVG disponible au format DTD.

               non su               non su

Pour aller plus loin consulter notre tuteur XML et les pages DTD et XSD de Olivier CARTON et de Fabien TORRE.

4. Les transformations

 XSL  se décompose en XPath, XSLT et XSL-FO.

XPath qui ne s'écrit pas en XML, permet de localiser un élément, une sous-structure ou plusieurs sous-structures éventuellement non contigues.

Les transformations XSLT permettent d'extraire des informations, d'en créer de nouvelles, de trier ou de restructurer les documents XML.

               non su               non su

Pour aller plus loin consulter notre tuteur XML et dans cet ordre les pages DTD et XSD de Fabien TORRE. et de Olivier CARTON

5. Autres formats pour documents structurés

Avec les deux mots  Json  et  Yaml  tout est dit, reste la pratique à acquérir, même si le concept de  sérialisation  pourrait avoir sa place ici.

               non su                non su
               non su                non su

Pour ne pas conclure (!), nous conseillons de de "feuilleter" le SVG Primer du W3C (dont la partie animation qui est un peu "sympa") avant de parcourir notre document web nommé webrd04. On y découvrira sans doute l'étendue de la galaxie XML...

6. Exemples concrets

L'archive documentsXML.zip contient plus de trois cent fichiers de type XML, DTD, XSD, XSL, SVG qui seront utilisés dans les exercices, dont :

films2.xml       dessin5.dtd       validateur.xsd       films_lst_4.xsl       krona_demo.svg       

Pour mémoire, la connexion au serveur forge se fait en local à la faculté des sciences d'Angers par


     ssh -YC VOTRE_LOGIN_ICI@forge.info-ua
     

Par contre, à l'extérieur du département informatique, la connexion au serveur forge (aka janus) doit se faire avec la commande


     ssh -YC VOTRE_LOGIN_ICI@forge.info.univ-angers.fr
     

Sous Linux, dans un terminal, pour rapatrier ces exemples, le plus simple est sans doute de passer par wget comme le montre la commande ci-dessous que vous pouvez copier/coller :


     # se positionner dans le bon répertoire avant d'exécuter :
     
     wget http://forge.info.univ-angers.fr/~gh/Pluripass/Xml/documentsXML.zip
     

Pour une simple consultation ou visualisation de documents XML, un navigateur comme Firefox, Chrome, Safari ou IE suffit. Par contre, pour éditer des documents XML un éditeur un peu "évolué" qui sait prendre en compte la coloration syntaxique, les encodages, le repliement et le dépliement des balises est sans doute nécessaire. Nous conseillons principalement Geany pour Linux et Windows, Notepad++ pour Windows seul.

7. Lectures conseillées

Après la lecture des pages Wiki en français et en anglais correspondant aux mots suivants

 XML   DTD   XSD   XSLT 

nous ne conseillons que la lecture des deux sites ci-dessous :

mais deux ouvrages pourraient agréablement compléter cette présentation un peu courte de XML :

Advanced XML Applications from the Experts

XSLT 2.0 and XPath 2.0 Programmer's Reference

non su

non su

The XML Guild

Michale KAY

8. Exercices de réflexion et d'entrainement

Les TP sont en principe prévus pour des exercices d'entrainement plutôt que de réflexion.

Nous fournissons ici trop d'exercices pour des TP de 1 h 20 car il s'agit d'exercices prévus pour un cours plus général sur XML avec des heures de TP plus importantes. Nous indiquons entre parenthèses les numéros d'exercice qui nous paraissent plus faciles ou plus fondamentaux pour le public Pluripass.

1.

 Structuration XML  (1,2,3,9,10,11)

2.

 Vérification et validation XML  (1,2,5,6,8)

3.

 Sélections XPATH et transformations XSL  (1,2,3,11,12)

 

 

retour gH    Retour à la page principale de   (gH)