Existem algumas restrições em relação ao modelo lógico para mensagens que são definidas usando o CWF.
Uma mensagem CWF é sempre gravada com os elementos na sequência especificada na definição de modelo de mensagem lógica. No entanto, você nem sempre precisa especificar ESQL ou Java™ que constrói os elementos nessa sequência. As seguintes regras para codificação de ESQL são especificadas para cada valor da propriedade Composição de tipo.
Se os elementos ou tipos tiverem valores padrão e você não construir a mensagem na sequência correta, esses elementos construídos fora de sequência conterão seus valores padrão, não os valores configurados. Isto ocorre porque os elementos construídos fora de sequência são assumidos como de autodefinição e, para CWF, eles são descartados quando a mensagem é gravada no fluxo de bits.
Se os elementos tiverem valores padrão e você não construir a mensagem na sequência correta, esses elementos construídos fora de sequência conterão seus valores padrão, não os valores configurados. Isto ocorre porque os elementos construídos fora de sequência são assumidos como de autodefinição e, para CWF, eles são descartados quando a mensagem é gravada no fluxo de bits.
CWF é um formato fixo e todos os elementos devem estar presentes em uma mensagem. Portanto, a validação de conteúdo é ignorada. Na saída, todos os elementos devem ser configurados explicitamente (por exemplo, usando ESQL SET), configurados implicitamente (usando uma função de cópia de árvore) ou devem ter um valor padrão definido.
Na saída de uma mensagem CWF no domínio MRM, qualquer elemento, ou ocorrência de um elemento para o qual um valor não foi configurado (explícita ou implicitamente), herdará o valor padrão especificado do elemento. Se nenhum valor padrão tiver sido especificado, será emitida uma exceção.
As propriedades lógicas Mín. Ocorrências e Máx. Ocorrências especificam o número permitido de ocorrências de um elemento, ou grupo, em uma mensagem. Estas propriedades são utilizadas durante análise e gravação de mensagens e durante a validação do conteúdo de uma mensagem.
No CWF, as ocorrências Máx. Ocorrências são esperadas ao analisar e as ocorrências Máx. Ocorrências são produzidas ao gravar. Os valores padrão são utilizados para elementos ausentes e os elementos em excesso serão descartados.
Estas regras surgem porque, em um formato da mensagem CWF, não há tags ou outra marcação que pode ser utilizada para determinar o final de um número variável de repetições.
Entretanto, este comportamento é substituído se a propriedade Referência de Repetição de CWF estiver configurada, o que indica que o número de ocorrências é fornecido em substituição por um elemento inteiro que ocorre anteriormente na mensagem. Neste caso, Máx. Ocorrências é ignorado.
Na validação, Mín. Ocorrências e Máx. Ocorrências são utilizados para verificar se o conteúdo da árvore de mensagens corresponde ao modelo.
Listas e uniões são conceitos específicos de XML. Um elemento ou atributo de um tipo simples que é uma lista ou uma união gerará um aviso da lista de tarefas se um formato físico CWF aparecer no conjunto de mensagens. O usuário pode escolher se deseja transformar isso em um erro, aviso ou informação, editando as Preferências de Validação. O gerador de dicionário omite mensagens definidas para conter os elementos ou atributos da seção CWF do dicionário.