XForms XML:Dans la pratique
Un article de WikiTuto.
Sommaire |
Visualisation
XForms est un langage nouveau et, en tant que tel, n'est pas encore supporté par les navigateurs. Il est néanmoins d'ores et déjà possible de tester son code :
- soit avec un plug-in d'Internet Explorer 6, FormsPlayer ;
- soit avec un petit navigateur Java dédié aux formats XML, X-Smiles (ce navigateur implémente notamment en natif SVG, SMIL).
Une liste plus complète d'implémentations est disponible au W3C.
Inclusion en XHTML
Principe
Via les espaces de nom, XForms peut être intégré dans n'importe quel fichier XML. Mais l'utilisation la plus répandue est dans un fichier XHTML.
Un premier exemple
Un exemple simple donne les principes de base : il est disponible en téléchargement. On notera :
- l'appel à des espaces de nom pour l'insertion des éléments de formulaire ;
- un modèle dans l'entête du fichier HTML, et les balises non insérées dans un élément particulier dans le corps du fichier (il n'y a pas de balise <form>) ;
- la présence obligatoire d'éléments label, qui permettent à la fois de décrire chaque élément de formulaire, mais aussi de fournir le texte destiné à être affiché sur les boutons.
Sous réserve de correctement libeller le modèle (ce qui n'est pas le cas ici), la chaîne de caractères envoyée par le formulaire lors de la soumission est le fichier XML suivant :
<instanceData> <numero>(...)</numero> </instanceData>
Un exemple plus élaboré
Le deuxième exemple, disponible lui aussi en téléchargement, présente quelques autres principes de base en plus de ceux précédemment évoqués :
- Le modèle doit répondre à deux tâches :
- 1.il doit définir la structure de l'instance data, dans la balise <instance> ;
- 2. il doit aussi définir ce qui arrive lors de la soumission du formulaire.
La balise <instance> définit les éléments XML qui figureront dans la soumission du formulaire. Il est possible, au lieu de simplement écrire, dans l'ordre, la liste de ces éléments, de faire référence à un schéma externe, à l'aide d'un attribut src. Cette possibilité permet d'appliquer plus de contraintes aux données qui doivent être saisies.
La balise <submission> possède beaucoup d'attributs ; les trois plus importants sont id, action et method, comme en HTML. L'exemple donné en propose deux illustrations :
- Comme en HTML, id permet d'... identifier le modèle de soumission ;
- la création d'un fichier local (méthode "put"). On peut se servir de cette méthode si on doit réaliser l'interface d'une application Web destinée à aider des utilisateurs novices à produire des fichiers XML selon un format précis.
- l'envoi "classique" (méthode "post"). Cette méthode est particulièrement adaptée à l'utilisation de [Services Web XML:Généralités Services Web].
Dans le formulaire lui-même, dans le corps du document, on note pour chaque champ l'utilisation de quelques attributs :
- L'attribut model "pointe" vers le modèle d'instance data utilisé ;
- L'attribut ref pointe, pour l'instance data sélectionnée, vers la balise à remplir ;
- L'attribut class permet de faire référence à une propriété CSS gérant l'apparence de l'élément.
L'élément <submit>, enfin, possède un attribut submission désignant le type de soumission à employer. Cet attribut fait référence à la balise <submission> d'identifiant correspondant.
Interactivité sans script
Le troisième exemple [hhttp://www.wikituto.org/xml/exemples/xforms2.xml en téléchargement] ajoute quelques éléments :
- Une balise <repeat> permet d'indiquer une collection d'éléments de formulaire répétables.
- L'élément <trigger>, qui désigne un bouton, permet de spécifier une action de répétition. Pour cela, lorsque l'événement indiqué par l'attribut ev:event est activé, le formulaire s'ajoute (sans script, balise <insert>) un élément <order> (nodeset=order, après le dernier élément de même nom dans l'instance data (at="last()" position="after")
Sources
Voir aussi
- Généralités
- Fonctionnalités des formulaires XForms
- Dans la pratique
- Pour aller plus loin...



