Existem algumas restrições entre os tipos de separação TDS e as propriedades do modelo lógico, tais como, composição de grupo e validação de conteúdo do grupo. As regras que controlam estas opções são explicadas em Restrições para Aninhamento de Tipos Complexos.
Essas regras existem para assegurar a integridade da mensagem. Uma combinação de tipo de separação e de composição de grupo ou de validação de conteúdo do grupo não deve conduzir uma mensagem que não está clara para uma analisador TDS.
No TDS, os valores Padrão são observados apenas por elementos de comprimento fixo.
Tipo de Separação | Utilização de valores Padrão |
---|---|
Marcado Delimitado Comprimento Fixo MarcadoComprimento Codificado MarcadoTodos os Elementos Delimitados |
Os valores Padrão nunca são observados. |
Comprimento Fixo Comprimento Fixo AL3 |
Os valores Padrão são observados na saída por todos os elementos. Um elemento ausente, que não tenha valor Padrão definido, causará um erro na gravação. |
Elementos Variáveis de Comprimento Delimitados | Os valores Padrão são observados apenas por elementos de comprimento fixo na saída. Os valores ausentes de comprimento fixo devem ter um valor Padrão disponível. Um elemento ausente, que não tenha valor Padrão definido, causará um erro na gravação. |
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 TDS estiver presente 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. Se for gerado um dicionário a partir do conjunto de mensagens e for feita uma tentativa de analisar uma mensagem TDS definida para conter tais elementos ou atributos, ocorrerá um erro de tempo de execuçã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. Elas são utilizadas durante a análise e gravação de mensagens e durante a validação do conteúdo de uma mensagem.
Na análise e gravação, a interpretação exata destas propriedades depende da propriedade Separação do Elemento de Dados do tipo complexo pai ou grupo, conforme mostrado na tabela abaixo.
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.
Tipo de Separação | Interpretação de Mín. Ocorrências e Máx. Ocorrências |
---|---|
Marcado Delimitado Comprimento Fixo MarcadoComprimento Codificado |
Mín. Ocorrências e Máx. Ocorrências são efetivamente ignorados na análise
e gravação. Na
análise, o número de ocorrências é identificado pelas tags na mensagem.
Na gravação, o escritor gera todas as ocorrências na árvore de mensagens.
|
Todos os Elementos Delimitados | Máx. Ocorrências é utilizado
apenas na análise e gravação, junto com a propriedade Delimitador do Elemento de Repetição do elemento e
com a propriedade Suprimir Delimitadores do Elemento Ausente do tipo-pai. Um número variado de ocorrências (Mín. Ocorrências <> Máx. Ocorrências) será permitido se a opção Suprimir Delimitadores de Elementos Ausentes estiver configurada como Fim do Tipo.
Se Suprimir Delimitadores do Elemento Ausente for Nunca, todas as ocorrências serão esperadas na análise e a saída na gravação, embora a análise aceite elementos ausentes. A ocorrência opcional (Mín. Ocorrências = 0) será ignorada e um delimitador ainda será esperado na análise e a saída na gravação. Sempre ausente (Máx. Ocorrências = 0) é permitido. Nenhum delimitador é esperado na análise, nem saída na gravação. Um número ilimitado de ocorrências (Máx. Ocorrências = -1) será permitido apenas se o Delimitador do Elemento de Repetição for diferente do Delimitador. As repetições devem ser terminadas pelo delimitador ou por um Terminador de Grupo ou Delimitador do grupo de inclusão ou pelo final do fluxo de bits da mensagem. Na gravação, o escritor gera todas as ocorrências na árvore de mensagens. |
Comprimento Fixo Comprimento Fixo AL3 |
Máx. Ocorrências é
utilizado apenas na análise e gravação. Em geral, as ocorrências Máx. Ocorrências são esperadas na análise e as ocorrências Máx. Ocorrências
são geradas na gravação com valores padrão utilizados
para elementos ausentes. Uma quantidade variável de ocorrências (Mín. Ocorrências <> Máx. Ocorrências) é ignorada, é a opção Máx. Ocorrências é assumida como padrão. A ocorrência opcional (Mín. Ocorrências = 0) é ignorada, Máx. Ocorrências é assumida. Sempre ausente (Máx. Ocorrências = 0) é permitido. Apenas Comprimento Fixo. Um número ilimitado de ocorrências (Máx. Ocorrências = -1) será permitido se o elemento ou grupo for o último filho em seu grupo-pai e o grupo for terminado por um Terminador de Grupo ou por um Terminador de Grupo ou Delimitador do grupo de inclusão ou pelo final do fluxo de bits da mensagem. Na gravação, o escritor gera todas as ocorrências na árvore de mensagens, se este número for menor que Mín. Ocorrências, os valores padrão adicionais serão gravados. |
Elementos Variáveis de Comprimento Delimitados | Para elementos simples de comprimento fixo, as regras para a separação de Comprimento Fixo acima são seguidas
com duas diferenças.
Para elementos simples de comprimento variável, todos os elementos e grupos complexos, são seguidas as regras para Todos os Elementos Delimitados acima. |
Padrão de Dados | Mín. Ocorrências e Máx. Ocorrências são efetivamente ignorados na análise
e gravação. Na análise, o padrão é correspondido o número de vezes possível.
Na gravação, o escritor gera todas as ocorrências na árvore de mensagens. Observe que
na análise, se o padrão de dados permitir uma correspondência de comprimento zero e ocorrer uma correspondência de comprimento zero,
um elemento será incluído na árvore de mensagens e a correspondência
será terminada para evitar um loop infinito. Um número variado de ocorrências (Mín. Ocorrências <> Máx. Ocorrências) é permitido. A ocorrência opcional (Mín. Ocorrências = 0) é permitida. Sempre ausente (Máx. Ocorrências = 0) é permitido. Um número ilimitado de ocorrências (Máx. Ocorrências = -1) é permitido. |