Liaison d’un schéma XSD à des éléments de sous-formulaire répétés à l’aide d’Adobe LiveCycle Designer

Connaissances préalables

Une connaissance pratique de LiveCycle Designer ; les principes du développement de schémas XSD.

Niveau de l’utilisateur

Intermédiaire

Autres produits nécessaires (tiers/Labs/open source)

  • L’éditeur de XML/XSD de votre choix

    ou

  • Un éditeur de texte (par exemple Notepad++)

Introduction

Cet article vise à décrire la liaison de champs de formulaire dynamiques à un document Schéma XML (fichier XSD) à l’aide de LiveCycle Designer ES. 

L’interaction dynamique avec les formulaires électroniques constitue l’une des caractéristiques les plus attrayantes de LiveCycle.  Lorsque le formulaire est conforme à la taille de document requise pour une transaction particulière, cela entraîne une économie des coûts d’impression (si le formulaire doit être imprimé). De plus, lorsque le formulaire présente uniquement la quantité d’informations nécessaire pour effectuer une transaction, l’utilisateur le lit et le comprend plus facilement.  Les objets de formulaire, comme les boutons, peuvent être utilisés pour ajouter ou supprimer le nombre requis de champs de saisie de données d’un formulaire.  

Les données capturées par les objets d’un formulaire sont stockées dans le formulaire sous forme de données XML.  Pour transmettre ces données XML aux services principaux, le XML doit être structuré.  Par défaut, les données XML générées dans un formulaire sont conformes à une structure XML Path (XPath) qui imite la disposition des objets de formulaire eux-mêmes ainsi que leur relation avec leur position sur le formulaire.  Cette méthode de dénomination des éléments XPath n’est que rarement utile à un développeur principal. Ainsi, pour structurer le XML généré à partir d’un formulaire d’une manière considérée comme logique par le développeur principal, un document XSD est utilisé. 

Le document XSD représente essentiellement un schéma ou un document regroupant un ensemble de règles écrit dans le langage de balisage XML.  Cet XSD décrit la manière dont les données XML doivent être structurées lorsqu’elles sont extraites du formulaire.  Une fois qu’un objet de formulaire est lié aux éléments de schéma, les données capturées dans le formulaire sont stockées dans un document XML au format décrit par le schéma XSD.

Un problème survient alors : comment lier à un élément de schéma un élément d’un objet de formulaire qui se répète de manière dynamique ?  Puisque les objets n’apparaissent qu’une seule fois dans la structure du formulaire et dans la structure du schéma, mais ils peuvent être utilisés pour stocker plusieurs ensembles de données.  Ce document a pour but d’expliquer les exigences structurelles des formulaires et les conventions de liaison nécessaires pour lier un formulaire à un schéma pour ces ensembles de données répétitives.

Le formulaire qui servira d’exemple pour ce tutoriel (voir l’illustration n° 1) est un formulaire simple qui peut servir à demander à un administrateur de site de permettre à ses entreprises partenaires de permettre à certains utilisateurs expérimentés de naviguer sur le site web de l’entreprise.  Le nombre d’utilisateurs varie : par conséquent, pour que l’administrateur du site ajoute le nombre d’utilisateurs adéquat, un bouton « Ajouter un utilisateur » est inséré.  En appuyant sur ce bouton, un nouveau bloc d’utilisateurs s’affiche, qui capture des informations similaires : prénom de l’utilisateur, nom de l’utilisateur, ajouter/modifier/supprimer (l’utilisateur nommé), numéro de téléphone de l’utilisateur et adresse électronique de l’utilisateur.

Création de champs dynamiques

Tout d’abord, le formulaire créé doit contenir la fonctionnalité de champ répété souhaitée.  Pour ce faire, la disposition du formulaire doit être souple.  Une disposition souple est différente d’une disposition statique.  Comme son nom l’indique, une disposition souple peut changer de taille et se développer ou se réduire selon les besoins, ce dont est incapable une disposition statique.  Par défaut, une disposition souple empile tous les objets de formulaire les uns sur les autres et les aligne à gauche. Dans la mesure où cela n’emploie pas correctement l’espace utilisable du formulaire (zone d’espacement utilisable sur un formulaire), il est nécessaire d’utiliser un tableau, ou mieux, un sous-formulaire dont la disposition est placée au sein de la disposition souple.

Création d’un sous-formulaire avec une disposition souple

Qu’il s’agisse de rendre la page entière souple ou de transformer un sous-formulaire enroulé en section souple, il suffit de l’enchaîner.

Remarque :

 Si vous souhaitez enchaîner la page entière, cliquez avec le bouton droit de la souris sur l’élément de la hiérarchie des objets de formulaire qui représente la page dans la visualisation de la conception (nommé par défaut « (sous-formulaire sans titre)(page 1) ». Assurez-vous de ne pas cliquer sur l’objet « Page1 » sous l’objet « (Gabarits de pages) ».

Pour créer un nouveau sous-formulaire :

  1. Cliquez avec le bouton droit de la souris sur la page dans la hiérarchie des objets de formulaire (située par défaut sur le côté gauche dans Designer).

  2. Dans le menu pop-up qui apparaît, sélectionnez « Insérer un sous-formulaire ».

  3. Donnez un nom adapté à votre sous-formulaire (dans l’exemple illustré ci-dessous, cet objet a été nommé « UserDesigneeContainer »).

  4. Assurez-vous que le paramètre « Contenu » de l’onglet « Sous-formulaire » sous la palette « Objet » est défini sur « Souple ».

Dans le sous-formulaire souple, créez un sous-formulaire avec une disposition positionnée.

  1. Cliquez avec le bouton droit de la souris sur le nouveau sous-formulaire souple dans la hiérarchie des objets de formulaire.

  2. Dans le menu pop-up qui apparaît, sélectionnez « Insérer un sous-formulaire ».

  3. Donnez un nom adapté à votre sous-formulaire (dans l’exemple illustré ci-dessous, cet objet a été nommé « UserDesigneeSubform »).

  4. Assurez-vous que le paramètre « Contenu » de l’onglet « Sous-formulaire » sous la palette « Objet » est défini sur « Positionné ».

  5. Ajoutez les éléments de formulaire qui seront répétés dans ce sous-formulaire (comme illustré par les illustrations n° 2 et 3 ci-dessous).

Création d’un schéma contenant un nœud servant à imiter le sous-formulaire répété

Ce tutoriel ne traite pas le développement de schémas XML. Vous devez cependant créer un schéma XML pour le formulaire, puis créer une connexion de données entre le formulaire et le schéma.

Un schéma XML peut être développé avec n’importe quel outil de développement de schéma XML ou XSD, ou créé à l’aide d’un simple éditeur de texte comme le produit open source Notepad ++.  Le schéma XML doit obligatoirement inclure une section qui imite la structure du sous-formulaire répété.

Dans l’exemple ci-dessus, le sous-formulaire « UserDesigneeSubform » comporte quelques éléments de capture de données, notamment :

  • UserFirstNm — un champ de texte
  • UserLastNm — un champ de texte
  • UserAddChangeDelIn — un sélecteur de liste déroulante
  • UserTelNo — un champ de texte (pourrait également être un champ numérique)
  • UserEmailAd — un champ de texte

Cela signifie que les mêmes éléments doivent également être définis dans le document Schéma XML (comme dans l’illustration n° 4 ci-dessous).  Remarque : l’attribut « maxOccurs » de l’objet contenant « souple » (UserDesigneeContainer) et de l’objet « positionné » du sous-formulaire (UserDesigneeSubform) doit être défini sur unbounded (illimité).  Remarque supplémentaire : la manière dont l’objet répété « UserDesigneeSubform » est intégré à l’objet « UserDesigneeContainer » doit refléter sa position dans la hiérarchie du formulaire déterminée dans Designer.

Lier l’objet de formulaire répété au schéma

Une fois le schéma développé et la connexion de données établie, la liaison des éléments de formulaires au schéma peut commencer. Vous trouverez ici des informations concernant la liaison des champs à une source de données.

Utiliser la convention d’astérisque entre crochets « [*] »

La seule différence avec une liaison habituelle d’un objet de formulaire à un schéma XML est l’obligation du développeur d’inclure un astérisque entre crochets « [*] » dans le chemin de liaison de Designer (comme illustré par l’illustration n° 5 ci-dessous).

Il s’agit de la seule exigence pour lier le sous-formulaire répété au XSD.  Désormais, lorsqu’un utilisateur ajoute au formulaire une section à remplir, un autre nœud de sortie XML identique s’affiche (comme illustré par l’illustration n° 6 ci-dessous).