Tipos de dados de modelo de passagem
*DataType: PASSTHROUGH define um modelo para representar um tipo de dados não processado. Os caracteres que compõem o valor GDL são inseridos como Conteúdo do Elemento do elemento XML que representa o atributo GDL.
As seguintes diretivas são reconhecidas em um modelo que define o tipo de dados PASSTHROUGH:
- *ArrayLabel. Se essa diretiva for especificada, o filtro do analisador espera que o valor seja colocado entre parênteses e precedido pelo rótulo de matriz especificado. Essa diretiva é opcional.
A sintaxe do valor deve aderir à sintaxe definida para o conteúdo do elemento XML que pode incluir dados de caractere, elementos filho e assim por diante. Observe também que o analisador GDL não escapará de caracteres XML especiais, como um colchete de abertura ou fechamento (< ou >) ou um e comercial (&). O criador do valor é responsável por estar em conformidade com o valor da sintaxe XML do conteúdo do elemento.
Se a sintaxe XML entrar em conflito com as regras básicas de sintaxe de GDL, todo o valor (ou apenas a parte conflitante) deverá ser colocado entre <constructos Begin/EndValue:> . Valores XML com sintaxes incompatíveis ou cuja sintaxe é incompatível com a sintaxe usada por tipos de dados compostos não podem aparecer como um membro de um tipo de dados composto, mas devem aparecer diretamente como o valor de um atributo GDL.
Por exemplo, considere o modelo de exemplo a seguir.
*Template: ELEMENT_CONTENT
{
*Type: DATATYPE
*DataType: PASSTHROUGH
}
Com o modelo anterior, o filtro do analisador não cria uma declaração de tipo de dados de esquema XSD para dados PASSTHROUGH.
Considere a entrada GDL a seguir.
*InLineXML: <BeginValue:XML>
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<EndValue:XML>
Se a entrada anterior for interpretada usando o modelo de exemplo anterior, a saída XML a seguir ocorrerá.
<GDL_ATTRIBUTE Name="*InLineXML" >
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
</GDL_ATTRIBUTE>
Se você quiser validar as instâncias PASSTHROUGH usando um esquema XML, deverá usar o tipo de dados XSD_DEFINED em vez de PASSTHROUGH, pois o tipo de dados XSD_DEFINED permite que o esquema XSD seja definido explicitamente no modelo e seja integrado à saída do esquema pelo analisador.