Condividi tramite


Tipi di dati modello pass-through

*DataType: PASSTHROUGH definisce un modello per rappresentare un tipo di dati non elaborato. I caratteri che costituiscono il valore GDL vengono inseriti come Contenuto elemento dell'elemento XML che rappresenta l'attributo GDL.

Le direttive seguenti vengono riconosciute all'interno di un modello che definisce il tipo di dati PASSTHROUGH:

  • *ArrayLabel. Se questa direttiva viene specificata, il filtro del parser prevede che il valore sia racchiuso tra parentesi e preceduto dall'etichetta di matrice specificata. Questa direttiva è facoltativa.

La sintassi del valore deve essere conforme alla sintassi definita per il contenuto dell'elemento XML che può includere dati di tipo carattere, elementi figlio e così via. Si noti inoltre che il parser GDL non eseguirà l'escape di caratteri XML speciali come una parentesi quadra di apertura o di chiusura (< o >) o una e commerciale (&). L'autore del valore è responsabile della conformità del valore alla sintassi XML per il contenuto dell'elemento.

Se la sintassi XML è in conflitto con le regole di sintassi GDL di base, l'intero valore (o solo la parte in conflitto) deve essere racchiuso tra <costrutti Begin/EndValue:> . I valori XML con tali sintassi incompatibili o la cui sintassi non è compatibile con la sintassi utilizzata dai tipi di dati composti, non possono essere visualizzati come membri di un tipo di dati composto, ma devono essere visualizzati direttamente come valore di un attributo GDL.

Si consideri ad esempio il modello di esempio seguente.

*Template:  ELEMENT_CONTENT
{
    *Type:  DATATYPE
    *DataType:   PASSTHROUGH
}

Con il modello precedente, il filtro parser non crea una dichiarazione del tipo di dati dello schema XSD per i dati PASSTHROUGH.

Si consideri la voce GDL seguente.

*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 la voce precedente viene interpretata usando il modello di esempio precedente, si verificherà l'output XML seguente.

<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 si desidera convalidare le istanze PASSTHROUGH usando un XML Schema, è consigliabile utilizzare il tipo di dati XSD_DEFINED anziché PASSTHROUGH, perché il tipo di dati XSD_DEFINED consente di definire in modo esplicito lo schema XSD nel modello ed è integrato nell'output dello schema dal parser.