グループ 要素には、Header、Footer、First Found、および Repeating Group も含まれます。ドキュメントの先頭と末尾を検出するには、Header 要素と Footer 要素を使用します。それぞれ、ドキュメント内に 1 回しか出現できません。Repeating Group は繰り返し出現する グループ 要素です。Labeled Field 要素も複合要素として表すことができます。
グループ要素の検出方法
必要に応じて、検出するサブ要素の最小数を指定できます。FlexiLayout の適用時に検出されたサブ要素の数がこれより少ない場合、その複合要素は未検出と見なされます。 単純要素と同様に、グループ 要素は必須、任意、または禁止に設定できます。任意の グループ 要素に必須要素が含まれている場合、その要素をオブジェクトにマッチングできないと、グループ 要素はヌル仮説となり、プログラムは引き続き FlexiLayout のマッチングを試みます。 空の複合要素 (つまり、サブ要素を 1 つも含まない複合要素) は残さないでください。FlexiLayout のコンパイル時にプログラムが空の複合要素を検出すると、警告メッセージが表示されます。 Header 要素と Footer 要素はデフォルトで追加されます。FlexiLayout でこれらを使用しない場合は、不要な要素を削除してください。グループ要素を使用する場合
グループ要素は、次のような場合に役立ちます。- FlexiLayout の独立した部分をテストしやすくするため。 たとえば、100 個の要素で構成される FlexiLayout でも、グループ要素はタイトル、本文、文書の下部を表す 3 つだけという場合があります。これら 3 つの グループ要素にはそれぞれ、文書のさらに小さな部分を記述するグループ要素が含まれます。 この方法を使うと、検討すべき候補の数を抑えられるだけでなく、各グループを個別に編集してテストできるため、FlexiLayout のデバッグも容易になります。
- FlexiLayout ツリーでの移動を容易にするため。
- 可能な要素仮説の数を減らし、最終的な仮説の生成を高速化するため。 要素をグループ化すると、プログラムは一連の要素を 1 つのまとまりとして扱えるようになります。このまとまりに対しては、1 つの仮説 (ただし、サブ要素の仮説で構成されます) が生成され、その品質を計算できます。 サブ要素の仮説のさまざまな組み合わせはグループ内で検討され、ツリーを下って検索する際には、最良のグループ仮説のうち一定数だけが使用されます。グループ要素の最良仮説のデフォルト数は 1 です。
- すべてのサブ要素に共通する検索制約を指定するため。特定の要素の検索領域は、サブ要素で指定した検索領域とグループ全体の検索領域との交差領域として計算されます。
