TUTORIELS 
Présentation de XForms
Présentation de XForms, la nouvelle génération de formulaires Web telle que proposée par le W3C.  (9 octobre 2002 )
 

XForms, ou XML Forms, est une spécification de définition de formulaires, basée sur XML, destinée aux futures générations de HTML et XHTML. Cette spécification est en cours d'élaboration depuis 1999 au W3C, et un nouveau document de travail pour XForms 1.0 a été mis en ligne le 21 août dernier, préfigurant une prochaine Recommandation du W3C.

Le projet n'est pas anodin, quand on sait que les formulaires sont la base de toute intéractivité en ligne, comme les communautés (salons de discussions et forums), la personnalisation de contenus, les moteurs de recherche, le commerce en ligne et toute application en ligne.
Plusieurs centaines de millions (probablement un euphémisme) de transactions ont été réalisées sur le Web par leur biais: pas seulement pour des applications de commerce ou communautaires, mais aussi pour des calculs en ligne, des inscriptions, des conversions et beaucoup d'autres types d'applications qui, de part leur forte utilisation de programmes externes pour parvenir à un résultat donné, prouvent que les formulaires arrivent très vite à leurs limites.

Partant de là, il était nécessaire de pouvoir utiliser des formulaires sur le plus vaste nombre de supports possibles, et donc de réaliser une "version XML" des formulaires HTML classiques, extrêmement limités et inchangés depuis plus de sept ans.

Le besoin
Les formulaires classiques fonctionnent de la manière bidirectionnelle: l'utilisateur entre ses données à l'aide des éléments du formulaire (champs texte, boutons, listes déroulantes...), celles-çi sont ensuite envoyées au serveur via l'attribut de balise action (et validées soit à l'aide de JavaScript, soit coté serveur), et le serveur traite les données et renvoie (ou non) un résultat à l'utilisateur.
Mais, n'ayant pas été prévu pour des applications complexes, les formulaires HTML manquent de souplesse et d'interopérabilité. Notamment, ils ne font pas appel à XML, ce qui limite les possibilités d'échange d'informations, et ils n'ont pas été prévus pour autre chose qu'un ordinateur. Avec l'arrivée massive d'internautes passant par des PocketPC et autres, il devenait nécessaire de créer des formulaires intelligents, capables de séparer la forme, le contenu et la logique. C'est à cette attente que répond la norme XForms.

Elle a été dès le début conçue pour intégrer de nombreux éléments qui permettent d'enrichir la gestion d'un formulaire tout en le rendant indépendant du support. Ses principaux atours sont sa réutilisabilité (plusieurs formulaires par page Web, ou un seul destiné à plusieurs pages), son faible besoin de programmation (la validation de certaines données est faite par le formulaire lui-même), et son indépendance vis-à-vis de la plateforme: la spécification prévoit le support sur ordinateur, terminaux mobiles portatifs (Palm, PocketPC, téléphone...), télévision, imprimante et scanner. Sur ces deux derniers points, un utilisateur devra par exemple pouvoir imprimer un formulaire, le remplir à la main, et scanner le résultat pour le renvoyer sur le réseau.
On décrit donc les types de données que l'on souhaite saisir tandis qu'un autre langage expliquera comment, selon le contexte, le formulaire sera proposé à l'utilisateur : le formulaire ne sera pas le même selon que ce dernier utilise un ordinateur ou un téléphone.

Le principe de fonctionnement
XForms sépare la présentation du contenu par une organisation en trois sections: données (ce que contient le formulaire), interface utilisateur (ce à quoi il ressemble), et logique d'intéraction (la manière dont il fonctionne). Il permet l'utilisation de technologie déjà existantes comme XSL et CSS pour la présentation. Chaque section utilise une définition indépendante et séparée.
XForms comprend deux parties, dont la première, le XForms Data Model, porte sur la modélisation des données, et dont la deuxième, non-encore définie, portera sur l'interface utilisateur. Cette séparation facilite la réutilisation et permet de générer plusieurs présentations à partir d'un seul modèle de données.

XForms utilise XML tant pour définir les formulaires que pour transporter les données entrantes et sortantes (grâce au Unicode). Etant donné que c'est une norme basée sur XML, on peut la coupler avec d'autres applications XML, comme le WML (langage de balises pour plateformes sans fil) ou le SVG (langage de graphisme vectoriel).

Le progrés majeurs par rapport aux formulaires HTML sont:
- fort typage: chaque donnée soumise à un formulaire XForms doit avoir un type donné. Cela permet une pré-validation de base des données entrées, par le formulaire lui-même.
- format XML: cela élimine le besoin d'une logique coté serveur pour mettre en forme les données envoyées à l'application serveur. Le document XML reçu peut-être directement validé et utilisé par l'application.
- internationalisation: l'utilisation de XML pour les données d'occurences assure que les données transmises sont au format international.
- accessibilité: en séparant le contenu de la présentation, XForms permet à l'interface utilisateur d'encapsuler toutes les données utiles, commes les titres et descriptions, améliorant ainsi l'accessibilité d'une application selon le support sur lequel elle est utilisée. Les éléments d'interface sont génériques et prévus pour être indépendant du support.
- ...et d'autres encore.

Les éléments d'interface sont définis de manière abstraite, de telle sorte que différentes plateformes puissent choisir la manière dont elles les implémentent. Ainsi, là où une balise <select> dans un formulaire HTML n'aura qu'une seule représentation possible (une liste déroulante), l'élément <select1> d'un formulaire XForms pourra sur un ordinateur être représenté par une liste déroulante, et sur un téléphone portable par une série de boutons radio. Mais, si l'aspect change, le but de l'élément reste le même sur toutes les plateformes: permettre à l'utilisateur de ne choisir qu'un seul élément dans une liste.

Malheureusment, comme pour tout standard émergent, XForms a encore du mal à s'imposer face à la simplicité des formulaires classiques, cette simplicité qui a fait le succés et la pérennité de la norme HTML...
Gageons cependant que la puissance offerte par XForms saura être remarquée et intégrée aux principaux outils de création Web rapidement. La facilité de mise à jour peut aussi jouer en la faveur d'une prompte adoption des développeurs, étant donné que la programmation n'est pas mélangée aux balises de présentation.
Dans tous les cas, XForms mérite son surnom de "nouvelle génération des formulaires", et que l'on se penche plus sérieusement sur son utilisation...

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page