Environnement de préparation de fichiers XML

Objectif

Dans le cadre de l'environnement de préparation des sources (source workbench), il s'agit d'aider l'utilisateur à manipuler des fichiers XML et TXT ayant vocation à devenir du XML.

A. Validation de fichiers XML (DTD et Schémas)

Il s'agit d'aider l'utilisateur à valider ses fichiers XML.

A) L'éditeur XML Eclipse intégré (voir Éditeur XML) offre un certain nombre de services mais ils ne sont pas interfacés pour l'utilisateur.

Il y a un début d'interface de gestion de catalogue dans l'éditeur, qui est un peu documentée. Il faut faire plus pour aller jusqu'à faire un tutoriel pour :

  • ajouter une DTD à l'environnement de TXM
  • déclarer la DTD dans le fichier XML
  • valider le fichier (avec cette DTD)
  • développer des liens hypertextes entre les lignes des messages d'erreur et les lignes des fichiers XML où se trouvent ces erreurs

B) Il y a une macro qui aide à appeler une XSL.

On pourrait en faire une qui aide à valider tous les fichiers d'un répertoire.

B. Manipulation de DTD et de Schémas

Il s'agit d'aider l'utilisateur à visualiser, documenter et manipuler des DTD et schémas.

C. Transformation de fichiers

Il s'agit d'aider l'utilisateur à transformer ses fichiers XML.

D. Statistiques de fichiers XML

Il s'agit d'aider l'utilisateur à avoir une vue d'ensemble des balises et attributs utilisés dans ses fichiers XML, qu'il doit soit découvrir, soit débugguer.

E. Import de fichiers TXT

Il s'agit d'aider l'utilisateur à transformer rapidement tous les fichiers TXT d'un répertoire en format XML.

F. Recodage TXT/XML

Il s'agit d'aider l'utilisateur à recoder rapidement des portions de texte brut en balises XML.

G. Recodage XML

Il s'agit d'aider l'utilisateur à recoder le DOM :

  • transférer un attribut en sous-élément
  • transférer un sous-élément en attribut
  • transférer un attribut dans tous les éléments feuilles d'un noeud (tous les mots dominés par un texte ou une section)
  • transférer toutes les valeurs désignées par une XPath aux éléments désignés par une autre XPath
  • ajouter à tous les éléments désignés par une XPath un attribut à valeur entière incrémentée à chaque élément (numérotation de page ou de paragraphe)
  • etc. (voir les traitements LML - Lexico Markup Language)

Méthode

Dans un premier temps, intégrer les meilleures technologies XML en Java.

État de la plateforme

A. Validation de fichiers XML (DTD et Schémas)

Une première intégration du plugin éditeur XML Eclipse a été réalisée sous forme de commande (Fichier / Ouvrir fichier XML) indépendante de l'éditeur de texte.

B. Manipulation de DTD et de Schémas

On pourrait faire une macro DTDTree.

C. Transformation de fichiers

La macro ApplyXSL permet d'appliquer une XSL sur tous les fichiers XML d'un répertoire.

D. Statistiques de fichiers XML

La macro XMLStatistics génère un tableau de synthèse des fréquences de balises et attributs de tous les fichiers XML d'un répertoire.

E. Import de fichiers TXT

La macro TXT2XML permet d'appliquer les transformations de base vers XML à tous les fichiers TXT d'un répertoire.

F. Recodage TXT/XML

L'éditeur de texte permet de faire des rechercher/remplacer de reg.exp. avec reprises.

La macro SearchReplaceInDirectory permet de faire des rechercher/remplacer de reg.exp. avec reprises dans tous les fichiers d'un répertoire.

G. Recodage XML

Avancement dans l'élaboration de la solution

Solution

État de l'art

A. Validation de fichiers XML (DTD et Schémas)

En dehors d'inviter les utilisateurs à acheter Oxygen et à utiliser ses services dans le domaine, il y a beaucoup de technologies open-sources que l'on peut intégrer.

Il existait 'dtdtree' en ligne de commande sous Unix, très utile pour afficher l'arbre de synthèse d'une DTD.

Matra a l'air pas mal et refait la même chose : http://matra.sourceforge.net

Appliqué à la DTD de Transcriber, ça donne :

java -cp ~/Software/matra-0.8.2b/bin/matra-0.8.2b.jar com.conradroche.matra.Matra -v -tree -f trans-14.dtd

=========== Parsing DTD  /home/sheiden/Corpus/src/P1S8/out/trans-14.dtd ===============
Trans (audio_filename?, scribe?, xml:lang?, version?, version_date?, elapsed_time="0")
|
|- Speakers 
|  |
|  += Speaker* (id, name, check?, type?, dialect?, accent?, scope?)
|     
|- Topics 
|  |
|  += Topic* (id, desc)
|     
+- Episode (program?, air_date?)
   |
   +- Section* (type, topic?, startTime, endTime)
      |
      +- Turn* (speaker?, startTime, endTime, mode?, fidelity?, channel?)
         |
         |= Sync (time)
         |  
         |= Background (time, type, level?)
         |  
         |= Comment (desc)
         |  
         |= Who (nb)
         |  
         |= Vocal (desc)
         |  
         += Event (type="noise", extent="instantaneous", desc)

B. Manipulation de DTD et de Schémas

C. Transformation de fichiers

D. Statistiques de fichiers XML

E. Import de fichiers TXT

F. Recodage TXT/XML

G. Recodage XML

Prototypes

Version finale

Documentation

Utilisateur

Développeur

Recette

Protocole de test

Alpha

Beta

État courant

public/specs_edition_xml.txt · Dernière modification: 2015/01/20 11:10 par slh@ens-lyon.fr