CWF を使用して定義するメッセージの論理モデルに関して、いくつかの制限があります。
CWF メッセージは、常に論理メッセージ・モデル定義で指定されたシーケンスのエレメントを使用して作成します。 ただし、そのシーケンスでエレメントを構築する ESQL または Java™ を常に指定しなければならないわけではありません。 タイプ「構成」プロパティーの各値ごとに、 ESQL のコーディングのための以下の規則が備えられています。
エレメントまたはタイプがデフォルト値を持つ場合、ユーザーが正しいシーケンスでメッセージを構築していないと、 間違ったシーケンスで構築されたそのエレメントにはユーザーが設定した値ではなくそのデフォルト値が含まれます。 これは、間違ったシーケンスで作成されたエレメントが自己定義と見なされ、 CWF の場合、これらはメッセージがビット・ストリームに書き込まれるときに破棄されるためです。
エレメントがデフォルト値を持つ場合、ユーザーが正しいシーケンスでメッセージを構築していないと、間違ったシーケンスで構築されたそのエレメントにはユーザーが設定した値ではなくそのデフォルト値が含まれます。 これは、間違ったシーケンスで作成されたエレメントが自己定義と見なされ、 CWF の場合、これらはメッセージがビット・ストリームに書き込まれるときに破棄されるためです。
CWF は固定形式であり、すべてのエレメントがメッセージ内に存在していなければなりません。 したがって、内容の妥当性検査は無視されます。 出力では、すべてのエレメントが明示的 (例えば、ESQL SET を使用して) または暗黙的 (ツリー・コピー機能を使用して) に設定されているか、またはデフォルト値を定義している必要があります。
MRM ドメインの CWF メッセージの出力では、すべてのエレメント、または値が (明示的にまたは暗黙的に) 設定されていないエレメントの出現は、エレメントの指定されたデフォルト値を継承します。 デフォルト値が指定されていない場合には、例外がスローされます。
論理プロパティー「最小オカレンス」と「最大オカレンス」は、メッセージ内のエレメントまたはグループの許可された出現回数を指定します。 これらのプロパティーは、メッセージの構文解析と書き込み、およびメッセージの内容の妥当性検査を行うときに使用されます。
CWF では、構文解析時に「最大オカレンス」の出現が予期され、 書き込みを行うときに「最大オカレンス」の出現が生成されます。 欠落エレメントにはデフォルト値が使用され、余分なエレメントは破棄されます。
これらの規則が存在する理由は、CWF メッセージ形式では可変回数の反復の終わりの判別に使用できるタグや他のマークアップがないからです。
ただし、CWF プロパティー「反復参照」が設定されている場合、この動作は無効にされます。このプロパティーは、メッセージ内で先に出現する整数エレメントによって、代わりに出現回数が指定されることを示します。この場合、「最大オカレンス」は無視されます。
妥当性検査時に、「最初オカレンス」と「最大オカレンス」の両方を使用して、メッセージ・ツリーの内容がモデルと一致することを確認します。
リストとユニオンは XML 特有の概念です。 メッセージ・セットに CWF 物理形式がある場合は、単純タイプがリストまたはユニオンであるエレメントまたは属性が原因で、タスク・リストの警告が出されます。 ユーザーは、妥当性検査のプリファレンスを編集して、これをエラー、警告、または通知のどれにするかを選択できます。 ディクショナリー生成プログラムは、そのようなエレメントまたは属性を含むように定義されたメッセージをディクショナリーの CWF セクションから省略します。