4 処理モデル

この章は、XForms処理系が到達する様々な状態、及びそれらの状態のそれぞれを終了する際の、ありうる状態遷移を列挙することで、XForms処理モデルを宣言型で定義する。XForms処理系は、最終的な結果がこの章に説明されているのと同じとなる限り、いかなる方法で実装されてもよい。

状態遷移は、一般的に、XFormsの部分木にイベントが送られることで始まる。XForms処理モデルは、次の種類のイベントから成っている。

4.1 イベント概要

XForms処理は、イベント、イベントハンドラ、イベント応答で定義される。XFormsは、 イベント捕捉フェーズ、目標へのイベント到達、イベントバブルフェーズという、[DOM2 Events][XML Events]で定義されるイベントシステムを用いている。

この章を通して、"フォームコントロール"を目標要素と呼んでいるが、inputsecrettextareaoutputuploadtriggerrangesubmitselectselect1、又はgroup要素のいずれかということに対する簡略表記である。

イベント名 中止 バブル 目標要素
4.2 初期化イベント
xforms-model-construct できない する model
xforms-model-construct-done できない する model
xforms-ready できない する model
xforms-model-destruct できない する model
4.3 対話イベント
xforms-previous できる しない フォームコントロール
xforms-next できる しない フォームコントロール
xforms-focus できる しない フォームコントロール
xforms-help できる する フォームコントロール
xforms-hint できる する フォームコントロール
xforms-rebuild できる する model
xforms-refresh できる する model
xforms-revalidate できる する model
xforms-recalculate できる する model
xforms-reset できる する model
xforms-submit できる する submission
4.4 通知イベント
DOMActivate できる する フォームコントロール
xforms-value-changed できない する フォームコントロール
xforms-select できない する item or case
xforms-deselect できない する item or case
xforms-scroll-first できない する repeat
xforms-scroll-last できない する repeat
xforms-insert できない する instance
xforms-delete できない する instance
xforms-valid できない する フォームコントロール
xforms-invalid できない する フォームコントロール
DOMFocusIn できない する フォームコントロール
DOMFocusOut できない する フォームコントロール
xforms-readonly できない する フォームコントロール
xforms-readwrite できない する フォームコントロール
xforms-required できない する フォームコントロール
xforms-optional できない する フォームコントロール
xforms-enabled できない する フォームコントロール
xforms-disabled できない する フォームコントロール
xforms-in-range できない する フォームコントロール
xforms-out-of-range できない する フォームコントロール
xforms-submit-done できない する submission
xforms-submit-error できない する submission
4.5 エラー報告
xforms-binding-exception できない する 束縛表現を含むことのできる任意の要素
xforms-link-exception できない する model
xforms-link-error できない する model
xforms-compute-exception できない する model

4.2 初期化イベント

この項は、初期化フェーズの様々な段階を定義する。処理系は、xforms-model-constructイベントを包含文書の中の各XFormsモデルに送ることから始める。XForms処理系自体に初期化を要求する方法は、実装依存である。

4.2.1 xforms-model-constructイベント

XForms処理系により各XFormsモデルに送られる。

目標: model

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションは、次のような結果となる。

  1. すべてのXMLスキーマがロードされる。リモートの文書をアクセスする際、又は処理する際にエラーが発生すると、処理は例外で停止する(4.5.2 xforms-link-exceptionイベント)。

  2. 初期インスタンスデータの外部ソースが与えられていれば、XPathデータモデル[7 XFormsにおけるXPath表現]が構築される。そうでなく、インラインの初期インスタンスデータが与えられれば、それが代わりに使われる。外部初期データが整形式のXMLでなかったり、取得できなかったりすると、処理は例外で停止する(4.5.2 xforms-link-exceptionイベント)。どちらも与えられなければ、データモデルはこのフェーズではなく、利用者インタフェース構築の際に(4.2.2 xforms-model-construct-doneイベント)構築される。

  3. 適用可能であれば、P3Pが初期化される。[P3P 1.0]

  4. インスタンスデータが構築される。インスタンスデータに挿入された全ての文字列がUnicodeに正規化される。全てのモデル項目特性が、すべてのbind要素を文書順序で処理することで初期化される。それぞれのbindに対して、

    1. bindに付いているnodeset属性が評価され、その結果ノード集合が選択される。

    2. ノード集合の各ノードについて、bindの残りの属性に従ってモデル項目特性が適用される。各属性(6.1 モデル項目特性の定義で定義される特性の一つにマッチする名前の)の文字列値が、同じ名前のモデル項目特性の局所値にコピーされる。

    3. ノードが既に同じ名前のモデル項目特性を含んでいれば、包含文書のXForm処理は例外で停止する(4.5.1 xforms-binding-exceptionイベント)。

  5. このmodel要素に対して、xforms-rebuild,、xforms-recalculatexforms-revalidateを順に実行する。(xforms-refreshは、利用者インタフェースがまだ初期化されていないので、実行されない。)

すべてのXFormsモデルが初期化された後、xforms-model-construct-doneイベントが各model要素に送られる。

4.2.2 xforms-model-construct-doneイベント

xforms-model-construct処理の完了後送られる。

目標: model

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションは、XFormsモデルが包含文書にいくつ存在するかに関わらず一度発生し、それぞれのフォームコントロールについて次のような結果となる。

最初のフォームコントロールが処理される際、modelの中にinstanceが存在するかによって、処理は二つの相異なる方法のうちの一つへと進む。

最初のフォームコントロールが処理されたときに、フォームコントロールで参照されるinstanceが存在すれば、

  1. 束縛表現が存在するノードを指し示すことを保証していると評価される。もしそうでなければ、フォームコントロールはrelevantモデル項目特性がfalseと適切に解決されたモデル項目と束縛されているのと、同じように振舞うべきである。

最初のフォームコントロールが処理されたときに、フォームコントロールで参照されるinstanceが存在しなければ、

  1. instanceへの最初の参照に対して、デフォルトのinstanceが下に説明する方法に従って作成される。

    1. instanceDataルート要素が作成される。

    2. インスタンスデータ要素のノードが、 利用者インタフェースコントロールから、nameとして束縛表現を用いて作成される。もしnameが妥当なQNameでなければ、処理は例外で停止する(4.5.1 xforms-binding-exceptionイベント)。

  2. 自動的に作成されたinstanceへの二番目以降の参照に対して、次の処理が実行される。

    1. もしマッチするインスタンスデータのノードが見つかれば、利用者インタフェースコントロールはその要素と繋がる。

    2. もしマッチするインスタンスデータのノードが見つからなければ、インスタンスデータのノードが、利用者インタフェースコントロールの束縛表現から、nameとして作成される。もしnameが妥当なQNameでなければ、処理は例外で停止する(4.5.1 xforms-binding-exceptionイベント)。

全てのフォームコントロールが初期化された後、xforms-readyイベントが各model要素に送られる。

4.2.3 xforms-readyイベント

xforms-model-construct-done処理の一部として送られる。

目標: model

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。通知のみである。

4.2.4 xforms-model-destructイベント

XForms処理系の緊急停止を通知するために処理系から送られる。利用者の行為やload XFormsアクションによって起こり、結果としてフォームが投稿される。

目標: model

バブル: しない

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。通知のみである。

4.3 対話イベント

4.3.1 xforms-next及びxforms-previousイベント

利用者が次又は前のフォームコントロールへナビゲーションさせようと要求するのに応答して送られる。

目標: フォームコントロール

バブル: しない

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、デフォルトのナビゲーション順序に従ったナビゲーションである。例えば、キーボードのインタフェースでは、"tab"がxforms-nextイベントを生成し、"shift+tab"がxforms-previousイベントを生成する。

ナビゲーションは包含文書に基づいて決定される。ホスト言語は、全体のナビゲーション順序を定義する責任がある。ナビゲーション単位として個々のフォームコントロールを用いて、navindex属性に基づいた可能な技術を説明しよう。<group>、<repeat>、及び<switch>構造もまたナビゲーション単位としての機能を果たすが、単一のナビゲーション点を提供するのではなく、子供のフォームコントロール(及びありうる他の部分構造)の局所ナビゲーション文脈を作成する。ナビゲーション列は次のように定義される。

  1. まず、navindexが指定されて正の値が当てられているフォームコントロールがナビゲーションされる。

    1. 最外部のフォームコントロールは、navindexの値の昇順でナビゲーションされる。値は連続している必要はなく、また特定の値で始まっている必要もない。同じnavindexの値を持つフォームコントロールは、文書順序でナビゲーションされる。

    2. 祖先のフォームコントロール(<group>、<repeat>及び<switch>)は、局所ナビゲーション列を生成する。局所列の中の全てのフォームコントロールは、局所列の外側のいずれのフォームコントロールがナビゲーションされるよりも前に、navindexの値の昇順でナビゲーションされる。同じnavindexの値を持つフォームコントロールは文書順序でナビゲーションされる。

  2. navindexが指定されていないか、又は値"0"が与えられているフォームコントロールは、次にナビゲーションされる。それらのフォームコントロールは、文書順序でナビゲーションされる。

  3. 無効にされたり、隠されたり、又relevantでないとされたりしたフォームコントロールは、全体の列の中で相対的な順序を割り当てられるが、ナビゲーションできるコントロールとして加えられることはない。

  4. 最初のコントロールの後(や最初のコントロールの前)のナビゲーション列は未定義である。XForms処理系は、最初・最後のコントロールに循環させてもよいし、フォームからを取り除いてもよいし、又は他にできることをしてもよい。

4.3.2 xforms-focusイベント

フォームコントロールにフォーカスを置くのに応答して送られる。

目標: フォームコントロール

バブル: しない

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは次の通りである。

フォームコントロールがフォーカスを受け取ることができれば、フォーカスが目標フォームコントロールに与えられる。反復構造にフォーカスを置くと、反復インデックスで表される反復項目にフォーカスが置かれる。

4.3.3 xforms-help及びxforms-hintイベント

利用者がヘルプ又はヒントの情報を要求するのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、もし、フォームコントロールにヘルプ・ヒント要素が与えられていれば、利用者に報告されるメッセージを構築するために用いられる。そうでなければ、利用者エージェントは、ヘルプ又はヒントメッセージを提供するかもしれないが、必須ではない。

4.3.4 xforms-refreshイベント

特定のXFormsモデルに関連付けられた全てのフォームコントロールを更新する要求に応答して送られる。

目標: model

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、次の通りである。

  1. 全てのUI束縛は、必要に応じて再評価される。

  2. ノードは(項4.3.6)又はsetvalue(項10.1.9)アクションにより利用者のフォームコントロールへの入力を確認することで、変化しうる。もしインスタンスデータのノードの値が変化していれば、ノードはxforms-value-changedイベントを送るべくマークされる。

  3. xforms-value-changedイベントを送るべくにマークされていれば、適切なモデル項目特性通知イベントの全てが、送るべくマークされる(xforms-optional又はxforms-required、xforms-readwrite又はxforms-readonly、及びxforms-enabled又はxforms-disabled)。

  4. それぞれのフォームコントロールに対して、束縛ノード上で送るべくマークされた各通知イベントが送られなければならない(xforms-value-changed、xforms-valid、xforms-invalid、xforms-optional、xforms-required、xforms-readwrite、xforms-readonly及びxforms-enabled、xforms-disabled)。通知イベントxforms-out-of-range又はxforms-in-rangeもまた適切に送られなければならない。この仕様書ではイベントの順序付けは明示しない。

  5. 利用者インタフェースは、モデルの状態を反映する。すなわち、全てのフォームコントロールが対応する次の束縛インスタンスデータに反映されるということである。

    • 現在の値

    • 妥当性

    • requiredreadonly又はrelevantのいずれであるか

4.3.5 xforms-revalidateイベント

特定のXFormsモデルを再評価させようと要求するのに応答して送られる。

目標: model

バブル: する

中止: できる

文脈情報: なし

インスタンスのノードは、次の条件が満たされていれば、かつ満たされているときのみ、妥当である。

  • 制約モデル項目特性が真である

  • ノードが適切なスキーマ定義を満たす(型モデル項目特性に関連付けられたものを含む)

注:

上の条件を満たすノードは、必須だが空であるときも妥当である。

このイベントに対するデフォルトのアクションは、以下の通りである。

modelの中の全instance要素の中のインスタンスデータの全ノードが上の定義に従って妥当性を検査される。模試ノードの妥当性が変化すれば、ノードは、次のように、xforms-refreshの際、束縛するフォームコントロールに適切な通知イベント(xforms-valid又はxforms-invalid)を送るべくマークされる。

  • ノードが非妥当から妥当に変化すると、ノードはxforms-validイベントを送るべくマークされる。

  • ノードが妥当から非妥当に変化すると、ノードはxforms-invalidイベントを送るべくマークされる。

4.3.6 xforms-recalculateイベント

特定のXFormsモデルに関連付けられた全ての計算をやり直す要求に応答して送られる。

目標: model

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、次の通りである。

The values of all instance data items match their associated 'calculate' constraints, if any. All model item properties that can contain computed expressions are resolved. In addition to contributing further node value changes that will cause xforms-value-changed notifications in xforms-refresh, the model item properties that change are marked to help xforms-revalidate and xforms-refresh to determine the notification events to dispatch.

  • If the required model item property changes, then either the xforms-required event must be marked for dispatch if required is true or the xforms-optional event must be marked for dispatch if required is false.

  • If the readonly model item property changes, then either the xforms-readonly event must be marked for dispatch if readonly is true or the xforms-readwrite event must be marked for dispatch if readonly is false.

  • If the relevant model item property changes, then either the xforms-enabled event must be marked for dispatch if relevant is true or the xforms-disabled event must be marked for dispatch if relevant is false.

An XPath expression is bound either to the value or to a model item property (e.g., required, relevant) of one or more instance nodes. combination of an XPath expression with a single instance node's value or model item property is considered as a single computational unit, a compute, for the purposes of recalculation.

When it is time to recalculate a model item property, the XPath expression is evaluated. evaluation context is determined from the model binding expression that applied the model item property, as defined for computed expressions in 7.4 Evaluation Context. XPath expression may reference or refer to another instance node, in which case the value of the instance node is referenced. Each referenced instance node has as dependents those computes which directly refer to the instance node. References to the current node's value in calculate expressions are explicitly ignored, i.e., if an expression associated with a compute refers to the instance node associated with the compute, then the instance node does not take itself as a dependent. A compute is computationally dependent on an instance node (whose value may or may not be computed) if there is a path of dependents leading from the instance node through zero or more other instance nodes to the compute. A compute is part of a circular dependency if it is computationally dependent on itself.

Note:

Authors should not refer to the current node's value in calculate expressions because the effect is not well-defined. Other model item properties, such as required or readonly, however, are well-defined in the presence of self-references.

When a recalculation event begins, there will be a list L of one or more instance nodes whose values have been changed, e.g., by user input being propagated to the instance.

  1. An XForms Processor should not recalculate computes that are not computationally dependent on one or more of the elements in L.

  2. An XForms Processor should perform only a single recalculation of each compute that is computationally dependent on one or more of the elements in L.

  3. An XForms Processor must recalculate a compute C after recalculating all computes of instance nodes on which C is computationally dependent. (Equivalently, an XForms Processor must recalculate a compute C before recalculating any compute that is computationally dependent on the instance node associated with C.)

  4. Finally, if a compute is part of a circular dependency and also computationally dependent on an element in L, then an XForms processor must report an exception (4.5.4 xforms-compute-exceptionイベント).

D Recalculation Sequence Algorithm describes one possible method for achieving the desired recalculation behavior.

4.3.7 xforms-rebuildイベント

特定のXFormsモデル内の計算の依存関係を辿る内部データ構造を再構築する要求に応答して送られる。

目標: model

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、次の通りである。

このイベントに対するデフォルトのアクションは、計算の依存関係データ構造を再構築し、次にxforms-recalculateイベントがモデルに送られたときに、完全な再計算が実行されるように、関連付けられた計算表現を持つ全インスタンスノードへの参照を、変化リストLが含むように設定される。

4.3.8 xforms-resetイベント

モデルをリセットさせようとする利用者の要求に応答して送られる。

目標: model

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションは、次の通りである。

インスタンスデータは、xforms-readyイベントを処理した後すぐに、持っている木構造と値に初期化される。それから、xforms-rebuildxforms-recalculatexforms-revalidate及びxforms-refreshイベントが順にmodel要素に送られる。

4.3.9 xforms-submitイベント

See chapter 11 Submit.

4.4 通知イベント

4.4.1 DOMActivateイベント

フォームコントロールに対する"デフォルトのアクション要求"、例えばボタンを押したりやエンターキーを叩いたりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できる

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.2 xforms-value-changedイベント

フォームコントロールに束縛されたインスタンスデータのノードの変化に応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、束縛されたインスタンスデータのノードが変化したことにより、このイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

注:

差分処理に関して、この仕様書は、どれだけの頻度でXForms処理系がこのイベントを発行するかを定義しない。実装は、処理を最適化するように期待される(例えば、各入力文字に対してスクリーン全体を消去しないなど)。

注:

このイベントに関連付けられたインスタンスデータの変化は、イベントが送られる前に発生している。

4.4.3 xforms-select及びxforms-deselectイベント

selectselect1又はswitchの中の項目が選択されたり選択を外されたりするのに応答して送られる

目標: item又はitemset又はcase

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.4 xforms-scroll-first and xforms-scroll-lastイベント

repeatの範囲外のインデックスを設定しようとするsetindexアクションに応答して送られる。

目標: repeat

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.5 xforms-insert及びxforms-deleteイベント

イベントハンドラが、XFormsアクションinsert又はdeleteを呼び出し、反復項目の追加又は削除に成功したのに応答して送られる。

目標: instance

バブル: する

中止: できない

文脈情報: 挿入・削除に対して用いられるパス表現(xsd:string)。

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.6 xforms-validイベント

インスタンスデータのノードが妥当なものへと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.5 xforms-revalidateイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.7 xforms-invalidイベント

インスタンスデータのノードが妥当でないものへと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.5 xforms-revalidateイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.8 DOMFocusInイベント

フォームコントロールがフォーカスを受け取るのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.9 DOMFocusOutイベント

フォームコントロールがフォーカスを失うのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.10 xforms-readonlyイベント

インスタンスデータのノードが読み取り専用に変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.11 xforms-readwriteイベント

インスタンスデータのノードが書き換え可能に変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.12 xforms-requiredイベント

インスタンスデータのノードが必須へと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.13 xforms-optionalイベント

インスタンスデータのノードがオプションへと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.14 xforms-enabledイベント

インスタンスデータのノードが有効へと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.15 xforms-disabledイベント

インスタンスデータのノードが無効へと変更されたり変化したりするのに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、4.3.6 xforms-recalculateイベント又は4.3.4 xforms-refreshイベントでこのイベントを送るようにマークされていれば、4.3.4 xforms-refreshイベントの際に送られる。

4.4.16 xforms-in-rangeイベント

インスタンスデータのノードの値が変化して、値がフォームコントロールで表すことができるようになったことに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、フォームコントロールで指定された制約のために、表すことができないインスタンスデータのノードの値が、フォームコントロールで表すことができるように変化したときであれば、どんなときであっても送られる。

4.4.17 xforms-out-of-rangeイベント

フォームコントロールで表すことができないように、インスタンスデータのノードの値が変化したことに応答して送られる。

目標: フォームコントロール

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

このイベントは、インスタンスデータのノードの値が、フォームコントロールで指定された制約のために表すことができなくなったときであれば、どんなときであっても送られる。

4.4.18 xforms-submit-doneイベント

返ってきた文書の処理を含め、投稿処理が完了したことに応答して送られる。

目標: submission

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.4.19 xforms-submit-errorイベント

11 投稿で定義されるように、投稿処理の失敗の報告として送られる。

目標: submission

バブル: する

中止: できない

文脈情報: 失敗した投稿方法のURI(xsd:anyURI)

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.5 エラー報告

エラー報告は、XForms処理系における異常な状況の結果として発生する。そのうちいくつかは"致命的"エラーとなり、処理を中断し、接尾辞"exception"を持つ。他のものは単に通知のためのものであり、接尾辞"error"を持つ。この項の全イベントに対して、XForms処理系は、例えばファイルにエラーメッセージを記録するというような、ある種のデフォルトの処理を実行することが許容される。

4.5.1 xforms-binding-exceptionイベント

不正な束縛表現、すなわち、model要素のIDを指し示すのに失敗したmodel属性、又はbind要素のIDを指し示すのに失敗したbind属性、或いはsubmissionと同じmodel要素内で、instance要素を指し示すのに失敗したsubmission要素上のinstance属性の通知として送られる。

目標: 束縛表現を含むことができる任意の要素

バブル: する

中止: できない

文脈情報: なし

このイベントに対するデフォルトのアクションは、致命的エラーをもたらすことである。

4.5.2 xforms-link-exceptionイベント

リンク属性のリンクを辿るのに失敗したことの報告として送られる。

目標: model

バブル: する

中止: できない

文脈情報: ロードに失敗したURI (xsd:anyURI)

このイベントに対するデフォルトのアクションは、致命的エラーをもたらすことである。

4.5.3 xforms-link-errorイベント

フォーム処理に対して重要でない状況で、リンク属性のリンクを辿るのに失敗したことの通知として送られる。

目標: model

バブル: する

中止: できない

文脈情報: ロードに失敗したURI (xsd:anyURI)

このイベントに対するデフォルトのアクションはない。単なる通知イベントである。

4.5.4 xforms-compute-exceptionイベント

XPath評価中に発生したエラーの通知として送られる。

目標: model

バブル: する

中止: できない

文脈情報: 実装固有のエラー文字列。

このイベントに対するデフォルトのアクションは、致命的エラーをもたらすことである。

4.6 イベント列

前の項で、個々のイベントに関連付けられた処理を説明した。この項では、いくつかのありふれた状況で必ず起こる関連したイベント列の全体を与える。次のリストにおいて、二度以上発行されるかもしれないイベントは、接頭辞[n]が付く。

4.6.1 inputsecrettextarearange又はuploadコントロールに対して

  • フォームコントロールが対話的に変更され、設定"incremental=true"を持つ場合、4.6.7 列: 値の変化で説明されているイベント列は、実装に依存した間隔で初期化される。

  • フォームコントロールが対話的に変更され、設定"incremental=true"を持っていない場合、イベントが送られる必要はないので、したがって列は定義されない。

  • フォーカスがそのフォームコントロールから変更され、値が変更されたとき、イベントの順序は4.6.7 列: 値の変化で説明される。

4.6.2 outputコントロールに対して

  • イベント列は定義されていない。

4.6.3 select又はselect1コントロールに対して

  • 選択が対話的に変更され、フォームコントロールが設定"incremental=true"を持つ場合、イベント列は4.6.6 列: 値の変化なしの選択で説明されており、直後に4.6.7 列: 値の変化で説明されていることが続いてもよい。

  • 選択が対話的に変更され、フォームコントロールが設定"incremental=true"を持っていない場合、イベント列は4.6.6 列: 値の変化なしの選択で説明されている。

  • フォーカスがそのフォームコントロールから変更され、値が変更されていれば、イベント列は4.6.7 列: 値の変化で説明されている。

4.6.4 triggerコントロールに対して

4.6.5 submitコントロールに対して

4.6.6 列: 値の変化なしの選択

  1. xforms-deselect

  2. xforms-select

4.6.7 列: 値の変化

  1. xforms-recalculate

  2. xforms-revalidate

  3. xforms-refreshはUI束縛表現の再評価を実行し、値の変化、モデル項目特性の変化、妥当性の変化に従って次のイベントを送る。

    • [n] xforms-value-changed

    • [n] xforms-valid or xforms-invalid

    • [n] xforms-enabled or xforms-disabled

    • [n] xforms-optional or xforms-required

    • [n] xforms-readonly or xforms-readwrite

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

    (これらのイベントの送られる順序は定義されていない。)

  4. さらに、必要に応じて、参照された更新を実行する

4.6.8 列: トリガの活性化

  1. DOMActivate

4.6.9 列: 投稿

  1. xforms-submit

  2. xforms-submit-done or xforms-submit-error