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

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

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

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…

Un commentaire sur “Description et usages de XForms

  1. Bonjour Frédéric!

    Il y a une différence non négligeable entre XForms et les frameworks JS, c’est que XForms est normalisé par le W3C comme vous le dites au début du billet. Les frameworks JS apportent des innovations en terme d’ergonomie et d’effets visuels, et les normes XForms normalisent (lentement il est vrai) ces innovations dans une syntaxe XML qui me semble essentielle à long terme.

    L’idéal, à mon sens, est d’utiliser à la fois XForms et un framework JS. C’est ce que je fais dans un projet sur lequel je travaille : j’utilise à la fois XSLTForms pour tout ce qui est gestion des données et interactions avec le serveur, et JQuery pour les effets visuels (le «eye-candy»).

    Quant aux formulaires en HTML5, ils ne semblent pas faire une séparation franche entre les données et les éléments graphiques (widgets). Ça me semble davantage être une mise à jour des formulaires HTML4. Mais je n’ai pas trop regardé le sujet ceci dit.

    Merci pour ce billet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s