W3C

Liste des errata de la recommandation XForms 1.0

Cette version :
http://www.w3.org/2003/10/REC-xforms-10-20031014-errata
Dernière modification :
$Date: 2005/07/07 13:13:37 $
Ce document répertorie les erreurs connues dans la recommandation XForms 1.0 :
http://www.w3.org/TR/2003/REC-xforms-20031014/
Rédacteurs :
John Boyer, PureEdge Solutions Inc.
Daniel Vogelheim, Sun Microsystems
David Landwehr, Novell

À propos de la recommandation XForms 1.0

La recommandation XForms 1.0 a été produite par le groupe de travail XForms du W3C sous l'égide de l'activité domaine des interactions du W3C.

Ce document répertorie les erreurs connues dans la recommandation XForms 1.0. Ces erreurs sont rangées par section et chaque entrée comporte les renseignements suivants :

Veuillez envoyer les remarques au sujet de ce document à la liste de diffusion publique www-forms-editor@w3.org. Les archives de cette liste sont disponibles en ligne.

Table des matières


1 Section 3

1.1 E69a : Remplacement d'instance (section 3.3)

Ajouter instance à la liste d'attributs de submission.

L'usage prévu du remplacement d'instance n'est pas pratiquable car les résultats remplacent toujours les données de soumission. Par exemple, les requêtes à suivre ne sont pas réalisables.

Dans le tableau des attributs et dans les modèles de contenu minimaux des éléments du module Noyau de XForms, ajouter ", instance (xsd:IDREF)" (après la définition de l'attribut replace).

Voir également :

1.5 E69b : Remplacement d'instance (section 3.3.3)
2.10 E69c : Remplacement d'instance (section 4.5.1)
8.4 E69d : Remplacement d'instance (section 11.1)

1.2 E15 : Préserver le modèle de données XPath dans les instances (section 3.3.2)

Préciser que tous les éléments de données significatifs pour les modèles de données XPath le sont aussi pour les instances XForms. Ajouter l'explication :

Remarque :

Toutes les données significatives pour le modèle de données XPath doivent être préservées au cours du traitement et de la soumission, y compris les instructions de traitement, les nœuds de commentaire et tous les caractères blancs.

1.3 E33 : Que se passe-t-il quand une instance en ligne n'est pas un document XML valide ? (section 3.3.2)

Ajouté l'énoncé de spécification suivant (avant la remarque) :

Si la création de la copie détachée des données d'instance en ligne échouait à cause d'une erreur XML, alors le traitement devrait s'interrompre avec une exception xforms-link-exception. Cela peut se produire, par exemple, si le contenu en ligne se compose de deux nœuds d'élément, ce qui aurait impliqué la création d'un document XML avec deux éléments document.

Remarque :

Dans XForms 1.1, un nouvel événement d'exception sera généré.

1.4 E3 : Le traitement de base XML des adresses URL de soumission (section 3.3.3)

L'énoncé courant de la spécification est le suivant :
action

Une adresse URI obligatoire à laquelle soumettre les données d'instance.

Ajouter l'énoncé suivant (tiré de la section 3.2.2 Les attributs de liaison) :

Le comportement des adresses URI relatives dans les liens est déterminé par le langage hôte, même si un traitement [XML Base] est fortement recommandé.

1.5 E69b : Remplacement d'instance (section 3.3.3)

Ajouter à la liste des attributs spéciaux de soumission (immédiatement après replace) :
instance

Attribut optionnel indiquant l'instance à remplacer lorsque l'attribut replace vaut "instance". Si l'attribut est absent, alors l'instance implicite est celle qui contient les données de soumission. Il se produit une exception xforms-binding-exception si cet attribut n'indique pas une instance du même modèle que celui de la soumission.

Voir également :

1.1 E69a : Remplacement d'instance (section 3.3)
2.10 E69c : Remplacement d'instance (section 4.5.1)
8.4 E69d : Remplacement d'instance (section 11.1)

2 Section 4

2.1 E2 : Amorçage du processeur XForms (section 4.2, 4.2.1)

L'énoncé de spécification courant (section 4.2) :

Cette section définit les divers états de la phase d'initialisation. Le processeur lance l'initialisation en distribuant un événement xforms-model-construct à chaque modèle XForms dans le document conteneur.

L'énoncé de spécification modifié devient (section 4.2) :

Cette section définit les divers états de la phase d'initialisation. Le processeur lance l'initialisation en distribuant un événement xforms-model-construct à chaque modèle XForms dans le document conteneur. L'initialisation proprement dite du processeur XForms dépend de la mise en œuvre.

L'énoncé de spécification courant (section 4.2.1) :

Distribué par le processeur du document conteneur afin d'amorcer l'initialisation du processeur XForms.

L'énoncé de spécification modifié devient (section 4.2.1) :

Distribué à chaque modèle XForms par le processeur XForms.

2.2 E8b : Le placement du focus sur une structure de répétition fixera le focus sur l'élément de répétition repéré par l'index de répétition (section 4.3.2)

L'énoncé de spécification courant :

L'action implicite de cet événement produit le placement du focus sur la commande de formulaire cible, si cette commande est capable de recevoir le focus.

L'énoncé de spécification modifié :

L'action implicite de cet événement produit le placement du focus sur la commande de formulaire cible, si cette commande est capable de recevoir le focus. Le placement du focus sur une structure de répétition fixera le focus sur l'élément de répétition repéré par l'index de répétition.

Voir également :

7.3 E8a : Les commandes des langages hôtes peuvent recevoir le focus par un événement xforms-focus (section 10.1.7)

2.3 E70a : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-refresh section 4.3.4)

L'énoncé de spécification courant :

L'action implicite de cet événement est la suivante : l'interface d'utilisateur reflète l'état du modèle, ce qui veut dire que toutes les commandes de formulaire reflètent les données d'instance correspondantes auxquelles elles sont liées :

  • sa valeur courante ;

  • sa validité ;

  • si elle est obligatoire (required), en lecture seule (readonly) ou pertinente (relevant).

L'énoncé de spécification modifié :

L'action implicite de cet événement est la suivante :

  1. Toutes les liaisons de l'interface d'utilisateur devraient être réévaluées si nécessaire ;

  2. Un nœud peut changer du fait d'une entrée d'utilisateur confirmée dans une commande de formulaire par un événement xforms-recalculate (section 4.3.6) ou par une action (section 10.1.9). Si la valeur d'un nœud de données d'instance a changé, alors le nœud doit être marqué afin de distribuer un événement xforms-value-changed ;

  3. Si l'événement xforms-value-changed est marqué pour une distribution, alors tous les événements de notification appropriés de propriétés d'élément du modèle doivent l'être également (c'est-à-dire, xforms-optional ou xforms-required, xforms-readwrite ou xforms-readonly, et xforms-enabled ou xforms-disabled) ;

  4. Pour chaque commande de formulaire, chaque événement de notification marqué pour distribution sur le nœud lié doivent être distribués (xforms-value-changed, xforms-valid, xforms-invalid, xforms-optional, xforms-required, xforms-readwrite, xforms-readonly et xforms-enabled, xforms-disabled). Les événements de notification xforms-out-of-range ou xforms-in-range doivent aussi être distribués selon le cas. Cette spécification ne définit aucun ordre pour les événements ;

  5. l'interface d'utilisateur reflète l'état du modèle, ce qui veut dire que toutes les commandes de formulaire reflètent les données d'instance correspondantes auxquelles elles sont liées :

    • sa valeur courante ;

    • sa validité ;

    • si elle est obligatoire (required), en lecture seule (readonly) ou pertinente (relevant).

Voir également :

2.4 E70b : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateurs (xforms-revalidate section 4.3.5)
2.5 E70c : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-recalculate section 4.3.6)
2.7 E70d : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.4)
2.11 E70e : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.6.7)

2.4 E70b : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-revalidate section 4.3.5)

L'énoncé de spécification courant :

L'action implicite de cet événement est la suivante :

La gestion minimale de cet événement doit satisfaire aux conditions suivantes :

  1. Tous les nœuds de donnée d'instance dans tous les éléments instance de l'élément model sont vérifiés par rapport à un schéma XML indiqué ;

  2. Tous les nœuds de donnée d'instance dans tous les éléments instance de l'élément model sont vérifiés par rapport aux éventuelles propriétés d'élément de modèle liées définissant des contraintes de valeur, c'est-à-dire required, constraint (cf. 6 Les propriétés d'élément de modèle) ;

  3. Les événements de notification appropriés (cf. 4.4.6 L'événement xforms-valid, 4.4.7 L'événement xforms-invalid, 4.4.10 L'événement xforms-readonly, 4.4.11 L'événement xforms-readwrite, 4.4.12 L'événement xforms-required, 4.4.13 L'événement xforms-optional, 4.4.14 L'événement xforms-enabled, 4.4.15 L'événement xforms-disabled) sont distribués aux commandes de formulaire dont la propriété d'élément de modèle correspondante est évaluée à une valeur différente de celle au début du traitement de l'événement en question.

Remarque :

Avant la distribution du gestionnaire d'événement xforms-ready, aucune commande de formulaire n'est liée à des données d'instance, de sorte que l'événement xforms-valid et les autres événements de notification ne sont pas distribués.

L'énoncé de spécification modifié :

Un nœud d'instance est valide si, et seulement si, les conditions suivantes sont vérifiées :

  • La propriété d'élément de modèle constraint vaut "true" ;

  • Le nœud satisfait aux définitions de schéma XML applicables (y compris celles associées par la propriété d'élément de modèle type) ;

Remarque :

Un nœud satisfaisant aux conditions précédentes est valide même s'il est obligatoire et qu'il est vide.

L'action implicite de cet événement est la suivante :

La validité de tous les nœuds de donnée d'instance dans tous les éléments instance de l'élément model est vérifiée conformément à la définition précédente. Si la validité d'un nœud change, alors ce nœud est marqué pour distribution de l'événement de notification approprié (xforms-valid ou xforms-invalid) aux commandes de formulaire liées au cours de l'événement xforms-refresh comme suit :

  • Si la qualité du nœud change d'invalide à valide, alors le nœud est marqué pour distribution de l'événement xforms-valid ;

  • Si la qualité du nœud change de valide à invalide, alors le nœud est marqué pour distribution de l'événement xforms-invalid ;

Supprimer l'énoncé suivant de la spécification :

Remarque :

Avant la distribution du gestionnaire d'événement xforms-ready, aucune commande de formulaire n'est liée à des données d'instance, de sorte que l'événement xforms-valid et les autres événements de notification ne sont pas distribués.

Voir également :

2.3 E70a : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-refresh section 4.3.4)
2.5 E70c : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-recalculate section 4.3.6)
2.7 E70d : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.4)
2.11 E70e : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.6.7)

2.5 E70c : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-recalculate section 4.3.6)

L'énoncé de spécification courant :

Les valeurs de tous les éléments de donnée d'instance correspondent, le cas échéant, avec les contraintes calculate qui leur sont associées. Toutes les propriétés d'élément de modèle pouvant contenir des expressions calculées sont résolues.

L'énoncé de spécification modifié :

Les valeurs de tous les éléments de donnée d'instance correspondent, le cas échéant, avec les contraintes calculate qui leur sont associées. Toutes les propriétés d'élément de modèle pouvant contenir des expressions calculées sont résolues. Outre les changements d'autres valeurs de nœud qui induiront des notifications xforms-value-changed au cours d'un événement xforms-refresh, les propriétés d'élément de modèle qui changent sont marquées afin de permettre aux événements xforms-revalidate et xforms-refresh de mieux déterminer les événements de notification à distribuer.

  • Si la propriété d'élément de modèle required change, on devra alors marquer pour distribution soit l'événement xforms-required si la propriété required vaut "true", soit l'événement xforms-optional si celle-ci vaut "false" ;

  • Si la propriété d'élément de modèle readonly change, on devra alors marquer pour distribution soit l'événement xforms-readonly si la propriété readonly vaut "true", soit l'événement xforms-readwrite si celle-ci vaut "false" ;

  • Si la propriété d'élément de modèle relevant change, on devra alors marquer pour distribution soit l'événement xforms-enabled si la propriété relevant vaut "true", soit l'événement xforms-disabled si celle-ci vaut "false".

Voir également :

2.3 E70a : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-refresh section 4.3.4)
2.4 E70b : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-revalidate section 4.3.5)
2.7 E70d : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.4)
2.11 E70e : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.6.7)

2.6 E23 : Contexte d'évaluation du recalcul (section 4.3.6)

L'énoncé de spécification courant :

Quand il s'agit de réitérer un calcul, l'expression XPath est évaluée dans le contexte du nœud d'instance dont la valeur, ou la propriété d'élément de modèle, est associée au calcul.

L'énoncé de spécification modifié :

Quand il s'agit de recalculer une propriété d'élément de modèle, l'expression XPath est évaluée. Le contexte d'évaluation est déterminé à partir de l'expression de liaison du modèle qui aura appliqué la propriété d'élément de modèle, comme défini pour les expressions calculées dans la section 7.4 Le contexte d'évaluation.

2.7 E70d : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.4)

L'énoncé de spécification courant, dans la section 4.4.2 (xforms-value-changed) :

Distribué en réponse au fait qu'un changement confirmé a eu lieu sur un nœud de donnée d'instance lié à une commande de formulaire, comme lorsque l'utilisateur sort de la commande de formulaire.

Changer l'énoncé de spécification :

Distribué en réponse à un changement sur un nœud de données d'instance lié à une commande de formulaire.

Ajouter cet énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci en raison d'un changement.

L'énoncé de spécification courant, dans la section 4.4.6 (xforms-valid) :

Cet événement est distribué dès lors que la valeur du nœud de donnée d'instance lié change et, en outre, lorsque le nœud de donnée d'instance lié devient indirectement valide, parce que la valeur de la propriété d'élément de modèle constraint aura été évaluée à "true".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-revalidate (section 4.3.5).

L'énoncé de spécification courant, dans la section 4.4.7 (xforms-invalid) :

Cet événement est distribué dès lors que la valeur du nœud de donnée d'instance lié change et, en outre, lorsque le nœud de donnée d'instance lié devient indirectement invalide, parce que la valeur de la propriété d'élément de modèle constraint aura été évaluée à "false".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-revalidate (section 4.3.5).

L'énoncé de spécification courant, dans la section 4.4.10 (xforms-readonly) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change, et, en outre, lorsque le nœud de données d'instance lié devient indirectement en lecture seule, parce que la valeur de la propriété d'élément de modèle readonly aura été évaluée à "true".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans la section 4.4.11 (xforms-readwrite) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change et, en outre, lorsque le nœud de données d'instance lié devient indirectement en lecture-écriture, parce que la propriété d'élément de modèle readonly aura été évaluée à "false".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans la section 4.4.12 (xforms-required) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change et, en outre, lorsque le nœud de données d'instance lié devient indirectement obligatoire, parce que la propriété d'élément de modèle required aura été évaluée à "true".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans la section 4.4.13 (xforms-optional) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change et, en outre, lorsque le nœud de données d'instance lié devient indirectement optionnel, parce que la propriété d'élément de modèle required aura été évaluée à "false".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans la section 4.4.14 (xforms-enabled) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change et, en outre, lorsque le nœud de données d'instance lié est indirectement activé, parce que la propriété d'élément de modèle relevant aura été évaluée à "true".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans la section 4.4.15 (xforms-disabled) :

Cet événement est distribué dès lors que la valeur du nœud de données d'instance change et, en outre, lorsque le nœud de données d'instance lié est indirectement désactivé, parce que la propriété d'élément de modèle relevant aura été évaluée à "false".

Changer l'énoncé de spécification :

Cet événement est distribué, au cours d'un événement xforms-refresh, si le nœud de données d'instance lié a été marqué pour distribution de celui-ci par un événement xforms-recalculate (section 4.3.6) ou xforms-refresh (section 4.3.4).

L'énoncé de spécification courant, dans chacune des sections 4.4.6 (xforms-valid), 4.4.7 (xforms-invalid), 4.4.10 (xforms-readonly), 4.4.11 (xforms-readwrite), 4.4.12 (xforms-required), 4.4.13 (xforms-optional), 4.4.14 (xforms-enabled) et 4.4.15 (xforms-disabled) :

Distribué en réponse au fait qu'un nœud de donnée d'instance devienne [...].

Changer l'énoncé de spécification :

Distribué en réponse au fait qu'un nœud de données d'instance change et soit, ou devienne [...].

Voir également :

2.3 E70a : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-refresh section 4.3.4)
2.4 E70b : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-revalidate section 4.3.5)
2.5 E70c : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-recalculate section 4.3.6)
2.11 E70e : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.6.7)

2.8 E28 : Les événements xforms-select et xforms-deselect (section 4.4.3)

La cible des événements devrait inclure l'élément itemset. L'énoncé de spécification courant :

Cible : item ou case

L'énoncé de spécification modifié :

Cible : item, itemset ou case

2.9 E10 : xforms-submit-error est envoyé à xforms:submission (section 4.4.19)

L'énoncé de spécification courant :

Cible : model

L'énoncé de spécification modifié :

Cible : submission

Correction de la présentation de l'événement (4.1.1) :

L'événement xforms-submit-error est envoyé à l'élément submission.

2.10 E69c : Remplacement d'instance (section 4.5.1)

Ajouter à la liste des causes d'un événement xforms-binding-exception ;:

, ou de l'attribut instance d'un élément submission qui échoue à pointer vers un élément instance dans le même élément model que celui de l'élément submission.

Voir également :

1.1 E69a : Remplacement d'instance (section 3.3)
1.5 E69b : Remplacement d'instance (section 3.3.3)
8.4 E69d : Remplacement d'instance (section 11.1)

2.11 E70e : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.6.7)

L'énoncé de spécification courant :

Séquence : le changement de valeur avec changement de focus

  1. xforms-recalculate

  2. xforms-revalidate

  3. [n] xforms-valid/xforms-invalid ; xforms-enabled/xforms-disabled ; xforms-optional/xforms-required ; xforms-readonly/xforms-readwrite

  4. xforms-value-changed

  5. DOMFocusOut

  6. DOMFocusIn

  7. xforms-refresh

La réévaluation des expressions de liaison doit intervenir avant l'étape 3 ci-dessus.

L'énoncé de spécification modifié :

Séquence : le changement de valeur

  1. xforms-recalculate

  2. xforms-revalidate

  3. L'événement xforms-refresh opère la réévaluation des expressions de liaison de l'interface d'utilisateur et distribue ces événements conformément aux changements des valeurs, des propriétés d'élément de modèle et des validités :

    • [n] xforms-value-changed

    • [n] xforms-valid ou xforms-invalid

    • [n] xforms-enabled ou xforms-disabled

    • [n] xforms-optional ou xforms-required

    • [n] xforms-readonly ou xforms-readwrite

    • [n] xforms-out-of-range ou xforms-in-range

    (L'ordre dans lequel ces événements sont distribués n'est pas défini).
  4. effectue d'autres mises à jours différées si nécessaire.

Voir également :

2.3 E70a : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-refresh section 4.3.4)
2.4 E70b : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-revalidate section 4.3.5)
2.5 E70c : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (xforms-recalculate section 4.3.6)
2.7 E70d : Recalcul, revalidation, rafraîchissement et événements de l'interface d'utilisateur (section 4.4)

3 Section 6

3.1 E64 : Les types de données prédéfinis (section 6.1.1)

L'énoncé de spécification courant :

Valeurs légales : toute valeur de type xsd:QName représentant une définition de type de données dans un schéma XML.

L'énoncé de spécification modifié :

Valeurs légales : toute valeur de type xsd:QName représentant une définition de type de donnée.

3.2 E66a : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 6.1.4)

L'énoncé de spécification courant :

La propriété d'élément de modèle relevant fournit à l'interface d'utilisateur XForms des indications concernant la visibilité, le focus et l'ordre de navigation. En général, lorsqu'elle a la valeur "true", les commandes de formulaires associées devraient être rendues visibles. Inversement, pour la valeur "false", les commandes de formulaire associées devraient être rendues indisponibles, retirées de l'ordre de navigation et ne pas pouvoir recevoir le focus.

L'énoncé de spécification modifié :

La propriété d'élément de modèle relevant fournit à l'interface d'utilisateur XForms des indications concernant la visibilité, le focus et l'ordre de navigation. En général, lorsqu'elle a la valeur "true", les commandes de formulaires associées devraient être rendues visibles. Inversement, pour la valeur "false", les commandes de formulaire associées (et tous les sous-éléments) et les éléments group et switch (et leurs contenus) devraient être rendus indisponibles, retirés de l'ordre de navigation et ne pas pouvoir recevoir le focus.

Remarque :

Une commande de formulaire, un élément group ou un élément switch doivent exprimer une seule liaison de nœud pour être associés à un nœud d'instance.

Voir également :

6.1 E66b : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.1.1)
6.2 E66c : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.2.1)
6.6 E66d : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.1)
6.8 E66e : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.2)

3.3 E60 : Exemple p3ptype (section 6.1.7)

L'énoncé de spécification courant :
Exemple : Joindre une contrainte de type en utilisant une liaison
 ...
 <bind type="my:chaineNonVide" nodeset="my:prenom"
      p3ptype="user.personname.given"/>
L'énoncé de spécification modifié :
Exemple : Joindre une contrainte de type en utilisant une liaison
 ...
  <bind type="my:chaineNonVide" nodeset="my:prenom"
      p3ptype="user.name.given"/>

4 Section 7

4.1 E31a : Étiquettes obligatoires sur les éléments input (section 7.4)

L'énoncé de spécification courant :
<select1 ref="@attr" ... />
L'énoncé de spécification modifié :
<select1 ref="@attr" ... >
  <label>...</label>
</select1>

Voir également :

6.7 E31b : Étiquettes obligatoires sur les éléments input (section 9.3.1)

4.2 E67a : Permettre les expressions XPath dans les liaisons (section 7.4)

Supprimer la phrase suivante :

(au moyen de la partie "path" de XPath)

Voir également :

9.1 E67b : Permettre les expressions XPath dans les liaisons (section 13)

4.3 E19 : boolean-from-string() ne génère pas d'exception (section 7.7.1)

L'énoncé de spécification courant :

Si la chaîne paramètre ne correspond à aucune de celles mentionnées ci-dessus, dans une comparaison insensible à la casse, alors le traitement s'interrompt avec une exception (cf. 4.5.4 L'événement xforms-compute-exception).

L'énoncé de spécification modifié :

Si la chaîne paramètre correspond à l'une des précédentes, dans une comparaison insensible à la casse, la valeur de retour sera "false".

4.4 E55 : Erreur pour avg() (section 7.8.1)

L'énoncé de spécification courant :

La fonction avg renvoie la moyenne arithmétique du résultat de la conversion des valeurs de chaîne de chaque nœud de l'argument ensemble de nœuds en un nombre (type number). On obtient la somme en se servant de la fonction sum() ; on divise ensuite celle-ci, avec la fonction div(), par la valeur calculée au moyen de la fonction count(). Si son paramètre est un ensemble de nœuds vide, alors la fonction renvoie la valeur "NaN".

L'énoncé de spécification modifié :

La fonction avg renvoie la moyenne arithmétique du résultat de la conversion des valeurs de chaîne de chaque nœud de l'argument ensemble de nœuds en un nombre (type number). On obtient la somme en se servant de la fonction sum() ; on divise ensuite celle-ci, avec la fonction div(), par la valeur calculée au moyen de la fonction count(). Si son paramètre est un ensemble de nœuds vide ou si un nœud quelconque est évalué à "Nan", alors la fonction renvoie la valeur "NaN".

4.5 E63 : index() ne génère pas d'exception (section 7.8.5)

L'énoncé de spécification courant :

Si l'argument fourni n'identifie aucun élément repeat, alors le traitement s'interrompt avec une exception (cf. 4.5.4 L'événement"xforms-help").

L'énoncé de spécification modifié :

Si l'argument fourni n'identifie aucun élément repeat, la fonction renvoie la valeur "NaN".

4.6 E30a : La fonction days-from-date() (section 7.10.2)

L'énoncé de spécification courant :

Si le paramètre chaîne représente une valeur lexicale légale de type xsd:date ou xsd:dateTime, alors la valeur renvoyée est égale à la différence en nombre de jours entre la date fournie et la valeur "1970-01-01". Les composants des heures, minutes et secondes sont ignorés après normalisation. Tout autre paramètre en entrée renverra la valeur "NaN".

L'énoncé de spécification modifié :

Si le paramètre chaîne représente une valeur lexicale légale de type xsd:date ou xsd:dateTime, alors la valeur renvoyée est égale à la différence en nombre de jours entre la date fournie (normalisée au temps universel coordonné UTC) et la valeur "1970-01-01". Les composants des heures, minutes et secondes sont ignorés après normalisation. Tout autre paramètre en entrée renverra la valeur "NaN".

Voir également :

4.7 E30b : La fonction seconds-from-dateTime() (section 7.10.3)

4.7 E30b : La fonction seconds-from-dateTime() (section 7.10.3)

L'énoncé de spécification courant :

Si le paramètre chaîne représente une valeur lexicale légale de type xsd:dateTime, alors la valeur renvoyée est égale à la différence en nombre de secondes entre la valeur de type dateTime fournie et la valeur "1970-01-01T00:00:00Z". Si aucun fuseau horaire n'est indiqué, alors la valeur par défaut fournie par la mise en œuvre sera utilisée. Tout autre paramètre de chaîne en entrée renverra la valeur "NaN".

L'énoncé de spécification modifié :

Si le paramètre chaîne représente une valeur lexicale légale de type xsd:dateTime, alors la valeur renvoyée est égale à la différence en nombre de secondes entre la valeur de type dateTime fournie (normalisée au temps universel coordonné UTC) et la valeur "1970-01-01T00:00:00Z". Si aucun fuseau horaire n'est indiqué, il s'agit alors du temps universel coordonné UTC. Tout autre paramètre de chaîne en entrée renverra la valeur "NaN".

Voir également :

4.6 E30a : La fonction days-from-date() (section 7.10.2)

4.8 E14 : Pas de fuseau horaire dans la fonction seconds() (section 7.10.4)

L'énoncé de spécification courant :

Le signe du résultat correspondra à celui de la durée. Si aucun fuseau horaire n'est indiqué, alors la valeur par défaut de la mise en œuvre sera utilisée. Les composants des années et des mois, si présents, sont ignorés. Tout autre paramètre en entrée renverra la valeur "NaN".

L'énoncé de spécification modifié :

Le signe du résultat correspondra à celui de la durée. Les composants des années et des mois, si présents, sont ignorés. Tout autre paramètre en entrée renverra la valeur "NaN".

5 Section 8

5.1 E44 : @appearance est optionnel mais n'a pas de valeur implicite (section 8.1)

L'énoncé de spécification courant :
appearance

Un attribut optionnel qui définit une indication de l'apparence.

L'énoncé de spécification modifié :
appearance

Un attribut optionnel qui définit une indication de l'apparence. Si absent, l'agent utilisateur est libre de choisir la restitution qui convient.

5.2 E0 : Contexte d'évaluation de l'élément output (section 8.1.5)

L'énoncé de spécification courant :
value

Une expression XPath à évaluer. Le résultat de l'évaluation est restitué 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.

L'énoncé de spécification modifié :
value

Une expression XPath à évaluer. 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.

5.3 E38 : [coquille] Guillemet double manquant dans l'exemple (section 8.3.4)

L'énoncé de spécification courant :
  <message level="modeless" ev:event="xforms-help" ev:propagate="stop>
L'énoncé de spécification modifié :
  <message level="modeless" ev:event="xforms-help" ev:propagate="stop">

6 Section 9

6.1 E66b : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.1.1)

L'énoncé de spécification courant :

L'élément group sert de conteneur pour définir une hiérarchie de commandes de formulaire. Les groupes peuvent s'imbriquer pour créer des hiérarchies complexes. Les propriétés d'élément de modèle qui s'appliquent aux commandes de formulaire s'appliquent également à l'élément group, et elles ont priorité sur celles appliquées aux membres individuels du groupe.

Attributs communs : Communs, Communs I.U., Liaison de nœud simple (optionnel)

Remarque :

Quand aucune propriété d'élément de modèle ne s'applique à l'expression de liaison de l'élément group, on peut l'assimiler à une commodité de création pour les expressions XPath relatives utilisées par les commandes de formulaire au sein du groupe.

Quand des propriétés d'élément de modèle s'appliquent, alors elles concernent toutes les commandes de formulaire dans l'élément group. Cela signifie, par exemple, que si un groupe est lié à un nœud de données d'instance non pertinent, toutes les commandes de formulaire qui sont sous-éléments seront également traitées comme non pertinentes.

L'énoncé de spécification modifié :

L'élément group sert de conteneur pour définir une hiérarchie de commandes de formulaire. Les groupes peuvent s'imbriquer pour créer des hiérarchies complexes.Un groupe est considéré non pertinent si, et seulement si, la liaison de nœud simple se résoud en un ensemble de nœuds vide ou en un nœud non pertinent.

Attributs communs : Communs, Communs I.U., Liaison de nœud simple (optionnel)

Remarque :

Si un élément group n'est pas pertinent, alors la démarche de restitution employée pour indiquer la non-pertinence s'applique au contenu entier du groupe.

Voir également :

3.2 E66a : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 6.1.4)
6.2 E66c : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.2.1)
6.6 E66d : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.1)
6.8 E66e : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.2)

6.2 E66c : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.2.1)

L'énoncé de spécification courant :

Cet élément contient un ou plusieurs éléments case dont l'un est restitué à un moment donné.

L'énoncé de spécification modifié :

Cet élément contient un ou plusieurs éléments case dont l'un est restitué à un moment donné. La non-pertinence d'un élément switch est déterminée comme pour l'élément group et s'applique de même au contenu entier.

Voir également :

3.2 E66a : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 6.1.4)
6.1 E66b : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.1.1)
6.6 E66d : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.1)
6.8 E66e : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.2)

6.3 E25b : L'élément case : changer les états plutôt que les attributs (section 9.2.2)

L'énoncé de spécification courant :

Cet élément englobe un balisage à restituer conditionnellement. L'attribut selected qui détermine l'état sélectionné peut se manipuler par programme via le DOM, ou de manière déclarative via l'action XForms toggle.

L'énoncé de spécification modifié :

Cet élément englobe un balisage à restituer conditionnellement. L'attribut selected détermine l'état sélectionné initial.

Voir également :

6.4 E25a : L'élément toggle : changer les états plutôt que les attributs (section 9.2.3)

6.4 E25a : L'élément toggle : changer les états plutôt que les attributs (section 9.2.3)

L'énoncé de spécification courant :

Cette action ajuste tous les attributs selected sur les éléments case affectés afin de refléter le nouvel état, et opère ensuite ce qui suit :

L'énoncé de spécification modifié :

Cette action ajuste tous les états sélectionnés (pas les valeurs d'attribut) sur les éléments case affectés afin de refléter le nouvel état de l'élément switch contenant l'élément case identifié, et opère ensuite ce qui suit :

Voir également :

6.3 E25b : L'élément case : changer les états plutôt que les attributs (section 9.2.2)

6.5 E51 : Contenu de l'attribut case dans l'action toggle (section 9.2.3)

L'énoncé de spécification courant :

Une référence obligatoire à une section case dans la structure conditionnelle.

L'énoncé de spécification modifié :

Une référence obligatoire à un élément case.

6.6 E66d : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.1)

L'énoncé de spécification courant :
Exemple : Répétition déroulée
<!-- répétition déroulée -->
  <input ref="/cart/items/item[1]" .../><html:br/>
  <input ref="/cart/items/item[2]" .../><html:br/>
  <input ref="/cart/items/item[3]" .../><html:br/>
  <input ref="/cart/items/item[4]" .../><html:br/>
L'énoncé de spécification modifié :
Exemple : Répétition déroulée
<!-- répétition déroulée -->
  <group ref="/cart/items/item[1]"><input ref="." .../><html:br/></group>
  <group ref="/cart/items/item[2]"><input ref="." .../><html:br/></group>
  <group ref="/cart/items/item[3]"><input ref="." .../><html:br/></group>
  <group ref="/cart/items/item[4]"><input ref="." .../><html:br/></group>

Voir également :

3.2 E66a : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 6.1.4)
6.1 E66b : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.1.1)
6.2 E66c : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.2.1)
6.8 E66e : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.2)

6.7 E31b : Étiquettes obligatoires sur les éléments input (section 9.3.1)

L'énoncé de spécification courant :
<repeat nodeset="/cart/items/item">
  <input ref="." ... /><html:br/>
</repeat>
L'énoncé de spécification modifié :
<repeat nodeset="/cart/items/item">
  <input ref="." ...>
     <label>...</label>
  </input>
  <html:br/>
</repeat>

Voir également :

4.1 E31a : Étiquettes obligatoires sur les éléments input (section 7.4)

6.8 E66e : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.2)

L'énoncé de spécification courant :
<repeat ...>
  ...
</repeat>

... équivaut à :

<repeat ...>
  <group>...</group>
</repeat>

... qui équivaut à :

<group repeat-...>
  ...
</group>
L'énoncé de spécification modifié :
<repeat ...>
  ...
</repeat>

... équivaut à :

<repeat ...>
  <group ref=".">...</group>
</repeat>

... qui équivaut à :

<group repeat-...>
  ...
</group>

Remarque :

Une conséquence de ces équivalences est que la liaison de nœud simple exprimée sur le groupe implique une applicabilité de la non-pertinence.

Voir également :

3.2 E66a : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 6.1.4)
6.1 E66b : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.1.1)
6.2 E66c : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.2.1)
6.6 E66d : Applicabilité des propriétés d'élément de modèle aux éléments group et switch (section 9.3.1)

6.9 E27 : L'élément insert : utiliser le premier nœud dans l'ensemble de nœuds (section 9.3.5)

L'énoncé de spécification courant :

L'attribut at est évalué afin de déterminer l'index d'insertion (une valeur numérique qui est l'index dans l'ensemble de nœuds). L'attribut position définit si le nouveau nœud s'insère avant ("before") ou après ("after") cet index.

L'énoncé de spécification modifié :

L'attribut at est évalué afin de déterminer l'index d'insertion (une valeur numérique qui est l'index dans l'ensemble de nœuds). Son évaluation a lieu dans l'ordre du document, avec pour nœud contextuel, le premier de la liaison de l'ensemble de nœuds, avec pour dimension contextuelle, la dimension de la liaison de l'ensemble de nœuds et pour valeur contextuelle de position, la valeur "1". L'attribut position définit si le nouveau nœud s'insère avant ("before") ou après ("after") cet index.

6.10 E49a : Supprimer les données d'insertion prototypes (section 9.3.5)

L'énoncé de spécification courant :

Le nouveau nœud est créé par clonage du dernier membre de la collection homogène, lequel est défini par les données d'instance d'initialisation.

L'énoncé de spécification modifié :

Le nouveau nœud est créé par clonage du dernier membre de la collection homogène.

Voir également :

6.11 E49b : Supprimer les données d'insertion prototypes (section 9.3.5)
6.17 E49c : Supprimer les données d'insertion prototypes (section 9.3.8)

6.11 E49b : Supprimer les données d'insertion prototypes (section 9.3.5)

L'énoncé de spécification courant :

L'ensemble de nœuds des données d'instance initiales est localisé afin de déterminer le membre prototypique de la collection. Le dernier membre de cette collection est cloné afin de produire le nœud qui sera inséré.

L'énoncé de spécification modifié :

La liaison de l'ensemble de nœuds identifie une collection homogène dans les données d'instance. Le dernier membre de cette collection est cloné afin de produire le nœud qui sera inséré.

Voir également :

6.10 E49a : Supprimer les données d'insertion prototypes (section 9.3.5)
6.17 E49c : Supprimer les données d'insertion prototypes (section 9.3.8)

6.12 E35c : startindex utilisé pour les répétitions internes (section 9.3.5)

L'énoncé de spécification courant :

3. L'index de toute séquence, qui se répète, liée à la collection homogène dans laquelle le nœud aura été ajouté, est mis à jour afin de pointer vers le nœud nouvellement ajouté. Les index des collections de répétition imbriquées internes sont réinitialisés à "1" ;

L'énoncé de spécification modifié :

3. L'index de toute séquence, qui se répète, liée à la collection homogène dans laquelle le nœud aura été ajouté, est mis à jour afin de pointer vers le nœud nouvellement ajouté. Les index des collections de répétition imbriquées internes sont réinitialisés à la valeur de startindex ;

Voir également :

6.18 E35a : startindex utilisé pour les répétitions internes (section 9.3.8)
6.19 E35b : startindex utilisé pour les répétitions internes (section 9.3.9)
6.15 E35d : startindex utilisé pour les répétitions internes (section 9.3.7)

6.13 E65a : Liaison de l'ensemble de nœuds et pas nodeset (section 9.3.5 et section 9.3.6)

L'énoncé de spécification courant (9.3.5) :

La collection homogène à mettre à jour est déterminée par l'évaluation de l'attribut de liaison nodeset ;

L'énoncé de spécification modifié (9.3.5) :

La collection homogène à mettre à jour est déterminée par l'évaluation de la liaison de l'ensemble de nœuds. Si la collection est vide, l'action insert n'a aucun effet ;

L'énoncé de spécification courant (9.3.6) :

La collection homogène à mettre à jour est déterminée par l'évaluation de l'attribut de liaison nodeset. Si la collection est vide, l'action delete n'a aucun effet ;

L'énoncé de spécification modifié (9.3.6) :

La collection homogène à mettre à jour est déterminée par l'évaluation de la liaison de l'ensemble de nœuds. Si la collection est vide, l'action delete n'a aucun effet ;

Voir également :

6.16 E65b : Liaison de l'ensemble de nœuds et pas nodeset (section 9.3.8)

6.14 E61 : L'élément setindex (section 9.3.7)

L'énoncé de spécification courant :
  1. Si l'index sélectionné est "0", ou inférieur, un événement xforms-scroll-first est distribué et l'index est fixé à "1". Si l'index sélectionné est supérieur à celui du dernier élément de répétition, un événement xforms-scroll-last est distribué et la valeur de l'index est fixée à celle de l'index de ce dernier élément.

L'énoncé de spécification modifié :
  1. Si l'index sélectionné est "0", ou inférieur, un événement xforms-scroll-first est distribué et l'index est fixé à "1". Si l'index sélectionné est supérieur à celui du dernier élément de répétition, un événement xforms-scroll-last est distribué et la valeur de l'index est fixée à celle de l'index de ce dernier élément. Si l'index est évalué à "NaN", l'action n'a aucun effet.

6.15 E35d : startindex utilisé pour les répétitions internes (section 9.3.7)

L'énoncé de spécification courant :

Les index des collections de répétition imbriquées internes sont réinitialisés à "1".

L'énoncé de spécification modifié :

Les index des collections de répétition imbriquées internes sont réinitialisés à la valeur de startindex.

Voir également :

6.18 E35a : startindex utilisé pour les répétitions internes (section 9.3.8)
6.19 E35b : startindex utilisé pour les répétitions internes (section 9.3.9)
6.12 E35c : startindex utilisé pour les répétitions internes (section 9.3.5)

6.16 E65b : Liaison d'ensemble de nœuds et pas nodeset (section 9.3.8)

L'énoncé de spécification courant :

L'attribut nodeset est évalué afin de localiser la collection homogène sur laquelle doit opérer l'élément repeat ;

L'énoncé de spécification modifié :

La liaison d'ensemble de nœuds est évalué afin de localiser la collection homogène sur laquelle doit opérer l'élément repeat ;.

Voir également :

6.13 E65a : Liaison d'ensemble de nœuds et pas nodeset (section 9.3.5 et section 9.3.6)

6.17 E49c : Supprimer les données d'insertion prototypes (section 9.3.8)

Supprimer les paragraphes suivants :

2. Les nœuds correspondants dans l'élément instance dans le document source sont localisés (ces nœuds fournissent les valeurs initiales et servent aussi d'instances prototypes pour la construction des membres de la collection de répétition) ;

4. Le modèle de l'interface d'utilisateur défini dans l'élément repeat est lié à cette instance prototype. S'il y a une contradiction de type entre l'instance prototype et les restrictions de liaison des commandes d'interface d'utilisateur, une erreur est signalée et le traitement se termine ;

Les données d'instance initiales produisent le membre prototype de la collection homogène, lequel sert à construire les membres de la collection homogène pendant l'initialisation de l'interface d'utilisateur (cf. 4.2.2 L'événement xforms-model-construct-done). Cette instance prototype sert également à l'action insert dans la création des nouveaux membres de la collection. Pour créer des collections homogènes, les données d'instance initiales doivent définir au moins un membre de la collection ; cette condition revient à imposer des données d'instance en plus d'un schéma, et la même justification s'applique.

Voir également :

6.10 E49a : Supprimer les données d'insertion prototypes (section 9.3.5)
6.11 E49b : Supprimer les données d'insertion prototypes (section 9.3.5)

6.18 E35a : startindex utilisé pour les répétitions internes (section 9.3.8)

L'énoncé de spécification courant :

3. L'index de cette structure de répétition est initialisé à la valeur de l'attribut startindex ;

L'énoncé de spécification modifié :

3. L'index de cette structure de répétition est initialisé à la valeur de l'attribut startindex. Si la valeur initiale de startindex est inférieure à "1", elle devient "1" par défaut. Si la valeur d'index est supérieure à l'ensemble de nœuds initial, alors elle devient celle de la dimension de l'ensemble de nœuds ;

Voir également :

6.19 E35b : startindex utilisé pour les répétitions internes (section 9.3.9)
6.12 E35c : startindex utilisé pour les répétitions internes (section 9.3.5)
6.15 E35d : startindex utilisé pour les répétitions internes (section 9.3.7)

6.19 E35b : startindex utilisé pour les répétitions internes (section 9.3.9)

Supprimer l'énoncé de spécification suivant :

Notez que l'index d'une répétition interne commence toujours à "1".

Voir également :

6.18 E35a : startindex utilisé pour les répétitions internes (section 9.3.8)
6.12 E35c : startindex utilisé pour les répétitions internes (section 9.3.5)
6.15 E35d : startindex utilisé pour les répétitions internes (section 9.3.7)

7 Section 10

7.1 E68 : Actions imbriquées (section 10.1.1)

L'énoncé de spécification courant :

L'action action permet de regrouper plusieurs actions.

L'énoncé de spécification modifié :

Cette action détermine l'invocation des sous-actions dans l'ordre indiqué dans le document.

Supprimer l'énoncé de spécification suivant :

Lorsqu'on utilise l'élément action pour regrouper des actions, il faut faire attention à lister l'événement sur l'élément action plutôt que sur les actions qui y sont contenues.

Supprimer l'énoncé de spécification suivant :

Notez que, dans l'exemple ci-dessus, la déclaration ev:event="DOMActivate" apparaît sur l'élément action. Le placement de cette déclaration sur l'une, ou l'autre, ou sur les deux actions contenues ne produira aucun effet, parce que cet exemple est régi par l'action implicite des attributs observer et handler [XML Events]. Comme défini dans la spécification des événements XML, si les attributs observer et handler sont tous deux omis, alors c'est le parent qui devient l'observateur [NdT. observer]. De ce fait, placer une déclaration ev:event="DOMActivate" sur les enfants de l'élément action va faire que l'élément action deviendra l'observateur des événements individuels. Par conséquent, ces actions ne seront jamais déclenchées puisque les événements arriveront sur l'élément trigger, et non sur l'élément action.

7.2 E4 : Attribut model optionnel sur les actions reset, rebuild, recalculate, revalidate et refresh (sections 10.1.11 et 10.1.3 à 10.1.6)

L'énoncé de spécification courant (dans toutes les sections citées ci-dessus, sauf 10.1.11) :
model

La valeur obligatoire de type IDREF du modèle à traiter.

L'énoncé de spécification courant (section 10.1.11 L'élément reset) :
model

Une sélection obligatoire des données d'instance à réinitialiser, comme défini dans 3.2.3 Les attributs de liaison de nœud simple.

L'énoncé de spécification modifié :
model

Un sélecteur de modèle XForms optionnel, comme défini dans la section 3.2.3 Les attributs de liaison de nœud simple.

Voir également :

10.1 E4b : Attribut model optionnel sur les actions reset, rebuild, recalculate, revalidate et refresh (dans le schéma XForms cité en référence normative dans l'Annexe A)

7.3 E8a : Les commandes des langages hôtes peuvent recevoir le focus par un événement xforms-focus (section 10.1.7)

L'énoncé de spécification courant :

Cette action place le focus sur la commande de formulaire identifiée par l'attribut control en distribuant un événement xforms-focus (cf. 4.3.2 L'événement xforms-focus).

L'énoncé de spécification modifié :

Cette action distribue un événement xforms-focus à l'élément identifié par l'attribut control.

Voir également :

2.2 E8b : Le placement du focus sur une structure de répétition fixera le focus sur l'élément de répétition repéré par l'index de répétition (section 4.3.2)

7.4 E22 : <xforms:load show="replace"> est la valeur implicite (section 10.1.8)

L'énoncé de spécification courant :
show

Un indicateur optionnel du comportement du lien.

L'énoncé de spécification modifié :
show

Un indicateur optionnel du comportement du lien. Si cet attribut est absent, la valeur implicite est "replace".

Voir également :

10.2 E22b : <xforms:load show="replace"> est la valeur implicite (dans le schéma XForms en référence normative dans l'Annexe A)

7.5 E7 : Contexte d'évaluation de setvalue (section 10.1.9)

L'énoncé de spécification courant :
value

Une expression XPath optionnelle à évaluer, le résultat étant stocké dans le nœud de donnée d'instance sélectionné.

L'énoncé de spécification modifié :
value

Une expression XPath optionnelle à évaluer, le résultat étant stocké dans le nœud de donnée d'instance sélectionné. Le contexte d'évaluation de cette expression est celui résultant de la liaison de nœud simple.

8 Section 11

8.1 E16 : L'événement xforms-submit (section 11.1)

L'énoncé de spécification courant :

1. Un nœud des données d'instance est sélectionné, en fonction des attributs de l'élément submission. Le nœud indiqué et tous ceux pour lesquels c'est un ancêtre sont retenus pour le reste du processus de soumission ;

L'énoncé de spécification modifié :

1. Un nœud des données d'instance est sélectionné, en fonction des attributs de l'élément submission. Le nœud indiqué et tous ceux pour lesquels c'est un ancêtre sont retenus pour le reste du processus de soumission. Tout nœud considéré non pertinent, comme défini dans la section 6.1.4, est supprimé ;

8.2 E37 : Soumissions concurrentes multiples non admises pour une seule soumission (section 11.1)

L'énoncé de spécification courant :

Il ne peut y avoir, en aucun cas, plus d'un seul traitement de soumission concurrent en cours pour un modèle XForms particulier.

L'énoncé de spécification modifié :

Il ne peut y avoir, en aucun cas, plus d'un seul traitement de soumission concurrent en cours pour une soumission XForms particulière.

8.3 E45 : Traitement des soumissions (section 11.1)

L'énoncé de spécification courant :

...

  • Pour une réponse de succès comprenant le corps d'un type de média XML, lorsque la valeur de l'attribut replace sur l'élément submission est "instance", la réponse est analysée en tant que code XML et toutes les données d'instance internes correspondant à l'instance soumise sont remplacées par le résultat, en utilisant le même traitement que celui des données d'instance chargées au travers de l'attribut src, et l'événement xforms-model-construct est distribué à l'élément model. Le traitement de soumission s'achève alors après distribution d'un événement xforms-submit-done ;
...
L'énoncé de spécification modifié :

...

  • Pour une réponse de succès comprenant le corps d'un type de média XML, lorsque la valeur de l'attribut replace sur l'élément submission est "instance", la réponse est analysée en tant que code XML. Si l'analyse échoue, un événement xforms-link-exception est généré. Si l'analyse réussit, alors toutes les données d'instance internes correspondant à l'instance soumise sont remplacées par le résultat. Une fois les données d'instance XML remplacées, les opérations rebuild, recalculate, revalidate et refresh sont réalisées sur l'élément model, sans distribution d'événements invoquant ces quatre opérations. Le traitement de soumission s'achève alors après distribution d'un événement xforms-submit-done ;
...

8.4 E69d : Remplacement d'instance (section 11.1)

L'énoncé de spécification courant :

Pour une réponse de succès comprenant le corps d'un type de média XML, lorsque la valeur de l'attribut replace sur l'élément submission est "instance", la réponse est analysée en tant que code XML et toutes les données d'instance internes correspondant à l'instance soumise sont remplacées par ...

L'énoncé de spécification modifié :

Pour une réponse de succès comprenant le corps d'un type de média XML, lorsque la valeur de l'attribut replace sur l'élément submission est "instance", la réponse est analysée en tant que code XML et toutes les données d'instance internes de l'instance indiquée par l'attribut instance sont remplacées par ...

Voir également :

1.1 E69a : Remplacement d'instance (section 3.3)
1.5 E69b : Remplacement d'instance (section 3.3.3)
2.10 E69c : Remplacement d'instance (section 4.5.1)

8.5 E50 : Revalidation de soumission (section 11.1)

L'énoncé de spécification courant :

2. Toutes les données d'instance sélectionnées sont revalidées, selon les règles dans 4.3.5 L'événement xforms-revalidate, en ne prenant en compte que les nœuds d'espace de nommage concernés pour la sérialisation comme décrit dans 3.3.3 L'élément submission.

L'énoncé de spécification modifié :

2. La validité de toutes les données d'instance sélectionnées est vérifiée selon les règles dans la section 4.3.5 L'événement xforms-revalidate (aucun événement de notification n'est marqué pour distribution dans cette opération).

L'énoncé de spécification courant :

Toute donnée d'instance invalide interrompt le traitement de la soumission ...

Changer l'énoncé de spécification :

Tout nœud de données d'instance sélectionné, qui est obligatoire mais vide ou qui est invalide, interrompt le traitement de soumission ...

8.6 E52 : Un type de média XML a un type de contenu défini dans RFC 3023 (section 11.1)

L'énoncé de spécification courant :

Pour une réponse de succès comprenant le corps d'un type de média XML ...

L'énoncé de spécification modifié :

Pour une réponse de succès comprenant le corps d'un type de média XML (comme défini par les indicateurs de type de contenu dans [RFC 3023]) ...

L'énoncé de spécification courant :

Pour une réponse de succès comprenant le corps d'un type de média non-XML ...

L'énoncé de spécification modifié :

Pour une réponse de succès comprenant le corps d'un type de média non-XML (c'est-à-dire, avec un type de contenu ne correspondant à aucun des indicateurs dans [RFC 3023]) ...

8.7 E39 : Content-Type PEUT, et non DOIT, être inclus (section 11.5)

L'énoncé de spécification courant :
Exemple : multipart/form-data
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: xxx
        
--AaB03x
Content-Disposition: form-data; name="document"; filename="b.txt"
Content-Type: text/plain; charset=iso-8859-1
Voici un fichier.
Il fait deux lignes.
--AaB03x
Content-Disposition: form-data; name="title"
Content-Type: text/plain; charset=iso-8859-1
Un fichier
--AaB03x
Content-Disposition: form-data; name="summary"
Content-Type: text/plain; charset=iso-8859-1
Voici mon fichier test
--AaB03x--
L'énoncé de spécification modifié :
Exemple : multipart/form-data
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: xxx
        
--AaB03x
Content-Disposition: form-data; name="document"; filename="b.txt"
Content-Type: text/plain; charset=iso-8859-1
Voici un fichier.
Il fait deux lignes.
--AaB03x
Content-Disposition: form-data; name="title"
Un fichier
--AaB03x
Content-Disposition: form-data; name="summary"
Voici mon fichier test
--AaB03x--

8.8 E62 : Séparateur et application/x-www-form-urlencoded (section 11.6)

L'énoncé de spécification courant :

2. Les nœuds d'élément sélectionnés pour l'inclusion sont codés selon la description EltName=value{sep}, dans laquelle = est un caractère littéral, {sep} est le caractère séparateur indiqué par l'attribut separator sur l'élément submission, EltName représente le nom local de l'élément et value représente le contenu du nœud de texte.

L'énoncé de spécification modifié :

2. Les nœuds d'élément sélectionnés pour l'inclusion sont codés selon la description EltName=value, dans laquelle = est un caractère littéral, EltName représente le nom local de l'élément et value représente le contenu du nœud textuel. Le caractère séparateur {sep}, donné par l'attribut separator sur l'élément submission, s'utilise entre les couples nom-valeur codés : EltName=value{sep}EltName=value{sep}EltName=value.

9 Section 13

9.1 E67b : Permettre les expressions XPath dans les liaisons (section 13)

L'énoncé de spécification courant :
Expression de liaison
Une expression du type PathExpr [XPath 1.0] utilisée dans une liaison.
Expression de liaison de modèle
Une expression du type PathExpr [XPath 1.0] utilisée dans une liaison qui déclare une propriété d'élément de modèle.
Expression d'interface utilisateur ou d'action
Une expression du type PathExpr [XPath 1.0] utilisée dans la liaison d'une commande de formulaire à l'instance, ou pour indiquer le nœud (ou ensemble de nœuds) sur lequel (ou lesquels) s'exerce une action.
L'énoncé de spécification modifié :
Expression de liaison
Une expression [XPath 1.0] utilisée dans une liaison.
Expression de liaison de modèle
Une expression [XPath 1.0] utilisée dans une liaison qui déclare une propriété d'élément de modèle.
Expression d'interface utilisateur ou d'action
Une expression [XPath 1.0] utilisée dans la liaison d'une commande de formulaire à l'instance, ou pour indiquer le nœud (ou ensemble de nœuds) sur lequel (ou lesquels) s'exerce une action.

Voir également :

4.2 E67a : Permettre les expressions XPath dans les liaisons (section 7.4)

10 Annexe A

10.1 E4b : Attribut model optionnel pour les actions reset, rebuild, recalculate, revalidate et refresh (dans le schéma XForms cité en référence normative dans l'Annexe A)

L'énoncé de spécification courant :

Pour la définition de l'attribut model dans les éléments reset, rebuild, recalculate, revalidate et refresh :

<xsd:attribute name="model" type="xsd:IDREF" use="required">

L'énoncé de spécification modifié :

<xsd:attribute name="model" type="xsd:IDREF" use="optional">

Voir également :

7.2 E4 : Attribut model optionnel sur les actions reset, rebuild, recalculate, revalidate et refresh (sections 10.1.11 et 10.1.3 à 10.1.6)

10.2 E22b : <xforms:load show="replace"> est la valeur implicite (dans le schéma XForms en référence normative dans l'Annexe A)

L'énoncé de spécification courant :

Pour la définition de l'attribut show de l'élément load :

<xsd:attribute name="show" use="optional">

L'énoncé de spécification modifié :

<xsd:attribute name="show" use="optional" default="replace">

Voir également :

7.4 E22 : <xforms:load show="replace"> est la valeur implicite (section 10.1.8)

10.3 E54 : Supprimer xf:minOccurs et xf:maxOccurs (dans le schéma XForms en référence normative dans l'Annexe A)

Supprimer les attributs minOccurs et maxOccurs de la définition de l'élément bind :
<xsd:attribute name="maxOccurs" type="xforms:XPathExpression" use="optional" default="INF"/>
<xsd:attribute name="minOccurs" type="xforms:XPathExpression" use="optional" default="0"/> 

10.4 E71 : L'élément case d'un élément switch peut être vide (dans le schéma XForms en référence normative dans l'Annexe A)

L'énoncé de spécification courant :

Pour la définition du contenu de l'élément case :

<xsd:sequence maxOccurs="unbounded">

L'énoncé de spécification modifié :

<xsd:sequence minOccurs="0" maxOccurs="unbounded">

11 Annexe G

11.1 E26a : complexType n'a pas d'attribut name dans l'exemple payschema.xsd (Annexe G.1)

L'énoncé de spécification courant :
  <xsd:element name="payment">
    <xsd:complexType name="payment">
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
L'énoncé de spécification modifié :
  <xsd:element name="payment">
    <xsd:complexType>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">

Voir également :

11.2 E26b : Une carte de crédit devrait avoir pour type de données des chiffres (annexe G.1)

11.2 E26b : Une carte de crédit devrait avoir pour type de données des chiffres (Annexe G.1)

L'énoncé de spécification courant :
  <xsd:simpleType name="cc">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\s*((\d+)[-\s])+([\d]+)\s*" />
    </xsd:restriction>
  </xsd:simpleType>
L'énoncé de spécification modifié :
  <xsd:simpleType name="cc"> 
     <xsd:restriction base="xsd:string"> 
       <xsd:minLength value="12"/> 
       <xsd:maxLength value="19"/> 
       <xsd:pattern value="[0-9]+"/> 
     </xsd:restriction> 
  </xsd:simpleType>

Voir également :

11.1 E26a : complexType n'a pas d'attribut name dans l'exemple payschema.xsd (annexe G.1)

12 Références

12.1 Références normatives

XML Base
XML Base, Jonathan Marsh, 2001. Recommandation du W3C. Disponible à : http://www.w3.org/TR/xmlbase/.
RFC 3023
RFC 3023: XML Media Types, M Murata, S. St. Laurent, D. Kohn, 2001. Disponible à : http://www.ietf.org/rfc/rfc3023.txt.