目次 | 前へ | 次へ | 下へ |
小目次 |
---|
3 文書構造 3.1 XForms名前空間 3.2 XFormsコア属性集合 3.2.1 共通属性 3.2.2 リンク属性 3.2.3 単一ノード束縛属性 3.2.4 ノード集合束縛属性 3.2.5 モデル項目特性属性 3.3 XFormsコアモジュール 3.3.1 model要素 3.3.2 instance要素 3.3.3 submission要素 3.3.4 bind要素 3.4 XForms必須理解モジュール 3.5 XForms拡張モジュール 3.5.1 extension要素 |
XForms 1.0は、XML[XML 1.0]アプリケーションであり、他のXML語彙、特にXHTML[XHTML 1.0]の未来の版で使うために設計されている。XFormsは、常にホスト言語を必要とする。この章は、XFormsを他の文書型と使うようにするための、XFormsの構造を議論する。
XForms名前空間は、http://www.w3.org/2002/xforms
というURIを持つ。
XForms処理系は、この名前空間から要素及び属性を認識するために、XML名前空間の仕組み[XML Names]を使わなければならない。
共通属性集合は、XForms名前空間の全ての要素に適用できる。
無関係な属性は、全てのXForms要素に許容される。
ホスト言語は、それぞれのXForms要素にxsd:ID
型の属性を許可しなければならない。
リンク属性集合は、リモートリソースへのリンクを含むXForms要素に適用される。
src
属性には、自動的に取得されるURIを指定する
注:
リンク属性のURIはXMLスキーマのデータ型xsd:anyURI
で定義されているため、[XML Schema part 2]で議論されているのと同じ国際化の利点や空白の注意が適用される。
リンクにおける相対URIの振る舞いは、 ホスト言語で決定されるが、[XML Base]処理が強く推奨される。
注:
XForms作業グループはリンク構造を説明する手法についてHTML作業グループと調整している。
次に続く属性は、フォームコントロール又はアクションと、XPath表現によって定義されるインスタンスデータのノードとの束縛を定義する。
XPathとして解釈される束縛表現。bind
属性が存在する場合は意味を持たない。
XFormsモデル選択子。束縛要素と関連付けられるXFormsモデルのID
を指定する。 この属性は、bind
属性が存在する場合、現在の束縛要素に対して意味を持たない。文脈XFormsモデルの決定規則は7.4 評価文脈にある。
bind
要素への参照。
ref
又はbind
のうち1つは必須である。bind
が用いられると、ノードは参照されたbind
によって決定される。
model
要素上にないID
を参照するmodel
IDREF
値、又はbind
要素上にないID
を参照するbind
IDREF
値にXForms処理系が遭遇すると、例外(4.5.1 xforms-binding-exceptionイベント)となる。
初出ノード規則: 単一ノード束縛属性が、1より大きいサイズのノード集合を選択すると、ノード集合の最初のノードが、文書の順序に基づいて、用いられる。
次の属性は、フォームコントロール又はアクションと、XPath表現で定義されたノード集合との束縛を定義する。
XPathとして解釈される束縛表現。この属性は、bind
属性が存在する場合は意味を持たない。
XFormsモデル選択子。束縛要素と関連付けられるXFormsモデルのID
を指定する。この属性は、bind
属性が存在する場合、現在の束縛要素に対して意味を持たない。文脈XFormsモデルの決定規則は、7.4 評価文脈にある。
bind
要素への参照。
nodeset
又はbind
のうち1つは必須である。bind
が用いられると、ノード集合は参照されたbind
によって決定される。
model
要素上にないidを参照するmodel
IDREF値、又はbind
要素上にないid
を参照するbind
IDREF値にXForms処理系が遭遇すると、例外(4.5.1 xforms-binding-exceptionイベント)となる。
この集合は、6.1 モデル項目特性定義で定義される、モデル項目特性の名前とちょうど一致する属性名で、それぞれのモデル項目特性に対して一つの属性を含む。
XFormsコアモジュールは、包含文書の中に入ることが意図される、XFormsの主要な構造要素を定義する。このモジュールに含まれる要素を呼び属性を、次に示す。
要素 | 属性 | 最小内容モデル |
---|---|---|
model | 共通, イベント, functions (QNameList), schema (list of xsd:anyURI) | (instance|xsd:schema| submission|bind|アクション)* |
instance | 共通, リンク | (任意) |
submission | 共通, ref (binding-expression), bind (xsd:IDREF), action (xsd:anyURI), method ("post"|"get"|"put"|"form-data-post"|"urlencoded-post"|qname-but-not-ncname), version (xsd:NMTOKEN), indent (xsd:boolean), mediatype (xsd:string), encoding (xsd:string), omit-xml-declaration (xsd:boolean), standalone (xsd:boolean), cdata-section-elements (QNameList), replace ("all"|"instance"|"none"|qname-but-not-ncname), instance (xsd:IDREF), separator (';' | '&'), includenamespaceprefixes (xsd:NMTOKENS) | アクション* |
bind | 共通, Model Item Properties, nodeset (model-binding-expression) | (bind)* |
XFormsアクションモジュールで定義される要素も、モジュールが含まれる場合、上に示されるように、model
及びsubmission
の内容モデルで許容される。
包含文書の中で、この構造要素は標準的にはレンダリングされない。
XForms処理系は、認識できない無関係な名前空間の属性を無視しなければならず、3.4 XForms必須理解モジュールの規則に従って認識できない無関係な名前空間の要素を処理しなければならない。
無関係な名前空間の要素の存在は、包含文書プロファイルの定義に従うことに注意すること。
この要素は、フォームの定義を表し、XFormsモデルを定義する要素を包含するのに使われる。包含文書内で存在できるmodel
要素の数に制限はない。
XMLイベントの属性が、この要素に対して、オブザーバを作成するのを容易にするために許容されている。この要素は、XFormsアクションではなく、あらかじめ定義されていないイベントベースの振る舞いを持つ。
特殊属性:
オプションの、XFormsモデルで必要とされる、XPath拡張関数の空白で区切られたリスト(QNamesで表現されている)。この要素の利用の手引きは、7.12 拡張関数にある。
オプションの、このmodel
要素の外のXMLスキーマ文書とリンクする、xsd:anyURI
のリスト。XForms処理系は、この属性で列挙された全てのスキーマを処理しなければならない。それぞれのXFormsモデルの中では、インラインの、及びリンクされたスキーマを含め、名前空間宣言ごとに一つのスキーマという制限がある。
注:
schema
のリストは、例えば"#myschema"
のような包含文書内の他の場所にある要素を参照するURI断片を含んでもよい。
この例は、model
の単純な使用法を示す。XForms名前空間をデフォルトとする。
<model id="Person" schema="MySchema.xsd"> <instance src="http://example.com/cgi-bin/get-instance" /> ... </model>
このオプションの要素は、初期インスタンスデータを包含するか、参照する
共通属性: 共通
特殊属性:
オプションの、外部で定義された初期インスタンスデータへのリンク。もしリンクが辿れなければ、例外(4.5.2 xforms-link-exceptionイベント)として扱われる。
属性及びインライン内容の両方が提供されると、4.2.1 xforms-model-constructイベントで説明されるように、リンクされた版が優先される。
初期インスタンスデータがリンクにより与えられると、インスタンスデータは、初期データはリンクされたリソースのXPathデータモデルを作成することによって形成される。
初期インスタンスデータがインライン内容によって与えられると、インスタンスデータは、まず、インライン内容の分離された複製を作成し(包含する祖先から継承された名前空間を含む)、次に分離された複製に対しXPathデータモデルを作成することによって得られる。instance
要素の内容は単一の子要素に制限されることに注意すること。
もし、XMLエラーによりインラインのインスタンスデータの分離された複製の作成に失敗すると、処理はxforms-link-exceptionで停止すべきである。これは、たとえば、インライン内容が二つの要素ノードを持っていると、二つの文書要素のあるXML要素を生成させようとして、起こりうる。
注:
XForms 1.1では、新しい例外ができるだろう。
注:
XPathデータモデルに関係がある全てのデータは、処理命令、コメントノード及び全ての空白を含め、処理や投稿の間、保存されなければならない。
注:
名前空間ノードの直列化に追加の制御が必要なXForms制作者は、submission
要素にincludenamespaceprefixes
属性を使うことができる。
この要素は、何を、どのように投稿するかに関する宣言型の指示を表す。投稿処理の詳細は、11 投稿で説明されている。
共通属性: 共通
特殊属性:
オプションの、bind
要素への参照。存在すると、この属性の束縛参照は、ref
属性からのいかなる束縛参照よりも優先的に使用される。
オプションの、インスタンスデータの一部の投稿を可能にする選択子の束縛表現。デフォルト値は"/"である。
必須の、投稿するインスタンスデータの目標URI。リンクにおける相対URIの振る舞いは、ホスト言語によって決定されるが、[XML Base]処理が強く推奨される。
必須の、直列化されるインスタンスデータを伝送するのに使われるプロトコルを指定する属性。デフォルト値はない。
オプションの、直列化されるXMLのversion
を指定する属性。
オプションの、直列化で可読性のために余分な空白を付加するかどうかを指定する属性。
オプションの、XMLインスタンスの直列化のための媒体型を指定する属性。制作者は、指定される型がapplication/xml
と互換性のあることを保証すべきである。
オプションの、直列化の符号化方式を指定する属性。
オプションの、直列化されたインスタンスデータのXML宣言を省くかどうかを指定する属性。
オプションの、直列化されたXMLにおいてスタンドアロン宣言を含むかどうかを指定する属性。
オプションの、CDATAセクションで直列化されるべき要素名を指定する属性。
オプションの、返される情報が投稿後にどのように適用されるべきか指定する属性。この属性がなければ、"all"と見なされる。
オプションの、replace
属性値が"instance"である場合に置換するインスタンスを指定する属性。属性がなければ、デフォルトは投稿データを包含しているインスタンスである。この属性が投稿と同じモデルの中でインスタンスを指し示していなければ、xforms-binding-exception(4.5.1 xforms-binding-exceptionイベント)が起こる。
オプションの、url符号化における名前・値の組の間の区切り文字を指定する属性。デフォルト値は';'である。
オプションの、名前空間の直列化に制御を提供する属性。もし存在しなければ、インスタンスデータの中に存在する全ての名前空間ノードが直列化で考慮される。もし存在すれば、明白に使われているものに加えて、直列化で考慮される名前空間の接頭辞のリストを指定する。[Exc-C14N]と同様に、特別の値#default
がデフォルトの名前空間を指定する。
次の例は、submission
要素の様々なオプションがいかにapplication/xml
としての直列化に影響するかを示す。次にXFormsの断片を与える。
<xforms:model xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:my="http://ns.example.org/2003"> <xforms:instance> <qname xmlns="">my:sample</qname> </xforms:instance> <xforms:submission method="post" action="..."/> </xforms:model>
includenamespaceprefixes
属性が存在していないため、全ての名前空間ノードが直列化され、結果として次の直列化されたインスタンスデータとなることに注意すること。
<qname xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:my="http://ns.example.org/2003">my:sample</qname>
特に、XForms名前空間が直列化されていることに注意すること。例が、不必要なXForms名前空間を含まないようにし、必要なmy
接頭辞を保つためには、includenamespaceprefixes="my"
が、submission要素に追加されなければならない。この属性が存在する場合、制作者は、投稿されるインスタンスデータで明示的に使われていない全ての名前空間接頭辞を列挙する責任を負う。
次の属性は、"yes"|"no"
を置き換えとしてxsd:boolean
を用いているという例外はあるものの、[XSLT 1.0]のoutput
要素の属性と一致する(綴り、処理、デフォルト値において)。
version
indent
encoding
omit-xml-declaration
cdata-section-elements
注:
次のXSLTの属性はXFormsにおいて対応するものを持たない。
doctype-system
doctype-public
XFormsアクションモジュールで定義される要素も、モジュールが含まれる場合、submission
内容モデルで許容される。
bind
要素は、nodeset
属性のモデル束縛表現で、インスタンスデータからノード集合を選択する。bind
要素のほかの属性は、ノード集合の各ノードに適用されるモデル項目特性を符号化する。bind
がxsd:ID
型の属性を持っていれば、bind
は、その識別子を選択されたノード集合に束縛する。
特殊属性:
7.5.2 モデル束縛表現で定義されるように、このbind
が作用するノード集合を選択するモデル束縛表現。
追加のノードがinsert
アクションを通して加えられると、新たに加えられたノードは、束縛表現にマッチするどのノード集合にも含まれる。9.3.5 insert要素のinsert
アクションを参照のこと。
束縛が評価文脈にどう影響するかについての詳細は、7.4 評価文脈を参照。
extension
やホスト言語で定義される無関係の名前空間の要素のような、ある特定の要素が、特定のフォームの操作に重要であることがある。
要素 | 属性 | 最小内容モデル |
---|---|---|
任意 | xforms:mustUnderstand (xsd:boolean) | n/a |
要素がmustUnderstand="true"
とマーク付けされ、XForms処理系が要素を処理するのに利用可能な実装を持っていなければ、終了してエラーを利用者に報告しなけれならない。
ホスト言語がXFormsを含むのに、多数の異なる方法がある。一つのアプローチは、妥当性を無視し、整形式の処理だけを用いるものである。別のアプローチは、例えばXHTML 1.0のように、あらかじめ定義された要素だけが許容されるという、厳密な妥当性を用いるものである。また別のよくあるアプローチは、規制されない内容をいくつかの選択された場所で許容するというものである。このオプションを選ぶホスト言語は、拡張モジュールを使うことができる。
要素 | 属性 | 最小内容モデル |
---|---|---|
extension | 共通 | 任意 |
オプションのextension
要素は、アプリケーション固有の拡張要素を包含するものである。この仕様書では、この要素の処理は定義しない。
共通属性: 共通
例えば、次のように、RDFメタデータを個々のフォームコントロールに添付できる。
<input ref="dataset/user/email" id="email-input"> <label>Enter your email address</label> <extension> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="#email-input"> <my:addressBook>personal</my:addressBook> </rdf:Description> </rdf:RDF> </extension> </input>
目次 | 上へ |