You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An instance node is valid if and only if the following conditions hold:
the constraint model item property is true
the value is non-empty if the required model item property is true
the node satisfies all applicable XML schema definitions (including those associated by the type model item property, by an external or an inline schema, or by xsi:type)
@constraint et @required sont en fait indépendants l'un de l'autre, et il ne suffit donc pas de préciser @required='false()' pour zapper la contrainte et autoriser une valeur vide, ce n'est pas l'approche retenue par Xforms.
D'autre part, les datatypes ne prennent pas en compte les valeurs nulles. Dès lors que nous définissons, par exemple, @type='xs:date' pour un champ date, alors le champ doit être renseigné et ne peut être laissé vide pour être valide.
Pour pallier à ce problème, Xforms propose des datatypes additionnels sous son espace de nom qui le permettent.
Ainsi, pour les cas simples (avec un datatype, mais non requis et sans contrainte) il suffit d'utiliser un datatype Xforms.
Pour les cas plus complexes (avec un datatype + contrainte), il faut en plus préciser que la valeur peut être nulle dans la contrainte, même si l'on utilise un datatype Xforms.
Pour les dates par exemple, il ne fallait pas écrire : <xf:bind id="sessionsWhen" nodeset="xpr:description/xpr:sessions/xpr:date/@when" type="xs:date" constraint="(. >= '1690-01-01') and (. <= '1791-01-01')"/>
mais : <xf:bind id="sessionsWhen" nodeset="xpr:description/xpr:sessions/xpr:date/@when" type="xf:date" constraint="(.='') or ((. >= '1690-01-01') and (. <= '1791-01-01'))"/>
Les cas requis ne posent vraisemblablement pas de problème.
Comme je le craignais, il y a bien un problème avec les contrôles.
doivent être renseigner pour enregistrer le formulaire.
Il faudrait en attendant de régler le problème, désactiver les contrôles.
The text was updated successfully, but these errors were encountered: