直通模板数据类型

*数据类型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 架构,并由分析程序集成到架构输出中。