使用模板定义数据类型

必须使用模板定义所有数据类型(基元类型和复合类型)。 定义数据类型后,任何属性模板都可以使用 *ValueType 指令将其值声明为特定数据类型。 此指令的值是数据类型模板的名称。

当分析器筛选器遇到作为特性实例的 GDL 数据条目时,它将尝试根据为该数据类型定义的语法规则分析该条目的值部分。 如果成功,分析器筛选器会将数据类型分解为其基元 XML 等效数据类型,并在相应的 XML 中输出这些值。 生成的表示复合数据类型的 XML 保留原始数据类型定义的逻辑结构。 复合数据类型的子元素是给定名称,这些名称由数据类型模板中定义的标记定义。 通过此命名,XML 快照的人工读取器或软件客户端可以轻松查找和标识复合数据类型中的每个值。

通过设置 *Type: DATATYPE 指令,将模板指定为数据类型模板(用于定义数据类型)。 在数据类型模板中识别的指令包括:

*ValueType:[Datatype 模板名称]。 此指令声明属性的值是特定数据类型。 *ValueType 指令只能在属性模板中显示。 (属性模板是带有 *Type: ATTRIBUTE 指令的模板)。

*DataType:符号。 此指令具有以下值之一:PASSTHROUGH、XML_TYPE、XSD_DEFINED、ENUMERATOR、FILTER_TYPE、ARRAY、COMPOSITE 或 MULTIPLE_PERSONALITY。

*ElementType:list。 此指令定义 TEMPLATE 数据类型名称的列表。

*RequiredDelimiter:分隔符。 此指令使用带引号的字符串定义分隔符。

*OptionalDelimiter:分隔符。 此指令使用带引号的字符串定义可选的分隔符。

*ArrayLabel:符号。 此指令使用带引号的字符串定义数组标签。

*ElementTags:列表。 此指令定义要用于元素标记的符号列表。

*EnumeratorList:list。 此指令定义要用于枚举器列表的符号列表。

*XSDTypeDefinition: 符号。 此指令定义一个任意值,由 <Begin/EndValue> 元素括起来,用于 XSD 类型定义。

*ComplexType?: 布尔值。 此指令定义类型是否复杂。 如果值为 TRUE,则类型为复杂;否则,该类型很简单。

*ArraySize:整数。 此指令定义数组的范围。 最多可以使用两个整数来指定数组范围。

*XMLDataType:string。 此指令使用带引号的字符串定义 XML 数据类型。

FilterTypeName:string。 此指令使用带引号的字符串定义筛选器类型名称。

*MaxValue:整数。 此指令使用 GDL 整数定义值的最大大小。

*MinLength:整数。 此指令使用非负 GDL 整数定义值的最小长度。

*MaxLength: 整数。 此指令使用非负 GDL 整数定义值的最大长度。

请注意 ,并非所有指令都是在所有数据类型模板中识别的。

一般情况下,如果没有模板可以绑定到 GDL 属性条目,该属性的值将在快照中发出,而不会在 CDATA 节中进行任何更改。 CDATA 应驻留为 ATTRIBUTE 元素的元素内容(即子元素)。

例如,假设分析程序找不到描述以下 GDL 属性条目的模板。

*ModelName: "OEMName LaserJet "

然后,条目将显示在快照中,如下所示。

    <GDL_ATTRIBUTE Name="*ModelName" 
        <![CDATA["OEMName LaserJet "]]></GDL_ATTRIBUTE>