| Table des matières | Précédent | Suivant | Bas de page |
Sommaire |
|---|
|
Commandes de formulairede XForms
Les commandes de formulaire se déclarent au moyen d'éléments de balisage et leur comportement est affiné via des attributs de balisage.
| Élément | Attributs | Modèle de contenu minimal |
|---|---|---|
| input | Communs, Communs I.U., Liaison de nœud simple, inputmode (xsd:string), incremental (xsd:boolean) | label, (Communs I.U.)* |
| secret | Communs, Communs I.U., Liaison de nœud simple, inputmode (xsd:string), incremental (xsd:boolean) | label, (Communs I.U.)* |
| textarea | Communs, Communs I.U., Liaison de nœud simple, inputmode (xsd:string), incremental (xsd:boolean) | label, (Communs I.U.)* |
| output | Communs, Liaison de nœud simple (optionnel), appearance ("full"|"compact"|"minimal"|xforms:QNameButNotNCNAME), value (expression-XPath) | label? |
| upload | Communs, Communs I.U., Liaison de nœud simple, mediatype (xsd:string), incremental (xsd:boolean) | label, filename?, mediatype?, (Communs I.U.)* |
| range | Communs, Communs I.U., Liaison de nœud simple, start (xsd:string), end (xsd:string), step (xsd:string), incremental (xsd:boolean) | label, (Communs I.U.)* |
| trigger | Communs, Communs I.U., Liaison de nœud simple (optionnel) | label, (Communs I.U.)* |
| submit | Communs, Communs I.U., Liaison de nœud simple (optionnel), submission (xsd:IDREF) | label, (Communs I.U.)* |
| select | Communs, Communs I.U., Liaison de nœud simple, selection ("open" | "closed"), incremental (xsd:boolean) | label, (Communs I.U. liste)+, (Communs I.U.)* |
| select1 | Communs, Communs I.U., Liaison de nœud simple, selection ("open" | "closed"), incremental (xsd:boolean) | label, (Communs I.U. liste)+, (Communs I.U.)* |
| choices | Communs | label?, (Communs I.U. liste)+ |
| item | Communs | label, value, (Communs I.U.)* |
| filename | Communs, Liaison de nœud simple | EMPTY |
| mediatype | Communs, Liaison de nœud simple | EMPTY |
| value | Communs, Liaison de nœud simple (optionnel) | (PCDATA|ANY)* |
| label | Communs, Liaison de nœud simple (optionnel), Liaison | (PCDATA|(Direct d'I.U.))* |
| help | Communs, Liaison de nœud simple (optionnel), Liaison | (PCDATA|(Direct d'I.U.))* |
| hint | Communs, Liaison de nœud simple (optionnel), Liaison | (PCDATA|(Direct d'I.U.))* |
| alert | Communs, Liaison de nœud simple (optionnel), Liaison | (PCDATA|(Direct d'I.U.))* |
Voir également 9.3.3 L'élément itemset .
Remarque :
À moins d'être liés à des commandes de formulaires, les nœuds de donnée d'instance ne sont pas présentés à l'utilisateur. Par conséquent,
une commande de formulaire correspondant au <input type="hidden"> de HTML n'est pas nécessaire.
Les attributs suivants sont communs à beaucoup d'éléments XForms relatifs à l'interface d'utilisateur : le groupe de ces attributs est
appelé ici Communs I.U.
.
| Élément | Attributs |
|---|---|
| (divers) | appearance ("full"|"compact"|"minimal"|QName-but-not-NCName) |
Un attribut optionnel qui définit une indication de l'apparence. Si absent, l'agent utilisateur est libre de choisir la restitution qui convient.
Remarque :
Un langage hôte est censé ajouter des attributs, tel que xml:lang, ainsi qu'un attribut nommé class qui contient
une liste de chaîne susceptibles d'être filtrées par des sélecteurs de classe CSS.
En outre, le langage hôte doit fournir un moyen d'indiquer l'ordre de navigation d'ensemble, entre les commandes de formulaire et les autres
éléments compris dans le langage hôte, ainsi qu'une navigation au clavier ou par accès direct vers des éléments particuliers. La proposition
suivante fait appel au couple d'attributs navindex et accesskey, définis ainsi :
Un attribut optionnel dont la valeur est un entier non négatif dans l'intervalle 0-32767
servant à définir la séquence de navigation.
Il donne à l'auteur le contrôle de la séquence suivant laquelle parcourir les
commandes de formulaire. L'ordre de navigation implicite est défini
dans le chapitre 4 Le modèle de traitement.
Un attribut optionnel qui définit un raccourci afin de déplacer le focus d'entrée directement à une
commande de formulaire. Il a pour valeur un caractère seul qui,
utilisé en même temps qu'une touche modificatrice propre à la plateforme (par exemple, la touche alt
), entraîne le
déplacement du focus sur cette commande de formulaire.
L'agent utilisateur doit fournir un moyen d'identifier les touches d'accès susceptibles de servir dans une présentation. Cela peut se faire de différentes façons selon les implémentations, par exemple, au travers d'une interaction directe avec l'application ou via le guide de l'utilisateur. Le lecteur peut ne pas mettre à disposition la touche d'accès demandée par l'auteur (par exemple, elle n'existe pas sur l'appareil employé, ou le lecteur lui-même l'utilise). Par conséquent, l'agent utilisateur devrait mettre à disposition la touche indiquée, mais peut l'associer à un comportement d'interaction différent.
En outre, le module Commandes de formulaire
définit les jeux de contenu suivants :
| Jeu de contenu | Modèle de contenu minimal |
|---|---|
| Communs I.U. | (help|hint|alert|Action)* |
| Communs I.U. liste | (choices|item|itemset)+ |
| Commandes de formulaire | (input|secret|textarea|output|upload|range|trigger|submit|select|select1)* |
| Direct d'I.U. | (output)* |
Comme indiqué ci-dessus, le module Événements XML ajoute le jeu de contenu Action au jeu de contenu Communs I.U.. Un langage hôte devrait
ajouter un balisage direct au jeu de contenu Direct d'I.U.. Lorsque le module Extension
de XForms est présent, il devrait également être inclus
au jeu de contenu Communs I.U..
Les commandes de l'interface d'utilisateur XForms sont reliées aux données d'instance sous-jacentes au moyen d'attributs de liaison comme définis dans le chapitre 6 Les propriétés des éléments de modèle.
Les commandes de formulaire sont rendues accessibles par l'adoption d'une approche uniforme des caractéristiques telles que les étiquettes, le texte d'assistance, la navigation et les raccourcis au clavier. Les problèmes d'internationalisation sont abordés selon les mêmes principes de conception que dans XHTML. Toutes les commandes de formulaire peuvent recevoir des styles, pour un média acoustique ou bien visuel.
Les commandes de formulaire encapsulent une sémantique de niveau supérieur sans sacrifier la capacité à produire des implémentations réelles.
Par exemple, la commande de formulaire select permet à l'utilisateur de sélectionner des éléments d'un ensemble.
Ces commandes de formulaire distingue les aspects fonctionnels de la commande sous-jacente des aspects touchant à la présentation et au
comportement. Cette séparation permet d'exprimer l'intention sous-jacente d'une commande de formulaire particulière (voir
[AUI97] pour une définition de telles primitives d'interaction de niveau supérieur
avec l'utilisateur).
Les commandes de formulaire, au moment du rendu, affichent les valeurs de données sous-jacentes auxquelles elles sont reliées. Tandis que les données présentées à l'utilisateur par le biais d'une commande de formulaire doit correspondre directement aux données d'instance liées, la représentation affichée n'est pas tenue de correspondre à la valeur lexicale. Par exemple, les agents utilisateurs devraient appliquer des conventions appropriées pour l'affichage des dates, des heures, des durées et des valeurs numériques, y compris les caractères de séparation.
Toutes les commandes de formulaire doivent respecter les obligations d'implémentation suivantes :
Les commandes de formulaire qui écrivent un contenu de type simpleContent
sur des données d'instance doivent le faire exactement comme
défini par l'action XForms dans 10.1.9 L'élément setvalue ;
Toutes les commandes de formulaire qui lisent des données d'instance de type simpleContent
doivent le faire de cette manière :
Pour les nœuds d'élément : si des nœuds de texte enfants sont présents, renvoyer la valeur de chaîne du premier nœud de texte enfant, sinon renvoyer "" (la chaîne vide) ;
Pour les nœuds d'attribut : renvoyer la valeur de chaîne du nœud ;
Pour les nœuds de texte : renvoyer la valeur de chaîne du nœud ;
Pour l'espace de nommage, les instructions de traitement, les commentaires et le nœud racine XPath : le comportement n'est pas défini.
Les commandes de formulaire doivent distinguer le rendu d'un état valide de celui d'un état invalide. Ce comportement devrait pouvoir être contrôlé par des feuilles de style ;
Les commandes de formulaire doivent indiquer quand les données d'instance liées contiennent une valeur qu'elles sont sont incapables de restituer. Ce comportement devrait pouvoir être contrôlé par des feuilles de style ;
Les commandes de formulaire doivent fournir à la demande une explication de leur état courant, dont la validité et les propriétés d'élément de modèle liées. Ce comportement devrait pouvoir être contrôlé par des feuilles de style ;
Les commandes de formulaire doivent fournir une explication par défaut de leur état courant quand celle définie par l'auteur est indisponible.
Les sections de ce chapitre définissent les diverses commandes de formulaire en renseignant les aspects suivants :
Description
Attributs communs
Attributs spéciaux
Exemples
Restrictions de liaison de donnée
Obligations d'implémentation
inputDescription : Cette commande de formulaire permet une entrée de donnée de format libre.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Cette commande de formulaire accepte une indication de mode d'entrée (cf. E Les modes d'entrée).
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<input ref="commande/livrer/rue" class="adresseRue"> <label>Adresse</label> <hint>Veuillez entrer le numéro et le nom de la rue</hint> </input>
Dans cet exemple, une feuille de style peut utiliser l'attribut class pour définir la dimension d'affichage de la
commande de formulaire. Remarquez que les contraintes exercées sur la quantité de texte qui peut être saisie proviennent de la
définition du modèle XForms sous-jacent et non de ces propriétés d'affichage.
Un navigateur graphique pourrait restituer cet exemple comme suit :
Restrictions de liaison de donnée : Se lie à n'importe quel contenu de type simpleContent
(sauf les types
xsd:base64Binary
, xsd:hexBinary
, ou tout type de donnée dérivé de ceux-ci).
Obligations d'implémentation : Doit autoriser l'entrée d'une valeur lexicale pour le type de donnée lié. Les implémentations devraient
fournir un dispositif pratique pour l'entrée des types de données et tenir compte des problèmes de localisation et d'internationalisation
tel que celui de la représentation des nombres. Par exemple, une commande input liée à un nœud de données d'instance
de type xsd:date
pourrait fournir une commande calendaire afin d'entrer des dates ; de la même façon, une commande d'entrée
liée de type boolean
pourrait se rendre par une case à cocher.
<input ref="commande/dateExpedition"> <label>Expédier</label> <hint>Veuillez indiquer la date d'expédition pour cette commande.</hint> </input>
Un navigateur graphique pourrait restituer cet exemple comme suit :
L'utilisateur peut taper une date dans la zone de saisie de texte ou presser un bouton pour ouvrir un calendrier :

secretDescription : Cette commande de formulaire est utilisé par l'utilisateur afin qu'il puisse fournir des informations au système, de manière à ce qu'il soit difficile pour un observateur du processus, autre que l'utilisateur, de discerner la valeur qui est fournie. Un usage courant : la saisie d'un mot de passe.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Cette commande de formulaire accepte une indication de mode d'entrée (cf. E Les modes d'entrée).
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<secret ref="/login/motDePasse"> <label>Mot de passe</label> <hint>Le mot de passe ne s'affichera pas.</hint> </secret>
Un navigateur graphique pourrait restituer cet exemple comme suit :
Restrictions de liaison de donnée : Identiques à celles de l'élément input.
Obligations d'implémentation : Les implémentations, y compris les auxilliaires d'accessibilité, doivent dissimuler la valeur saisie dans
cette commande de formulaire. Une approche possible consiste à restituer un caractère *
, ou un caractère similaire, à la place des
caractères réels saisis. Remarquez que cette approche n'offre qu'un niveau de sécurité temporaire : les informations vraiment sensibles
exigeront des mesures de sécurité supplémentaires hors de l'objet du langage XForms.
textareaDescription : Cette commande de formulaire permet l'entrée de données de format libre et elle est prévue pour entrer un contenu multiligne, par exemple, le corps d'un message électronique.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Cette commande de formulaire accepte une indication de mode d'entrée (cf. E Les modes d'entrée).
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed. La valeur par défaut de cet attribut est "false".
Exemple :
<textarea ref="message/corps" class="corpsMessage"> <label>Corps du message</label> <hint>Entrez ici le texte de votre message</hint> </textarea>
Dans cet exemple, une feuille de style peut utiliser l'attribut class pour définir la dimension d'affichage de la
commande de formulaire. Remarquez que les contraintes exercées sur la quantité de texte qui peut être saisie proviennent de la
définition du modèle XForms sous-jacent et non de ces propriétés d'affichage.
Un navigateur graphique pourrait restituer cet exemple comme suit :
Restrictions de liaison de donnée : Se lie à un type xsd:string
ou tout type simpleContent
dérivé.
Obligations d'implémentation : Doit autoriser l'entrée d'une valeur lexicale pour le type de donnée lié, y compris des lignes de texte multiples.
outputDescription : Cette commande de formulaire restitue une valeur provenant des données d'instance mais n'offre aucune possibilité d'entrer ou
de modifier des données. Elle sert à afficher des valeurs de l'instance et elle se comporte comme si elle avait un style
display:inline pour les besoins de la disposition. L'élément output peut servir à afficher la valeur d'un
emplacement particulier dans l'instance en utilisant une expression de liaison. Il peut aussi servir à afficher le résultat de l'évaluation
d'une expression XPath indiquée via l'attribut value au lieu de l'attribut ref. Remarquez que les
attributs ref et value d'un élément output s'excluent mutuellement.
Attributs communs : Communs, Liaison de nœud simple (optionnel)
Attributs spéciaux :
Cette commande de formulaire qui n'utilise pas le groupe des attributs Communs I.U. mais contient toujours un attribut appearance
comme défini précédemment.
Une expression XPath à évaluer.
Le résultat La chaîne résultant de l'évaluation est restituée
par la commande de formulaire. Si des attributs de liaison sont présents pour sélectionner un nœud, cet attribut n'a aucun effet.
L'expression XPath est réévaluée dès qu'il se produit un changement dans un nœud auquel l'expression se réfère.
Exemple :
Vous avez été débité de <output ref="commande/prixTotal"/> - détails :
Un navigateur graphique pourrait restituer une commande de formulaire de sortie comme suit :
Restrictions de liaison de donnée : Se lie à tout contenu de type simpleContent
.
Obligations d'implémentation : Doit autoriser l'affichage d'une valeur lexicale pour le type de donnée lié. Les implémentations devraient fournir un dispositif pratique pour l'affichage des types de données et tenir compte des problèmes de localisation et d'internationalisation tel que celui de la représentation des nombres.
uploadDescription : Cette commande de formulaire permet une fonctionnalité courante proposée sur des sites Web, à savoir charger sur un serveur un fichier issu du système de fichier local, tout en acceptant les entrées de divers appareils dont les microphones, les stylos et les caméras numériques.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Une liste des types de média suggérés, séparés par des espaces, qui est utilisée par le processeur XForms pour déterminer les sources de donnée possibles à charger sur un serveur.
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<upload ref="courrier/pieceJointe" mediatype="image/*"> <label>Sélectionnez une image :</label> <filename ref="@filename" /> <mediatype ref="@mediatype" /> </upload>
Un navigateur graphique pourrait restituer cet exemple comme suit :
Obligations d'implémentation :
À son activation, si un sous-élément filename est présent et qu'un nom de fichier est disponible, l'élément upload
place le nom de fichier des données à charger sur le serveur dans l'instance, au nœud indiqué par les attributs de liaison du
sous-élément filename ;
À son activation, si un sous-élément mediatype est présent et qu'un type de donnée est fourni, l'élément upload
place le type de donnée des données à charger sur le serveur dans l'instance, au nœud indiqué par les attributs de liaison du
sous-élément mediatype.
Restrictions de liaison de donnée : Cette commande de formulaire ne peut se lier qu'aux types de données xsd:anyURI
,
xsd:base64Binary
ou xsd:hexBinary
, ou aux types dérivés par restriction de ceux-ci.
Obligations d'implémentation : Pour la liaison d'un type base64Binary
, ou hexBinary
:
Lorsque qu'il est lié à un nœud de données d'instance de type xsd:base64binary
, xsd:hexBinary
, ou à un type
dérivé par restriction de ceux-ci, l'élément upload, à son activation, place le contenu binaire dans le contenu du nœud avec
le codage indiqué.
Obligations d'implémentation : Pour la liaison d'un type anyURI
:
Lorsqu'il est lié à un nœud de données d'instance de type xsd:anyURI
(ou d'un type dérivé par restriction de celui-ci),
l'élément upload, à son activation, place une adresse URI dans le contenu du nœud.
Pour des raisons de sécurité, le processeur XForms ne doit pas résoudre l'adresse URI liée à cette commande de formulaire sans autorisation explicite de l'utilisateur.
Remarque :
Développeurs, remarquez que l'élément upload doit associer le contenu binaire, le type de média et le nom de fichier à cette
adresse URI pour les sérialisations décrites dans les chapitres suivants :
11.4 La sérialisation multipart/related et
11.5 La sérialisation multipart/form-data.
Les implémentations disposant d'un système de fichier devrait gérer le chargement de fichier sur un serveur en sélection d'un
fichier particulier. La présentation par défaut des types de fichiers devrait refléter le type de média défini par
l'attribut mediatype, par exemple, en ne présentant que des types de fichiers sons dans le dialogue de sélection pour le
type de média "audio/*".
Obligations d'implémentation : Pour toutes les liaisons de données :
Les implémentations associées à un stylo numérique/matériel de numérisation particulier devraient (et celles associées à d'autres dispositif de pointage peuvent) gérer le dessin, c'est-à-dire permettre la création in situ de données produites par un stylo numérique ;
Les implémentations ayant des capacités d'enregistrement sonore particulières devraient gérer l'enregistrement sonore, c'est-à-dire l'enregistrement in situ d'un clip audio ;
Les implémentations associées à un appareil photographique numérique, une interface de scanérisation ou un capture d'écran devraient gérer l'acquisition d'image, c'est-à-dire le chargement in situ des images issues d'un appareil raccordé ;
Les implémentations ayant des capacités d'enregistrement vidéo devraient offrir une option d'enregistrement vidéo ;
Les implémentations ayant des capacités 3D devraient fournir une option d'interface 3D ;
Les implémentations peuvent offrir des mises en œuvres propriétaires (par exemple, un type de média "text/rtf" pourrait
invoquer une fenêtre d'édition dans une application de traitement de texte propriétaire) ;
On encourage les implémentations à gérer d'autres dispositifs d'entrée non mentionnés ici ;
Les implémentation incapables de gérer le chargement sur un serveur d'un type de média donné doivent l'indiquer à l'utilisateur.
Voir les sous-éléments filename (cf. 8.3.1 L'élément filename)
et mediatype (cf. 8.3.2 L'élément mediatype).
rangeDescription : Cette commande de formulaire permet une sélection à partir d'un intervalle de valeurs séquentielles.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Une indication optionnelle de la limite lexicale initiale de l'intervalle, une valeur légale pour les données sous-jacentes. Si cette valeur est fournie, elle sert à raffiner encore les contraintes définies par le modèle sous-jacent.
Une indication optionnelle de la limite lexicale finale de l'intervalle, une valeur légale pour les données sous-jacentes. Si cette valeur est fournie, elle sert à raffiner encore les contraintes définies par le modèle sous-jacent.
Une valeur optionnelle à utiliser pour incrémenter ou décrémenter une valeur. Elle doit être d'un type capable d'exprimer la différence entre deux valeurs légales des données sous-jacentes.
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<range ref="/stats/balance" start="-2.0" end="2.0" step="0.5"> <label>Balance:</label> </range>
Un navigateur graphique pourrait restituer cet exemple comme suit :

Restrictions de liaison de donnée : Se lie seulement à la liste suivante de types de données, ou les types de données dérivés par restriction
de ceux de la liste : xsd:duration
, xsd:date
, xsd:time
, xsd:dateTime
,
xsd:gYearMonth
, xsd:gYear
, xsd:gMonthDay
, xsd:gDay
, xsd:gMonth
,
xsd:float
, xsd:decimal
, xsd:double
.
Obligations d'implémentation : Doit autoriser l'entrée d'une valeur correspondant au type de donnée lié. Les implémentations devraient
informer l'utilisateur des limites inférieure et supérieure, et, le cas échéant, de la valeur du pas. Si la valeur de donnée d'instance
dépasse les limites inférieure ou supérieure, cette commande de formulaire doit signaler une condition de débordement d'intervalle.
Dans les environnements graphiques, elle peut se rendre par une glissière
ou un bouton rotatif
.
Notez que les attributs de cet élément encapsulent une certaine quantité de métadonnées qui, avec l'information de type provenant
du modèle XForms, se révèlent suffisantes pour produire des invites significatives dans l'utilisation de modalités telle que la parole,
par exemple, lorsqu'on utilise un auxilliaire d'accessibilité. Ainsi, dans l'exemple suivant, un agent utilisateur vocal pourrait dire une
invite de la forme Veuillez choisir une date dans la période du 1er janvier 2001 au 31 décembre 2001.
En cas de recoupement des restrictions entre le type de donnée sous-jacent et les indications des attributs start et
end, c'est l'intervalle le plus restrictif qui devrait être utilisé.
Exemple :
<range ref="/commande/dateExpedition" start="2001-01-01" end="2001-12-31"> <label>Date d'expédition</label> </range>
triggerDescription : Cette commande de formulaire est similaire à l'élément HTML button et permet à l'utilisateur de déclencher des
actions. Elle peut aussi servir à construire d'autres commandes de formulaire personnalisées.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple (optionnel)
Exemple :
<trigger> <label>Cliquez ici</label> </trigger>
Restrictions de liaison de donnée : Se lie à n'importe quel nœud. Cette commande de formulaire n'interagit pas directement avec les données de formulaire, mais elle est affectée par les propriétés des éléments de modèle du nœud lié, et ainsi les attributs de liaison ne sont pas nécessaires.
Obligations d'implémentation : L'agent d'utilisateur doit fournir le moyen de générer un événement DOMActivate sur la
commande de formulaire. Les implémentations graphiques pourraient rendre cette commande de formulaire par un bouton poussoir ayant
l'étiquette sur sa face. On peut utiliser des feuilles de style pour représenter cette commande de formulaire par une image, un hyperlien,
ou autres.
submitDescription : Cette commande de formulaire initie la soumission de toutes les parties des données d'instance auxquelles elle est liée.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple (optionnel)
Attributs spéciaux :
Référence obligatoire pour l'élément submission.
Exemple :
<submit submission="fichePointage"> <label>Soumettre la fiche de pointage</label> </submit>
Restrictions de liaison de donnée : Se lie à n'importe quel nœud. Cette commande de formulaire n'interagit pas directement avec les données de formulaire, mais elle est affectée par les propriétés des éléments de modèle du nœud lié et, de ce fait, les attributs de liaison ne sont pas nécessaires.
Obligations d'implémentation : Dès réception d'un événement DOMActivate, cette commande de formulaire distribue un
événement xforms-submit à l'élément submission indiqué par l'attribut obligatoire submission.
Dès activation, cette commande doit devenir indisponible à d'autres activations jusqu'à ce que le processus de soumission s'achève,
soit par un événement xforms-submit-done, soit par un événement xforms-submit-error.
selectDescription : Cette commande de formulaire permet à l'utilisateur d'effectuer plusieurs sélections à partir d'un ensemble de choix.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Un attribut optionnel déterminant si une entrée libre est autorisée dans la liste. La valeur implicite est "closed".
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<select ref="my:parfum">
<label>Parfums</label>
<choices>
<item>
<label>Vanille</label>
<value>v</value>
</item>
<item>
<label>Fraise</label>
<value>f</value>
</item>
<item>
<label>Chocolat</label>
<value>c</value>
</item>
</choices>
</select>
Dans l'exemple ci-dessus, on peut sélectionner plusieurs parfums.
Un navigateur graphique pourrait restituer une commande de formulaire select de l'une des manières suivantes :
appearance="full" |
appearance="compact" |
appearance="minimal" |
|---|---|---|
|
|
|
Typiquement, on se servirait d'une feuille de style pour déterminer l'apparence exacte des commandes de formulaire, bien qu'on puisse suggérer
un aspect par le biais de l'attribut appearance. Cet attribut prend l'une des valeurs suivantes :
- "
full" : tous les choix devraient tout le temps être restitués ;- "
compact" : un nombre de choix fixé devrait être restitué avec, au besoin, des facilités de défilement ;- "
minimal" : un nombre minimum de choix devrait être restitué avec une facilité pour la restitution temporaire d'autres choix.
Restrictions de liaison de donnée : Tout contenu de type simpleContent
capable de contenir une séquence. Il existe une
restriction de liaison sur le type simpleContent
lorsque les choix ont été créés comme faisant partie de la
commande d'interface d'utilisateur comme illustré dans cette section. L'élément itemset, qui crée des sélections dynamiques
(cf. 9.3.3 L'élément itemset), permet d'obtenir les
choix disponibles à partir d'un modèle XForms ; si on utilise cette structure, la restriction de liaison sur le type simpleContent
ne s'applique plus.
Remarque :
Une limitation touchant les types de données de liste du schéma XML fait que les caractères blancs dans les valeurs de stockage
(l'élément value) sont toujours interprétés comme des séparateurs entre les valeurs de données individuelles. C'est la raison pour
laquelle les auteurs devraient éviter d'employer des caractères blancs dans les valeurs de stockage avec une liste de type simpleContent
.
<item> <value>États-Unis d'Amérique</value> ... </item>
S'il était sélectionné, cet article introduirait non pas un mais deux valeurs de sélection supplémentaires : "États-Unis" et "d'Amérique".
Obligations d'implémentation : L'étiquette de chacun des choix doit être présentée, en autorisant un nombre quelconque de sélections,
ou aucune, le cas échéant. Cette commande de formulaire stocke les valeurs correspondant aux options sélectionnées sous forme d'une liste
de valeurs, séparées par un caractère espace, dans l'emplacement indiqué par l'attribut ref. Les valeurs à stocker sont définies
soit directement comme contenu de l'élément value, soit indirectement par des attributs de liaison sur l'élément value.
Remarquez que le type de donnée lié à cette commande de formulaire peut inclure un espace de valeurs non énumérées, par exemple,
de type xsd:string
, ou l'union d'une énumération et d'un type de donnée non énuméré (ce qu'on appelle une énumération ouverte).
Auquel cas, la commande select peut avoir une déclaration d'attribut selection="open". La commande de formulaire
devrait alors autoriser l'entrée de donnée libre, qui est décrite dans 8.1.2 L'élément input.
La commande de formulaire peut autoriser l'entrée libre de valeurs multiples.
Pour les sélections fermées : si la valeur d'instance initiale correspond à la valeur de stockage de l'un ou de plusieurs des éléments donnés, alors ces éléments sont sélectionnés. S'il n'y pas de correspondance, alors aucun élément n'est sélectionné initialement. Si l'une des valeurs sélectionnées ne correspond pas à un choix avec une valeur de stockage, alors la commande de formulaire doit signaler une condition de débordement d'intervalle.
Pour les sélections ouvertes : si les valeurs d'instances initiales correspondent à la valeur de stockage indiquée par un ou plusieurs
éléments, alors tous les éléments de cette correspondance sont sélectionnés. Si les valeurs d'instance initiales ne correspondent pas à
la valeur de stockage indiquée par l'un ou plusieurs des éléments, alors tous ces éléments non correspondants sont inclus comme valeurs
sélectionnées, comme s'ils provenaient d'une entrée libre. Le texte d'une entrée libre est traité comme pour une commande de formulaire
input 8.1.2 L'élément input, éventuellement en multiplicité.
Quand on utilise des sélections dynamiques avec des valeurs de type complexType
, la sélection ouverte est sans effet.
Indications d'implémentation : Un auxilliaire d'accessibilité pourrait permettre à l'utilisateur de parcourir les choix disponibles et mettre à profit un regroupement des choix dans le balisage pour offrir une meilleure navigation dans les longues listes de choix.
select1Description : Cette commande de formulaire permet à l'utilisateur d'effectuer une seule sélection à partir de plusieurs choix.
Attributs communs : Communs, Communs I.U., Liaison de nœud simple
Attributs spéciaux :
Un attribut optionnel déterminant si une entrée libre est autorisée dans la liste. La valeur implicite est "closed".
Pour une valeur "true", cette commande de formulaire générera d'autres événements xforms-value-changed.
La valeur par défaut de cet attribut est "false".
Exemple :
<select1 ref="my:parfum">
<label>Parfum</label>
<item>
<label>Vanille</label>
<value>v</value>
</item>
<item>
<label>Fraise</label>
<value>f</value>
</item>
<item>
<label>Chocolat</label>
<value>c</value>
</item>
</select1>
Dans l'exemple ci-dessus, la sélection de l'une des options fixera la valeur associée à l'élément value, sur l'élément
sélectionné, dans la donnée d'instance sous-jacente située à l'emplacement glace/parfum.
Un navigateur graphique est susceptible de restituer cette commande de formulaire de l'une des manières suivantes :
appearance="full" |
appearance="compact" |
appearance="minimal" |
|---|---|---|
|
|
![]() |
Restrictions de liaison de donnée : Se lie à tout contenu de type simpleContent
. Il existe une
restriction de liaison sur le type simpleContent
lorsque les choix ont été créés comme faisant partie de la
commande d'interface d'utilisateur comme illustré dans cette section. L'élément itemset, qui crée des sélections dynamiques
(cf. 9.3.3 L'élément itemset), permet d'obtenir les
choix disponibles à partir d'un modèle XForms ; si on utilise cette structure, la restriction de liaison sur le type simpleContent
ne s'applique plus.
Obligations d'implémentation : L'étiquette de chacun des choix doit être présentée, en autorisant à tout instant exactement une seule sélection.
Cette commande de formulaire stocke les valeurs correspondant aux options sélectionnés sous forme d'une liste de valeurs, séparées par un
caractère espace, dans l'emplacement indiqué par l'attribut ref. Les valeurs à stocker sont définies soit directement comme
contenu de l'élément value, soit indirectement par des attributs de liaison sur l'élément value.
Remarquez que le type de donnée lié à cette commande de formulaire peut inclure un espace de valeurs non énumérées, par exemple
le type xsd:string
, ou l'union d'une énumération et d'un type de donnée non énuméré (ce qu'on appelle une énumération ouverte).
Auquel cas, la commande select1 peut avoir une déclaration d'attribut selection="open". La commande de formulaire
devrait alors autoriser l'entrée de donnée libre, laquelle est décrite dans
8.1.2 L'élément input.
Pour les sélections fermées : si la valeur d'instance initiale correspond à la valeur de stockage de l'un des éléments donnés, alors cet élément est sélectionné. S'il n'y pas de correspondance, alors la commande de formulaire doit signaler une condition de débordement d'intervalle.
Pour les sélections ouvertes : si la valeur d'instance initiale correspond à la valeur de stockage indiquée par l'un des éléments,
alors le premier élément de cette correspondance est sélectionné. Sinon la valeur sélectionnée est la valeur lexicale initiale.
Le texte d'une entrée libre est traité comme pour une commande de formulaire
input 8.1.2 L'élément input.
Les interfaces d'utilisateur peuvent choisir de rendre cette commande de formulaire par une liste déroulante ou un
groupe de boutons radios, entre autres possibilités. L'attribut appearance donne une indication pour la restitution susceptible
d'être la plus appropriée, même si une éventuelle information de style (comme une feuille de style CSS) devrait avoir priorité.
choicesCet élément sert à regrouper les choix disponibles dans les commandes de formulaire de sélection. Il offre la même fonctionnalité que
l'élément HTML optgroup.
Attributs communs : Communs
itemCet élément définit la valeur et l'étiquette de stockage pour représenter un élément dans une liste. On le trouve dans les
éléments select1 et select, ou on le regroupe dans un élément choices.
Attributs communs : Communs
valueCet élément offre une valeur de stockage à utiliser lors de la sélection d'un élément item.
Attributs communs : Communs, Liaison de nœud simple (optionnel)
Restriction de liaison de donnée : Toutes les valeurs lexicales doivent être valides conformément au type de donnée lié à la commande de formulaire.
Si un contenu direct et un attribut ref sont tous deux définis, c'est l'attribut ref qui s'appliquera.
Les sous-éléments détaillés ci-dessous offrent la possibilité de joindre des métadonnées aux commandes de formulaire.
Au lieu de fournir de telles métadonnées, par exemple, l'étiquette d'une commande de formulaire comme contenu direct de
l'élément label contenu, on peut désigner ces métadonnées au moyen d'un simple attribut src sur
l'élément en question. Notez qu'on peut exploiter systématiquement cette fonctionnalité pour l'internationalisation des
interfaces d'utilisateur XForms, c'est-à-dire :
En plaçant tous les messages lisibles par les humains dans un fichier de ressource XML séparé ;
En utilisant des adresses URI dans ce paquet de ressources XML à l'intérieur d'éléments label ;
Enfin, une implémentation XForms pourrait utiliser une négociation de contenu pour obtenir le paquet de ressources XML approprié,
par exemple, en fonction des en-têtes accept-language provenant du client, afin de servir à l'interface d'utilisateur les
messages localisés selon les paramètres du client.
filenameLes attributs de liaison de l'élément optionnel filename définissent, dans l'instance de l'élément upload parent,
lors de son activation, l'emplacement où mettre le nom de fichier de la ressource binaire choisie. Pour des raisons de
sécurité, l'élément upload ne doit pas entreprendre d'action initiée par une quelconque valeur du nœud existante.
Attributs communs : Communs, Liaison de nœud simple
Dans l'exemple suivant, l'utilisateur est invité à sélectionner une image. Lors de son activation, l'élément upload inscrit
à l'emplacement courrier/pieceJointe
soit les données binaires de l'image, soit son adresse URI, selon le type déclaré pour
courrier/pieceJointe
. Le nom de fichier, appelons-le moi.jpg
, se place dans le nœud attribut
courrier/pieceJointe@filename
, et le type de média, appelons-le image/jpeg
, dans le nœud attribut
courrier/pieceJointe@mediatype
.
Exemple :
<upload ref="courrier/pieceJointe" mediatype="image/*"> <label>Sélectionnez l'image à joindre</label> <filename ref="@filename"/> <mediatype ref="@mediatype"/> </upload>
mediatypeLes attributs de liaison de l'élément optionnel mediatype définissent, dans l'instance de l'élément upload parent,
lors de son activation, l'emplacement où mettre le type de média de la ressource binaire choisie, si disponible.
Attributs communs : Communs, Liaison de nœud simple
labelCet élément obligatoire appose sur la commande de formulaire qui le contient une étiquette descriptive. En outre, l'étiquette permet à une personne incapable de voir la commande de formulaire d'obtenir une description courte, tout en navigant d'une commande de formulaire à l'autre.
Attributs communs : Communs, Liaison de nœud simple (optionnel), Liaison
Attributs spéciaux :
Un lien vers une étiquette externe. Si la traversée du lien échoue, elle sera traité comme une erreur
(cf. 4.5.3 L'événement xforms-link-error).
L'étiquette indiquée peut résider dans des données d'instance, dans un document distant ou comme texte direct. Si plusieurs sources d'étiquette sont définies dans l'élément en question, l'ordre de préséance est le suivant : les attributs de liaison de nœud simple, les attributs de liaison et le texte direct.
Un auxilliaire d'accessibilité est susceptible de prononcer les métadonnées encapsulées dans l'élément lorsque la commande de formulaire qui le contient reçoit le focus.
helpL'élément optionnel help offre un moyen commode de joindre des informations d'assistance à une commande de formulaire. Ce qui
équivaut à la déclaration : <message level="modeless" ev:event="xforms-help" ev:propagate="stop">.
Attributs communs : Communs, Liaison de nœud simple (optionnel), Liaison
Attributs spéciaux :
Un lien vers une information d'assistance externe. Si la traversée du lien échoue, elle est traitée comme une erreur
(cf. 4.5.3 L'élément xforms-link-error).
Le message indiqué peut résider dans des données d'instance, dans un document distant ou comme texte direct. Si plusieurs sources de message sont définies dans l'élément en question, l'ordre de préséance est le suivant : les attributs de liaison de nœud simple, les attributs de liaison et le texte direct.
On trouvera un exemple d'utilisation de cet élément dans 10.1.12 L'élément message.
hintL'élément optionnel hint offre un moyen commode de joindre des indications à une commande de formulaire. Ce qui équivaut à
un gestionnaire d'événement xforms-hint répondant par <message level="ephemeral">.
Attributs communs : Communs, Liaison de nœud simple (optionnel), Liaison
Attributs spéciaux :
Un lien vers une indication externe. Si la traversée du lien échoue, elle est traitée comme une erreur
(cf. 4.5.3 L'élément xforms-link-error).
Le message indiqué peut résider dans des données d'instance, dans un document distant ou comme texte direct. Si plusieurs sources de message sont définies dans l'élément en question, l'ordre de préséance est le suivant : les attributs de liaison de nœud simple, les attributs de liaison, le texte direct.
On trouvera un exemple d'utilisation de cet élément dans 10.1.12 L'élément message.
alertL'élément optionnel alert offre un moyen commode de joindre des informations d'alerte ou d'erreur à une commande de formulaire.
Le rendu de cet élément est défini par l'implémentation, et l'attribut level n'a pas de valeur implicite telles que
"modal" ou "ephemeral" pour le message affiché.
Attributs communs : Communs, Liaison de nœud simple (optionnel), Liaison
Attributs spéciaux :
Un lien vers une alerte externe. Si la traversée du lien échoue, elle est traitée comme une erreur
(cf. 4.5.3 L'élément xforms-link-error).
Le message indiqué peut résider dans des données d'instance, dans un document distant ou comme texte directe. Si plusieurs sources de message sont définies dans l'élément en question, l'ordre de préséance est le suivant : les attributs de liaison de nœud simple, les attributs de liaison et le texte direct. Voir F XForms et le style pour des exemples de présentation à l'utilisateur.
| Table des matières | Haut de page |