傳遞範本數據類型
*DataType: PASSTHROUGH 會定義範本來表示未處理的數據類型。 組成 GDL 值的字元會插入為代表 GDL 屬性之 XML 元素的元素內容。
下列指示詞可在定義 PASSTHROUGH 資料類型的範本內辨識:
- *ArrayLabel。 如果指定這個指示詞,剖析器篩選條件預期值會以括弧括住,並在前面加上指定的數位標籤。 這個指示詞是選擇性的。
值的語法必須遵守針對 XML 元素內容定義的語法,這些語法可以包含字元數據、子元素等等。 另請注意,GDL 剖析器不會逸出特殊 XML 字元,例如開頭或右括號 (< 或 >) 或連字元 (&) 。 值的建立者負責將值與元素內容的 XML 語法一致。
如果 XML 語法與基本 GDL 語法規則衝突,則整個值 (或只有衝突的部分) 必須包含在 <Begin/EndValue:> construct 中。 具有這類不相容語法的 XML 值,或其語法與複合數據類型所使用的語法不相容,無法顯示為複合數據類型的成員,但必須直接顯示為 GDL 屬性的值。
例如,請考慮下列範例範本。
*Template: ELEMENT_CONTENT
{
*Type: DATATYPE
*DataType: PASSTHROUGH
}
使用上述範本時,剖析器篩選不會建立PASSTHROUGH資料的 XSD 架構數據類型宣告。
請考慮下列 GDL 專案。
*InLineXML: <BeginValue:XML>
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<EndValue:XML>
如果使用先前的範例範本解譯上述專案,就會發生下列 XML 輸出。
<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>
如果您想要使用 XML 架構來驗證 PASSTHROUGH 實例,您應該使用 XSD_DEFINED 資料類型 ,而不是 PASSTHROUGH,因為 XSD_DEFINED 數據類型允許在範本中明確定義 XSD 架構,並且已由剖析器整合到架構輸出中。