| [Menus] [Projet] [Exceptions] [Analyse] [Génération] [Macro] [Lien avec un serveur HTTP] [Historique] | ||
But du systèmeUXML est un "parser" permettant de contrôler la syntaxe de document XML. Il comprend également un "moteur" de transformation XSL. Son but est principalement de générer des documents interactifs en format HTML dans une perspective de formation. |
||
Menus |
||
![]() |
La première partie du menu document permet de gérer un projet. Un projet est constitué d'un document xml (ultérieurement plusieurs) et d'information diverses (description, options, ...). Les fichiers projets ont l'extension .uxm La deuxième partie concerne un éditeur de texte standard. En particulier DTD, document XML, texte source de macro. Les extensions (en minuscule) adoptées sont: .dtd (DTD) ; .xml (document XML) ; .xsl ("feuille" de transformation XSLT) ; .txt (source de macro). Lors du "parsing" ces fichiers sont transformés en respectivement .ptd ; .pml ; .psl ; .mac. Cette notation n'est pas totalement obligatoire mais il vaut mieux l'adopter. |
|
![]() |
Menu standard. La dernipre rubrique permet éa réouverture de la fenêtre de message au cas où celle-ci aurrait été (malencontreusement) fermée. | |
![]() |
La rubrique Projet permet de modifier les paramètres du projet. La rubrique Exceptions permet de préciser les balises "non-xml" de HTML (ou d'autres). |
|
![]() |
Les rubriques du menu "Parsing" concerne l'analyse de documents XML. La rubrique DTD permet de contrôler un DTD (fichier .dtd transformé en .ptd) La rubrique XML/HTML permet de vérifier qu'un fichier HTML est bien formé (fichier .htm transformé en .ptm) (admet des balises optionnels ou non conforme telle que <BR> de même que des valeurs d'attributs non quotées). La rubrique XML/Well formed permet de vérifier qu'un fichier XML est bien formé (fichier .xml transformé en .pml) La rubrique XML/Valid permet de vérifier qu'un fichier XML est "valide". Cette vérification travail sur un fichier "bien formé" (réécriture du fichier .pml) Le menu voisin "Generating" permet d'appliquer une transformation XSLT à un fichier XML (bien formé). Les feuilles de style doivent avoir été préalablement validées. |
|
![]() |
La rubrique Validation/Root name space only permet d'appliquer la validation qu'aux éléments possèdant le même "Name space" que l'élément racine. Cela permet de valider une feuille XSL qui inclu d'autres balises (HTML notamment). La rubrique Validation/Parse attribute value permet d'effectuer la transformation de la valeur de certains attributs (MATCH, SELECT, TEST). Ultérieurement cette fonction sera commandée par le type de l'attribut. La rubrique Warnings contient deux options: Message (des messages supplémentaires sont émis), Sound (un beep est émis en cas d'erreur).
|
|
![]() |
La rubrique Compile utilise le texte source (.txt) se trouvant dans l'éditeur et crée un fichier .mac. La rubrique Run demande de choisir une macro et l'exécute |
|
Voici des marches à suivre pour essayer des exemples qui marchent:
0) Cas simple: validation d'un document xml; ce n'est pas spectaculaire mais on peut essayer d'introduire quelques erreurs pour voir (et tester!) :
1) Cas avec transformation au moyen d'une feuille de style:
2) exemple2.uxm (DTD: periodic.dtd, feuille de style liée au projet xsl-numb.uxm) est une petite extension du projet précédent avec l'usage de la fonction 'position()' qui retourne le numéro d'ordre de l'élément dans l'élément parent. De plus, un test est effectué en comparant les valeurs des fonctions 'position()' et 'last()'.
3) exemple3.uxm (DTD: periodic.dtd, feuille de style liée au projet for-each.uxm) reprend les même données mais utilise la directive XSL:FOR-EACH plutôt que XSL:APPLY-TEMPLATES ce qui est une prossibilité plus économique pour les pages avec répétition d'un même élément.
4) exemple4.uxm (DTD: employes.dtd, feuille de style liée au projet xsl-choo.uxm) montre l'utilisation de la directive XSL:CHOOSE.
5) exemple5.uxm (DTD: periodic.dtd, feuille de style liée au projet test-att.uxm) montre l'utilisation de la valeur d'un attribut,
6) exemple6.uxm (DTD: document.dtd, feuille de style to-xhtml.xsl) est une exemple de transformation en HTML.
7) L'exemple 7 est d'un autre type. Les données sont consituées d'un fichier HTML (exemple7.htm) auquel aucune feuille de style xsl est attachée. C'est la macro macro4.mac qui transforme ce fichier en un nouveau fichier HTML (insertion d'une feuille de style). On pourrait imaginer introduire une option supplémentaire pour ce type de fichier sans feuille de style. Toutefois ces transformations s'effectuent souvent sur un nombre important de fichiers. Une macro est donc utilisée la plupart du temps.
8) exemple8.uxm (DTD: periodic.dtd, feuille de style liée au projet xsl-attr.uxm) montre les possibilité de génération d'attibuts et l'éléments "empty".
9) exemple9.uxm (DTD: periodic.dtd, feuille de style liée au projet cdata.uxm) usage de la section CDATA pour mettre des caractères "interdits" (pas vraiment standard semble-t-il !).
10) h0-e01.uxm (feuille de style qcm2.xsl) est une exemple plus complexe qui permet de générer une page HTML comprenant des scripts. La DTD: pexp.dtd n'étant pas finalisée, n'est pas jointe. Le fichier ex_qcm2.xml ne pourra pas être validé, ce qui n'empêche pas la transformation d'opérer.
11) procesverbal.uxm (DTD: dpv.dtd; feuille de style: tpv.xsl) un exemple qui pourrait montrer un usage de bureautique simple.
Un module (wwwxml) permettant la transformation XSL "à la volée" existe (pour serveurs IIS ou PWS ou Apache/Linux). L'exécutable wwwxmlplus qui peut être utilisé en lieu et place effectue une compilation automatique en cas d'absence du fichier .pml ou d'une date antérieure à celle du fichier xml correspondant.
Mode d'emploi:
Remarques:
Archive: uxml.zip (1.4) wwwxml.zip
Merci de transmettre vos remarques, suggestions, questions. Vous pouvez également participer au projet, soit du point de vue technique (sources prolog disponibles) soit pour les applications pédagogiques.