代码列表管理

概述

使用 XSD 可以为元素或属性指定特定的一组有效值。 此功能是使用 枚举 元素提供的。 通过限制派生 Field ElementField Attribute 节点的数据类型时,在 “限制 ”类别中可用的属性之一是 Enumeration 属性。 使用此属性,可以打开“ 枚举编辑器 ”对话框,在该对话框中,可以输入应被视为对实例消息中的相应元素或属性有效的值。

Microsoft BizTalk Server 提供了另一种管理架构中的枚举的方法,即代码列表,此方法的功能更为丰富。 代码列表使用 Microsoft Access 数据库来存储各种枚举选项,从而允许您以更加集中的方式管理枚举。 此外,如果需要使用的枚举值由非直观的数值代码组成(需要使用 Enumeration 属性以该形式输入),则你在 Access 数据库中创建的用于代码列表功能的表包括这些数值的文本说明。 文本说明在 CodeList 对话框中使用,而不是它们更模糊的数字等效项。

使用代码列表

必须执行以下多个不同步骤以使用代码列表功能:

  • 必须创建一个 Access 数据库,该数据库包含具有相应名称和所需列的表,然后使用相应值填充该表。

    • 表的名称是架构节点的标准版和标准版属性的组合,用下划线 (_) 字符分隔。 例如,如果将“架构”节点的 Standard 属性设置为 XML,将“标准版本”属性设置为“MyVersion1”,则 CodeList Database 属性指定的 Access 数据库必须具有名为 XML_MyVersion1 的表。

      有关这些属性的更多详细信息,请参阅 UI 指南和开发人员 API 命名空间参考

    • 此表必须包含三列,通常名为“代码”、“值”和“说明”。 第一列标识彼此相关的行,其中每个此类行都提供一个枚举选项,这些枚举选项可能允许与所选 Field 元素Field 属性 节点对应的数据。 第一列中具有相同值的所有行将构成一组。 这些值通常为整数,但也可以为不包含空格的任何字符串。

      该表中每一行的第二列和第三列必须分别配置为包含与每个可能的枚举值相对应的值和文字说明。

      例如,以下显示了一个用于代码列表功能的 Access 数据库表,其中包含了两组枚举值,每组中有三个相关的枚举值。 第一列中的特定值可以为任意值,并用于将相关行相关联。

      代码 Value Desc
      1 13 红色
      1 16 绿色
      1 19 蓝色
      2 1 小型
      2 2 中型
      2 3 大型
  • 必须正确配置 架构 节点的三个属性:

    • 必须将 CodeList Database 属性设置为已创建的 Access 数据库的名称。

    • 必须设置 StandardStandard Version 属性,以便在它们与分隔下划线 (_) 字符组合时,它们会形成指定 Access 数据库中相应表的名称。

  • 若要对特定的选定 Field Element 或 FieldAttribute 节点实际使用 Access 数据库中的值,必须配置其两个属性:

    • 必须将其 Derived By 属性设置为 “限制”。 在执行此步骤之前,将不启用需要配置的另一个属性 CodeList

    • 必须在 CodeList 属性中键入一个值,该值对应于指定 Access 数据库中一行或多行 (Code 列) 第一列中的值。 此操作标识要对应于所选 Field 元素或 Field属性 节点的枚举值集。

      然后,您必须单击位于 CodeList 属性值字段右侧的省略号 (...) 按钮以打开 CodeList 对话框。 使用此对话框中的检查框,选择要允许作为与所选 Field 元素或 Field属性节点相对应的实例消息数据法定值的值。 您可以只选择一部分可用值。 例如,使用上表示例,如果在 CodeList 属性中键入值 1,则 CodeList 对话框将包含“红色”、“绿色”和“蓝色”选项。 如果为“红色”和“绿色”选择检查框,并且未选择“蓝色”检查框,则 XSD 中只会显示以前的颜色作为所选 Field 元素Field 属性节点的有效值。

注意

CodeListCodeList 数据库属性仅在设计时使用,并作为枚举属性的相应设置保留在 XSD 中。 在运行时,仅针对 Enumeration 属性验证所有值。

注意

对于给定的 Field 元素Field 属性 节点,请勿同时使用 Enumeration 属性和 CodeList 属性。 使用后一属性将会导致覆盖使用前一属性输入的值。

另请参阅

创建架构时的注意事项