Os tipos de separação TDS e as propriedades do modelo lógico têm algumas restrições, como composição de grupo e validação de conteúdo de grupo.
As regras que controlam estas opções são explicadas em Conjuntos de Mensagens: Restrições para Tipos Complexos de Aninhamento.
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 |
Os valores Padrão nunca são observados. |
Comprimento Fixo |
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 para eles. 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 esses 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.
Ao analisar e gravar, a interpretação exata destas propriedades depende da propriedade Separação do Elemento de Dados do tipo complexo ou do grupo pai conforme mostrado na tabela a seguir.
Entretanto, este comportamento é substituído se a referência Referência de Repetição do TDS está configurada, o que indica que o número de ocorrências é fornecido em substituição por um elemento inteiro que ocorre anteriormente na mensagem. Consulte a seção Referência de Repetição para obter informações adicionais.
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 |
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 é
usado apenas ao analisar e gravar, com a propriedade Delimitador de Elemento de Repetição do elemento
e a propriedade Suprimir Delimitadores
de 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 de Elemento Ausente for Nunca, todas as ocorrências serão esperadas ao analisar e produzidas ao gravar, embora a análise aceite elementos ausentes. Ocorrência opcional (Mín. Ocorrências = 0) é ignorado e um delimitador ainda é esperado ao analisar e produzido ao gravar. 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 |
Máx. Ocorrências é
usado apenas na análise e gravação. Em geral, 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 usados para elementos ausentes e quaisquer elementos em excesso são descartados. 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) é 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 um Terminador de Grupo ou Delimitador do grupo que os contém, ou pelo fim do fluxo de bits da mensagem. Na gravação, o gravador envia todas as ocorrências na árvore de mensagens, se este número for menor que Ocorrências Mín., 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á finalizada 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. |
A propriedade Referência de Repetição do TDS especifica um campo que contém o número de repetições de um objeto (Elemento ou Grupo) em uma mensagem. O campo que contém o número de repetições deve estar na mensagem anterior ao objeto ao qual ela se refere.
De uma perspectiva de análise, a propriedade Referência de Repetição substitui a função das propriedades minOccurs e maxOccurs.
Se um valor para a propriedade Referência de Repetição for especificado para um objeto, os valores especificados para as propriedades minOccurs e maxOccurs serão ignorados durante a análise e gravação. No entanto, os valores especificados para minOccurs e maxOccurs são utilizados pela validação lógica.
Ao analisar e gravar, a interpretação exata da propriedade Repetir Referência depende da propriedade Separação do Elemento de Dados do tipo complexo ou grupo pai, conforme mostrado na tabela a seguir.
Tipo de Separação | Interpretação de Referência de Repetição |
---|---|
Marcado Delimitado |
Referência de Repetição é efetivamente ignorado durante a 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 | Repetir referência é
usado ao analisar e gravar, com a propriedade Delimitador de Elemento de Repetição do elemento
e a propriedade Suprimir Delimitadores do
Elemento Ausente do tipo-pai. Uma Referência de Repetição será permitida apenas se o tipo complexo pai ou grupo tiver Suprimir Delimitadores do Elemento Ausente configurado como Nunca. Todas as ocorrências da Referência de repetição são esperadas ao analisar e produzidas ao gravar. No entanto, a análise aceita elementos ausentes. A Referência de Repetição = 0 é permitida. Nenhum delimitador é esperado ao analisar nem produzido ao gravar. |
Comprimento Fixo |
A Referência de Repetição é
utilizada durante a análise e gravação. As ocorrências da Referência de Repetição são esperadas ao analisar e são produzidas ao gravar, com valores padrão usados para elementos ausentes.
A Referência de Repetição = 0 é permitida. |
Elementos Variáveis de Comprimento Delimitados | Para elementos simples com comprimento fixo, as regras para a separação de Comprimento Fixo acima são seguidas. Para elementos simples de comprimento variável, todos os elementos e grupos complexos, as regras para Todos os Elementos Delimitados listadas acima são seguidas. |
Padrão de Dados | Referência de Repetição é efetivamente ignorado durante a 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á finalizada para evitar um loop infinito. |