360 likes | 441 Views
Représentation et édition de documents XML. Le contexte. XML est très utilisé. Le contexte. XML est très utilisé Difficile d’interpréter XML dans le texte :. <tree name="a"> <node cat="ap" id="ap_" type="std"> <narg type="bot"> <fs>
E N D
Le contexte • XML est très utilisé
Le contexte • XML est très utilisé • Difficile d’interpréter XML dans le texte : <tree name="a"> <node cat="ap" id="ap_" type="std"> <narg type="bot"> <fs> <f id="X1" name="gen" /> <f id="X0" name="num" /> <f id="X2" name="restr" /> </fs> </narg> ... </node> </tree>
Le contexte • XML est très utilisé • Graphique beaucoup plus lisible :
XML Le problème <tree name="a"> <node cat="ap" id="ap_" type="std"> <narg type="bot"> <fs> <f id="X1" name="gen" /> <f id="X0" name="num" /> <f id="X2" name="restr" /> </fs> </narg> ... </node> </tree> ? SVG
XML La solution ? <tree name="a"> <node cat="ap" id="ap_" type="std"> <narg type="bot"> <fs> <f id="X1" name="gen" /> <f id="X0" name="num" /> <f id="X2" name="restr" /> </fs> </narg> ... </node> </tree> XSLT SVG
XML La solution, presque <tree name="a"> <node cat="ap" id="ap_" type="std"> <narg type="bot"> <fs> <f id="X1" name="gen" /> <f id="X0" name="num" /> <f id="X2" name="restr" /> </fs> </narg> ... </node> </tree> XSLT n’est pas suffisant SVG
XSLT Java Document intermédiaire SVG La solution XML • Rôles du document intermédiaire : • représenter un graphique de manière abstraite, • pas de coordonnées, • décrire la position des objets graphiques les uns par rapport aux autres.
La représentation intermédiaire • Ecrite en XML • Comment réussir à placer les objets les uns par rapport aux autres ? • Par un système emprunté à LaTeX : des boîtes imbriquées séparées par des ressorts
Exemple • Comment représenter :
1ère étape • Générer ceci :
a b c 1ère étape • Avec des boîtes :
2ème étape • Générer ceci :
a b c 2ème étape • La structure de boîte reste la même :
Propriété background • Toutes les boîtes peuvent avoir un arrière-plan • Pour attribuer un arrière-plan à une boîte, on fixe la valeur de l’attribut background • Cette information sera interprétée par le programme Java qui passe du document intermédiaire au document SVG
a b c Propriété background • Avec notre exemple, on indique un background=‘blueRect’ pour les 3 boîtes de texte Java Document de définitions
3ème étape • Générer ceci :
a b c 3ème étape • Il faut juste générer en plus les liens • Un lien permet de lier graphiquement une boîte source et une boîte destination • Un lien peut avoir un style
XSLT Java Document intermédiaire XML SVG Ce qu’il faut retenir • Le document intermédiaire contient : • une structure de boîtes • des liens (optionnels) Document de définitions
Exemple de représentation Fantaisie
Vers de l’édition • Intéressant de pouvoir éditer graphiquement • Comment faire puisque le document SVG ne contient que des objets graphiques ? • C’est le document XML source qui contient toute l’information • Il faut lier un objet graphique à l’élément correspondant dans le document source
Complément sur le document intermédiaire • Information que l’on va stocker dans le document intermédiaire sous forme de référence • Une référence : • désigne un élément du document source avec un XPointer • désigne un élément graphique à l’aide d’un identifiant unique
L’éditeur • Disponible à l’adresse suivante : http://www.loria.fr/equipes/led/outils/xmlEditor.html • Contact : cocquet@loria.fr