Freigeben über


Passthroughvorlagendatentypen

*DataType: PASSTHROUGH definiert eine Vorlage, die einen nicht verarbeiteten Datentyp darstellt. Die Zeichen, aus denen der GDL-Wert besteht, werden als Elementinhalt des XML-Elements eingefügt, das das GDL-Attribut darstellt.

Die folgenden Anweisungen werden in einer Vorlage erkannt, die den PASSTHROUGH-Datentyp definiert:

  • *ArrayLabel. Wenn diese Direktive angegeben wird, erwartet der Parserfilter, dass der Wert in Klammern eingeschlossen und der angegebenen Arraybezeichnung vorangestellt wird. Diese Direktive ist optional.

Die Syntax des Werts muss der Syntax entsprechen, die für XML-Elementinhalte definiert ist, die Zeichendaten, untergeordnete Elemente usw. enthalten können. Beachten Sie auch, dass der GDL-Parser keine speziellen XML-Zeichen wie eine öffnende oder schließende Klammer (< oder >) oder ein Ampersand (&) enthält. Der Ersteller des Werts ist für die Anpassung des Werts an die XML-Syntax für Elementinhalte verantwortlich.

Wenn die XML-Syntax mit den grundlegenden GDL-Syntaxregeln in Konflikt tritt, muss der gesamte Wert (oder nur der in Konflikt stehende Teil) in <Begin/EndValue:-> Konstrukte eingeschlossen werden. XML-Werte mit solchen inkompatiblen Syntaxen oder deren Syntax nicht mit der Syntax kompatibel ist, die von zusammengesetzten Datentypen verwendet wird, können nicht als Member eines zusammengesetzten Datentyps angezeigt werden, sondern müssen direkt als Wert eines GDL-Attributs angezeigt werden.

Betrachten Sie beispielsweise die folgende Beispielvorlage.

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

Mit der vorherigen Vorlage erstellt der Parserfilter keine XSD-Schemadatentypdeklaration für PASSTHROUGH-Daten.

Betrachten Sie den folgenden GDL-Eintrag.

*InLineXML:  <BeginValue:XML>
 <Cell CellOrdinal="0">
         <Value xsi:type="xsd:double">16890</Value>
         <FmtValue>16,890.00</FmtValue>
         <FormatString>Standard</FormatString>
      </Cell>
<EndValue:XML>

Wenn der vorherige Eintrag mithilfe der vorherigen Beispielvorlage interpretiert wird, tritt die folgende XML-Ausgabe auf.

<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>

Wenn Sie die PASSTHROUGH-Instanzen mithilfe eines XML-Schemas überprüfen möchten, sollten Sie anstelle von PASSTHROUGH den datentyp XSD_DEFINED verwenden, da der datentyp XSD_DEFINED das XSD-Schema explizit in der Vorlage definiert und vom Parser in die Schemaausgabe integriert wird.