直通模板数据类型
*数据类型: PASSTHROUGH 定义一个模板来表示未处理的数据类型。 构成 GDL 值的字符将作为表示 GDL 属性的 XML 元素的元素内容插入。
以下指令在定义 PASSTHROUGH 数据类型的模板中被识别:
- *ArrayLabel。 如果指定了此指令,则分析程序筛选器要求值用括号括起来,前面是指定的数组标签。 此指令是可选的。
值的语法必须遵循为 XML 元素内容定义的语法,该内容可以包括字符数据、子元素等。 另请注意,GDL 分析程序不会转义特殊 XML 字符,如左括号或右括号 (< 或 >) 或和号 (&) 。 值的创建者负责使值符合元素内容的 XML 语法。
如果 XML 语法与基本 GDL 语法规则冲突,则必须将整个值 (或仅) 冲突部分包含在 Begin/EndValue:> 构造中<。 具有此类不兼容语法的 XML 值或其语法与复合数据类型使用的语法不兼容的 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 架构,并由分析程序集成到架构输出中。