3 つの別々の独立したディスクリプターを 1 つのディスクリプターとして提示する

ユーザーが使いやすくするため、およびここでは論じられていない所定の設計上の理由のため、マクロ・エディターは、「Field Counts and OIA」ディスクリプターを 1 つのディスクリプターとして提示します (図 1 を参照)。しかし、実際には、マクロ・エディターの記述タブ上の「Field Counts and OIA」ディスクリプターの 3 つの部分はそれぞれ、基礎 XML マクロ言語の別々の独立したディスクリプターに対応します。具体的には、次のとおりです。
  • 「フィールド数」の設定は、<numfields> 記述子として保管される。
  • 「入力フィールド数」の設定は、<numinputfields> 記述子として保管される。
  • 「OIA が禁止解除になるのを待つ」の設定は、<oia> 記述子として保管される。
表 1 は、これらの 3 つのタイプの記述子をリストし、<description> エレメント内に存在できる各記述子の数を示します。
表 1. 使用できる各ディスクリプター・タイプの数
ディスクリプターのタイプ: マクロ画面ごと (つまり、<description> エレメントごと) に使用できるこのタイプの記述子数:
<oia> 1 (必須)
<numfields> 1 (オプション)
<numinputfields> 1 (オプション)
上記の表が示すように、これらの記述子のタイプごとに 1 つだけが、<description> エレメントに存在できます。<oia> 記述子は必須ですが、<numfields> 記述子と <numinputfields> 記述子はオプションです。マクロ・エディターがこれらの規則を実行します。
マクロ・エディターの「説明」タブで「フィールド数および OIA」記述子を表示した後、ソース表示でこの記述子について調べると、ここで説明した内容についての理解が深まります。図 1 は、マクロ・エディターの「説明」タブ上の「フィールド数および OIA」記述子を示しています。「Field Counts and OIA」ディスクリプターの 3 つの部分の設定値は、次のように設定されます。
Number of Fields:  80
Number of Input fields:  3
Wait for OIA to Become Uninhibited:  true
しかし、コード・エディターを使用して対応する <description> エレメントを調べると、次のように表示されます。
図 1. 3 つの記述子を持つ <description> エレメント
<description>
   <oia status="NOTINHIBITED" optional="false" invertmatch="false" />
   <numfields number="80" optional="false" invertmatch="false" />
   <numinputfields number="3" optional="false" invertmatch="false" />
</description>
上記の XML コード・フラグメントは、<description> エレメントに、3 つの別々の独立した記述子が含まれていることを示します。各記述子は、「フィールド数および OIA」記述子の 3 つの部分のいずれかに対応しています。
「Field Counts and OIA」ディスクリプターの設定を次のように変更すると仮定します。
Number of Fields:  (blank)
Number of Input fields:  (blank)
Wait for OIA to Become Uninhibited:  true
最初の 2 つのフィールドをブランクに設定すると、これらの項目がスクリプトに組み込まれないように、マクロ・エディターに指示します。コード・エディターを使用して対応する <description> エレメントを再度調べると、次のように表示されます。
<description>
   <oia status="NOTINHIBITED" optional="false" invertmatch="false" />
</description>
上記の XML コード・フラグメントは、<description> エレメントに、1 つの記述子、つまり「フィールド数および OIA」記述子の「OIA が禁止解除になるのを待つ」設定に対応する <oia> 記述子だけが含まれていることを示しています。