创建对其他节点或类型的引用
可以使用全局节点来创建可重用的数据类型(结构片段),可以在架构中使用该类型,只要结构合适。 只能使用架构节点的直接子 级的节点来创建 全局类型。
还可以使用不是 架构 节点直接后代的节点的数据类型创建循环引用。 这对于表示架构中的递归结构很有用。
本主题提供各种类型的全局节点的分步说明,以及如何引用它们以使用它们。
创建全局声明
可以使用记录、字段或属性创建全局类型。 从记录创建的全局类型只能在记录中使用,只能在字段中使用从字段创建的类型,只能在属性中使用属性类型。 以下过程介绍如何定义和使用全局声明。
从节点创建全局声明
选择要使其类型全局可用的 “记录 ”、“ 字段属性”或“ 字段元素 ”节点。
在 “属性” 窗口中,在“ 数据结构类型” 列表中键入将用作复杂类型的全局名称的名称,然后按 Enter。
创建全局定义的“序列组”节点、“选择组”节点或“所有组”节点
选择要将全局定义的组节点插入到的 “记录 ”节点。
在 BizTalk 菜单上,指向 “插入架构节点”,然后根据需要单击“ 序列组”、“ 选择组”或“ 所有组”。
在新插入的组中创建 结构。 例如,插入 Record 或 Field Element 节点以表示组节点内数据的结构。
注意
序列组、 选项组和 所有组 节点只能包含对应于 XML 元素的节点,因此不能包含 Field Attribute 节点。
选择步骤 2 中插入的组节点。
在属性窗口,单击“组引用”,在值字段中键入名称,然后按 Enter。
通过在 “组引用” 属性中提供一个名称,即具有全局定义的组节点,之后可以将其他组节点与此全局定义的类型相关联, (结构) 。
创建全局定义的属性组节点
选择要在其中插入全局定义的“属性组”节点的“记录”节点。
在 BizTalk 菜单上,指向 “插入架构节点”,然后单击“ 属性组”。
这会将 属性组 节点添加到所选 Record 节点中子节点的末尾。
将相应的 字段属性 或 属性组 节点添加到 属性组。
(可选)如果要重命名 “属性组” 节点,请选择“ 属性组 ”节点,并将其 “组引用 ”属性更改为所选的新名称。
属性组始终是全局的,并且从其使用点引用。
使用已全局定义的类型或组
选择要为其使用全局定义类型的节点。
在属性窗口,从下拉列表中选择“数据结构类型”属性 (“记录”节点) 、“数据类型”属性 (Field Element 和 Field Attribute 节点) ,或“组引用 (序列组”、“选择组”、“所有组”和“属性组”节点) 。 有关这些属性的详细信息,请参阅 UI 指南和开发人员 API 命名空间参考。
注意
对全局定义类型或组的后续更改可以在它出现的任何架构位置进行。 这些更改将应用于在单个任意位置进行的所有此类位置。
创建全局声明后,无法一步删除它。 但是,可以在保存架构时使用“ 清理全局数据类型 ”对话框删除它,并使用以下过程。
删除全局声明
删除使用此全局类型或组的所有节点,或指定要在所有这些节点中使用的其他类型或组,或其某种组合。 有关删除节点的分步说明,请参阅 删除节点。
保存规范后,将显示“ 清理全局数据类型 ”对话框。 选择要从规范中完全删除的全局声明,然后单击“ 确定”。
注意
每次保存具有未使用的数据类型的架构时,都会显示“ 清理全局数据类型 ”对话框。 如果未显示此对话框,则表示架构中的某个位置使用了所有数据类型,或者架构在后一种情况下打开 (后尚未修改,则它可能仍包含以前保留的未使用的数据类型。
创建对另一个节点的循环引用
可以创建对节点的循环引用来表示递归架构元素。 为此,可以创建类型由封闭记录定义的节点。 例如,假设实例消息包装在具有相同结构的任意数量的信封中。 使用循环引用,可以创建定义此类实例消息的架构。
创建循环引用
选择要为其创建递归引用的 记录 节点。 这是表示递归结构顶部的节点。
在属性窗口中,验证“数据结构类型”是否具有值。
验证 Record 节点是否有与其关联的命名类型是必要的,因为当类型包含自身时,会定义递归结构。 类型只能通过嵌套使用命名全局类型来包含自身。
选择一个子 Record 节点或插入一个子 Record 节点。
对于子“记录”节点,在属性窗口的“数据结构类型”列表中选择步骤 2 中标识的数据结构。
重要
重复节点的 Min Occurs 属性必须设置为零 (0) 。 将其设置为 1 (1) 会导致无限循环。
如果导入包含递归元素的架构,BizTalk 编辑器不会自动检查以确保递归元素有效。