Prise de contact avec XML : Différence entre versions

De Wicri Manuel
imported>Jacques Ducloy
(Un exemple avec les codes postaux de Belgique)
imported>Jacques Ducloy
(Un exemple avec les codes postaux de Belgique)
Ligne 66 : Ligne 66 :
 
<source lang="sh">
 
<source lang="sh">
 
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | SxmlIndent | more
 
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | SxmlIndent | more
 +
</source>
 +
La commande « <code>SgmlFast -1</code> » permet de supprimer la première colonne de la table. Essayez :
 +
<source lang="sh">
 +
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur
 +
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur | SgmlFast -1
 +
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur | SgmlFast -1 | SxmlIndent
 +
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | SxmlIndent | grep Namur
 
</source>
 
</source>

Version du 12 juin 2020 à 15:44

Ce module donne des premiers éléments sur l'utilisation d'XML avec DILIB et l'approche ScienceExplor.

Notions générales sur XML

Avec ScienceExplor, l'accent est mis sur l'exploration de corpus et non sur la création de documents XML.

...

La notation Sxml

La plateforme Dilib est très fortement insérée dans le système Unix, initialement conçu pour des applications de génie logiciel dans lesquelles la documentation et la gestion des sources sont une contrainte importante.

Unix contient donc un nombre important de commandes de base, par exemple grep, qui permettent de manipuler des flots de ligne.

La notation Sxml vise à utiliser les commandes Unix pour manipuler des flots de documents XML.

Sauts de lignes et tabulations

le caractère saut de ligne est un séparateur de ligne sous Unix.

Avec Sxml, le saut de ligne devient un séparateur de document. Son usage est interdit au sein d'un document.

Pour des raisons techniques (voir plus loin), l'usage de la tabulation est également proscrit au sein d'un document Sxml.

Exemple

Un document XML :

<place>
  <placeName>
     <settlement type="city">Gand</settlement>
     <region type="province" nuts="2">Province de Flandre-Orientale</region>
  </placeName>
</place>

Le même en notation Sxml :

<place><placeName><settlement type="city">Gand</settlement><region type="province" nuts="2">Province de Flandre-Orientale</region></placeName></place>

Les tables et dictionnaires Sxml

Les ensembles de données manipulées dans ScienceExplor sont très souvent des tables où à une clé est associée une valeur.

Le clé est généralement une chaîne de caractères. La valeur est souvent un document Xml.

Un exemple avec les codes postaux de Belgique

L'exemple du paragraphe précédent est tiré d'une table de codes postaux utilisés en Belgique.

Sur le wiki Wicri/Belgique, une page de travail contient un tableau wiki :

En utilisant divers outils, cette table est automatiquement traduite dans une table Sxml.

Pour la visualiser, faire sous unix :

source $HOME/Documents/ScienceExplor/Dilib/init.sh
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab

On obtient ceci :

2000-2060	<place><placeName><settlement type="city">Anvers</settlement> ...
 ...
9000	<place><placeName><settlement type="city">Gand</settlement> ...

La bibliothèque DILIB contient des commandes qui permettent de manipuler ces ensembles d'objets XML.

La commande SxmlIndent, par exemple, permet d'obtenir une édition plus lisible. Essayez :

cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | SxmlIndent | more

La commande « SgmlFast -1 » permet de supprimer la première colonne de la table. Essayez :

cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur | SgmlFast -1
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | grep Namur | SgmlFast -1 | SxmlIndent
cat $DILIB/data/Wicri/Belgique/codePostal.fr.tab | SxmlIndent | grep Namur