DFDL パーサーで choice エレメント、オプション・エレメント、および変数配列を解決する方法。
DFDL パーサーは、以下について、先読みを使用して不確実性ポイントを解決する再帰下降パーサーです。
- choice エレメント
- オプション・エレメント
- 変数配列エレメント
パーサーは、オブジェクトが「known to exist」と「known not to exist」のいずれかになるまで、推測的にデータを構文解析しなければなりません。 条件が確立するまで、処理エラーが発生すると、パーサーがエラーを抑止し、バックトラックを行い、代替処理を試行します。 不正なバックトラックを防ぐため、dfdl:discriminator 注釈を使用して、オブジェクトが「known to exist」であることを表明してください。 イニシエーターは、オブジェクトが「known to exist」であることを表明することもできます。すべての代替オブジェクトにイニシエーターが含まれる場合、dfdl:discriminator アノテーションを使用するよりも、親のシーケンスまたは選択項目で dfdl:initiatedContent プロパティーを yes に設定してください。