La création d’un formulaire adaptatif à l’aide d’un schéma XML en tant que modèle de formulaire requiert des connaissances de base en matière de schémas XML. Il est également recommandé de lire le contenu suivant avant cet article.
AEM Forms prend en charge la création d’un formulaire adaptatif en utilisant un schéma XML existant en tant que modèle de formulaire. Ce schéma XML représente la structure dans laquelle les données sont générées ou utilisées par le système principal de votre organisation.
Les principales fonctionnalités de l’utilisation d’un schéma XML sont les suivantes :
Un schéma XML se compose de types d’éléments simples et complexes. Les éléments possèdent des attributs qui ajoutent des règles à ceux-ci. Lorsque ces éléments et attributs sont déplacés vers un formulaire adaptatif, ils sont automatiquement mis en correspondance avec les composants de formulaires adaptatifs correspondants.
Cette mise en correspondance des éléments XML avec les composants de formulaires adaptatifs est la suivante :
Attribut ou élément XML | Composant de formulaire adaptatif |
---|---|
xs:string |
Zone de texte |
xs:boolean |
Case à cocher |
|
Zone numérique |
xs:date |
Sélecteur de date |
xs:enumeration
|
Liste déroulante |
Tout élément de type complexe | Panneau |
Vous trouverez ci-dessous un exemple de schéma XML.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="https://adobe.com/sample.xsd"
xmlns="https://adobe.com/sample.xsd"
xmlns:xs="https://www.w3.org/2001/XMLSchema"
>
<xs:element name="sample" type="SampleType"/>
<xs:complexType name="SampleType">
<xs:sequence>
<xs:element name="leaderName" type="xs:string" default="Enter Name"/>
<xs:element name="assignmentStartBirth" type="xs:date"/>
<xs:element name="gender" type="GenderEnum"/>
<xs:element name="noOfProjectsAssigned" type="IntType"/>
<xs:element name="assignmentDetails" type="AssignmentDetails"
minOccurs="0" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssignmentDetails">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="durationOfAssignment" type="xs:unsignedInt" use="required"/>
<xs:attribute name="numberOfMentees" type="xs:unsignedInt" use="required"/>
<xs:attribute name="descriptionOfAssignment" type="xs:string" use="required"/>
<xs:attribute name="financeRelatedProject" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="IntType">
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GenderEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="Female"/>
<xs:enumeration value="Male"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Veillez à ce que votre schéma XML ne comporte qu’un seul élément racine. Un schéma XML comportant plusieurs éléments racines n’est pas pris en charge.
Vous pouvez ajouter les attributs suivants aux éléments de schéma XML pour ajouter des propriétés spéciales aux champs du formulaire adaptatif associé.
Propriété de schéma | Utilisation dans le formulaire adaptatif | Pris en charge dans |
---|---|---|
use=required |
Indique un champ obligatoire. |
Attribut |
default="default value" |
Ajoute une valeur par défaut. | Élément et attribut |
minOccurs="3" |
Spécifie les occurrences minimales. (Pour les sous-formulaires répétables (types complexes)) |
Élément (type complexe) |
maxOccurs="10"
|
Spécifie les occurrences maximales. (Pour les sous-formulaires répétables (types complexes)) |
Élément (type complexe) |
Lorsque vous faites glisser un élément de schéma jusqu’à un formulaire adaptatif, une légende par défaut est générée par :
Par exemple, si vous ajoutez l’élément de schéma userFirstName
, la légende générée dans le formulaire adaptatif est User First Name
.
Vous pouvez ajouter les restrictions suivantes aux éléments de schéma XML pour limiter les valeurs possibles pour un composant de formulaire adaptatif :
Propriété de schéma |
Type de données |
Description |
Composant |
|
Chaîne |
Spécifie le nombre maximal de chiffres autorisés dans un composant. Le nombre de chiffres spécifié doit être supérieur à zéro. |
|
|
Chaîne |
Spécifie la limite supérieure pour les valeurs numériques et les dates. Par défaut, la valeur maximale est incluse. |
|
|
Chaîne |
Définit la limite inférieure pour les valeurs numériques et les dates. Par défaut, la valeur minimale est incluse. |
|
|
Booléen |
Si elle est définie sur true, la valeur numérique ou la date spécifiée dans le composant de formulaire doit être inférieure à la valeur numérique ou la date spécifiée pour la propriété maximum. Si elle est définie sur false, la valeur numérique ou la date spécifiée dans le composant de formulaire doit inférieure ou égale à la valeur numérique ou la date spécifiée pour la propriété maximum. |
|
|
Booléen |
Si elle est définie sur true, la valeur numérique ou la date spécifiée dans le composant de formulaire doit être supérieure à la valeur numérique ou la date spécifiée pour la propriété minimum. Si elle est définie sur false, la valeur numérique ou la date spécifiée dans le composant de formulaire doit être supérieure ou égale à la valeur numérique ou la date spécifiée pour la propriété minimum. |
|
|
Chaîne |
Indique le nombre minimum de caractères autorisés dans un composant. La longueur minimale doit être égale ou supérieure à zéro. |
|
|
Chaîne |
Spécifie le nombre maximal de caractères autorisés dans un composant. La longueur maximale doit être supérieure à zéro. |
|
|
Chaîne |
Spécifie le nombre exact de caractères autorisés dans un composant. La longueur doit être égale ou supérieure à zéro. |
|
|
Chaîne |
Spécifie le nombre maximal de décimales autorisées dans un composant. La valeur de fractionDigits doit être égale ou supérieure à zéro. |
|
|
Chaîne |
Spécifie la séquence de caractères. Un composant accepte les caractères si les caractères sont conformes au modèle spécifié. Les propriétés de motif mappent vers le motif de validation du composant de formulaire adaptatif correspondant. |
|
Comment savoir quel élément de l’arborescence est associé à quel élément XML ?
Lorsque vous double-cliquez sur un élément dans l’outil de recherche de contenu, une fenêtre contextuelle affiche un nom de champ et une propriété appelée bindRef
. Cette propriété met en correspondance l’élément de l’arborescence avec l’élément ou l’attribut du schéma.
Le champ bindRef affiche l’association entre un élément de l’arborescence et un élément ou un attribut d’un schéma.
Les attributs sont dotés du symbole @
dans la valeur bindRef
pour les différencier des éléments. Par exemple, /config/projectDetails/@duration
.
Pourquoi est-ce que je ne parviens pas à faire glisser des éléments individuels d’un sous-formulaire (structure générée à partir de n’importe quel type complexe) pour les sous-formulaires répétables (les valeurs minOccurs ou maxOccurs sont supérieures à 1) ?
Dans un sous-formulaire répétable, vous devez utiliser le sous-formulaire complet. Si vous souhaitez uniquement des champs sélectifs, utilisez la structure entière et supprimez les champs indésirables.
Je dispose d’une longue structure complexe dans l’Outil de recherche de contenu. Comment puis-je trouver un élément spécifique ?
Vous disposez de deux options :
Qu’est-ce qu’un bindRef ?
Un bindRef
est le lien entre un composant de formulaire adaptatif et un élément ou un attribut de schéma. Il détermine le XPath
où la valeur capturée à partir de ce composant ou champ est disponible dans le code XML de sortie. Un bindRef
sert également au préremplissage d’une valeur de champ d’un code XML prérempli.