nouvelles-technologies

Description et usages de XForms

Parmi la myriade de spécifications du W3C, il existe les XForms. Très discrète depuis son lancement (en 2003), cette technologie mérite néanmoins que l’on s’y attarde pour bien comprendre ses avantages et les différents usages que l’on peut en faire.

Qu’est-ce que XForms ?

Pour faire court, XForms est un format XML servant à créer des formulaires « riches ». Le principe des XForms est de séparer la présentation des traitements (architecture MVC) et de se passer de javascript. XForms permet donc de réaliser des formulaires enrichis où l’on va retrouver des contrôles plus sophistiqués, où l’on va pouvoir gérer des contraintes entre les contrôles ainsi que faire de la validation silencieuse des champs (sans utiliser Ajax). Plus d’infos ici : What are XForms?, XForms pour les développeurs HTML et XForms for XML Users.

xforms_archi-6706585 Schéma d’architecture des XForms

Vous pourriez me dire que tout ceci existe déjà, et je vous répondrais que l’intérêt de XForms est de le faire avec une approche industrielle. Le recours à Javascript n’est pas tant un problème en soit, par contre, les XForms permettent d’industrialiser des formulaires métier, voir de générer des formulaires à partir d’une structure de données.

Jusqu’à présent l’implémentation était faite du côté du serveur, mais c’était une opération plutôt laborieuse (il existe pourtant des solutions packagées comme betterFORM). Vous avez également la possibilité de l’implémenter côté client avec des extensions (comme la Mozilla XForms Extension) ou en passant par un processus de transformation avec XSLTForms.

Les grands promoteurs des XForms sont Mozilla, IBM (avec notamment IBM Forms pour Lotus), EMC, XEROX ou encore OpenOffice (qui supporte les XForms depuis la version 2.0). Il existe assez peu de spécialistes XForms en France et j’ai eu la chance de pouvoir échanger avec Alain Couthures qui m’a bien aidé pour rédiger cet article (il est intarissable sur le sujet).

Plutôt destiné à un usage d’entreprise

Venons-en maintenant aux usages. Comme précisé plus haut, les XForms sont particulièrement bien adaptés aux applications qui reposent sur une base de données XML. XForms permet alors d’exploiter la structure de vos données XML pour générer le formulaire correspondant. Démonstration ici avec ce formulaire d’assurance :

insurance_app-1687877 Application en ligne d’assurance

Ne vous arrêtez pas au design du formulaire, car je vous rappelle que les XForms séparer les traitements de la présentation, les formulaires sont donc personnalisables à volonté grâce aux feuilles de style. Ceci est particulièrement utile pour les applications multi-support qui peuvent être consultées sur un ordinateur, un smartphone ou un touchbook.

Vous trouverez sur le site de Mozilla un certain nombre d’exemples qui illustrent les capacités d’XForms. Ici, un formulaire d’impôts qui intègre un graphique SVG :

taxform-5881302 Formulaire intégrant un graphique SVG

Concurrents et évolution

Outre dans le cas bien précis des applications XML, les XForms subissent la concurrence des framework javascript (jQuery, Prototype, Ext JS, Backbase…) et des environnements de développement un peu plus sophistiqués (ASP.net, Flex…).

Mais dans l’immédiat, ce sont les Web forms d’HTML5 qui sont les plus proches de la « philosophie » des XFroms : Enhance your web forms with new HTML5 features. Pour vous épargner une longue argumentation, je laisse les spécialistes vous expliquer les avantages / inconvénients et surtout les différences.

En ce qui concerne l’évolution des spécifications (actuellement en version 1.1), il existe un groupe de travail qui planche sur XForms 2.0 qui devrait supporter XPath 2.0, XSLT2.0 et même JSON.

J’espère avec cet article vous avoir éclairé sur ce que sont les XForms et ce à quoi ils servent. N’étant pas un spécialiste du domaine, je laisse les spécialistes vous orienter vers d’autres ressources…

Voir le commentaire