グループ 要素には、Header,Footer、First Found、および Repeating Group も含まれます。ドキュメントの先頭と末尾を検出するには、Header 要素と Footer 要素を使用します。Header 要素と Footer 要素は、それぞれドキュメント内に 1 回しか出現できません。Repeating Group は繰り返し出現する グループ 要素です。Labeled Field 要素も複合要素として表すことができます。
- FlexiLayout の独立した部分をテストしやすくするため。たとえば、100 個の要素から成る FlexiLayout に、タイトル、本文、ドキュメントの下部という 3 つの グループ要素だけを含めることができます。これら 3 つの グループ要素それぞれに、ドキュメントのより小さな部分を記述する グループ要素を含めます。この方法により、検討すべき候補の数を抑えられるだけでなく、各グループを個別に編集してテストできるため、FlexiLayout のデバッグも容易になります。
- FlexiLayout ツリー内でのナビゲーションを容易にするため。
- 要素仮説の数を減らし、それによって最終仮説の生成を高速化するため。要素をグループ化すると、プログラムは要素の集合を 1 つのまとまりとして扱えるようになります。このまとまりに対しては 1 つの仮説が生成されます (ただし、これはサブ要素の仮説で構成されます) 。また、その品質も計算できます。サブ要素仮説のさまざまな組み合わせの検討はグループ内で行われ、ツリーを下方向に探索する際には、最良のグループ仮説のうち所定数のみが使用されます。グループ要素に対する最良仮説のデフォルト数は 1 です。 注。 仮説の最大数を増やすことは推奨しません。ツリーが制御不能なほど増大し、FlexiLayout を画像に照合できなくなるおそれがあるためです。
- グループ要素では、すべてのサブ要素に共通する検索制約を指定できます。特定の要素の検索領域は、そのサブ要素で指定された検索領域とグループ全体の検索領域との共通部分として計算されます。 注。 グループ要素の検索領域とそのサブ要素の 1 つの検索領域との共通部分が空になる場合があり、その場合プログラムはそのサブ要素を見つけられません。グループ要素には、たとえば “Above: PageRect.Top + PageRect.Height/2;” (つまり “画像の上半分で要素を探す”) のような、より単純なリレーションだけを指定するようにするか、あるいはリレーションをまったく指定しないようにしてください。“
