使用其他架构的架构
概述
当架构变得庞大而复杂时,或者表示不同类型的实例消息的架构具有一些共同的部分时,将较小的架构合并到最终定义计划与贸易合作伙伴交换的实例消息结构的架构中会很有用。 例如,你可能有多个邮件类型,这些类型要求在邮件中表示送货地址。 可以在单个架构中定义送货地址的结构,然后在定义订单、发票和发货通知消息架构的其他架构中使用该架构。
导入、包含和重新定义
XML 架构定义 (XSD) 语言提供了三种相关机制,用于结合使用 BizTalk 编辑器支持的多个架构。 下表总结了 XSD 定义的这些机制的特征。
多schema 机制 | 使用方案 |
---|---|
导入 | - 访问和使用导入的架构中定义的类型。 - 必须按原样使用导入架构中的类型,或从中派生新类型;不允许修改类型。 - 提供使用其他命名空间中定义的类型的机制。 事实上,导入的架构必须具有不同于导入架构的目标命名空间。 - 使用 import 元素及其 命名空间 和 schemaLocation 属性引用其他架构。 |
包括 | - 访问和使用包含在包含的架构中定义的类型。 - 必须按原样使用包含架构中的类型,或从中派生新类型;不允许修改类型。 - 包含的架构必须与包含架构位于同一目标命名空间中,或者包含的架构的目标命名空间必须为空。 - 使用 include 元素及其 schemaLocation 属性引用其他架构。 |
定义 | - 访问和使用在重新定义的架构中定义的类型。 - 可以按原样使用重新定义的架构中的类型、从这些类型派生新类型或指定对它们的修改。 - 重新定义的架构必须与重新定义架构位于同一目标命名空间中,或者重新定义架构的目标命名空间必须为空。 - 使用 重新定义 元素及其 schemaLocation 属性来引用其他架构。 使用 重新定义 元素指定任何类型重定义。 注意: 使用重新定义机制是一个高级 XSD 概念,只有在充分了解应如何使用和何时使用它之后才应使用。 |
注意
有关导入机制、包括机制和重新定义机制之间的差异和相似性的完整信息,请参阅 Web 上的 XSD 资源中列出的引用。
重要详细信息
若要使用一个架构 (Schema1) 在另一个架构 (Schema2) 中定义的类型,必须在 Schema2 中提供对 Schema1 的引用。 为此,请使用 Schema2 中 Schema 节点的 Imports 属性。 单击“导入”属性字段中的省略号 (...) 按钮时,将打开“导入”对话框。 在“ 将新架构导入为 ”下拉列表中,选择“ XSD 导入”、“ XSD 包含”或 “XSD 重新定义”。 然后单击“ 添加 ”打开 “BizTalk 类型选取器 ”对话框,并在 BizTalk 项目中浏览以选择“ 架构1”。
有关这些步骤的详细说明,请参阅 创建使用其他架构的架构。
使用“ 导入 ”对话框导入、包含或重新定义另一个架构时,会将一个或多个 XSD 元素 导入、 包含和 重新定义 添加到架构的 XSD 表示形式中,包括相应的属性和属性值。 此外,对于 import 元素,另一个架构的命名空间的前缀声明将添加到 架构 元素中。
导入/包含/重新定义架构中的所有全局类型 ((如 ComplexTypes、 SimpleTypes、元素组、属性组) )都将自动可用于导入、包含或重新定义前一架构的架构。 例如,导入/包含/重新定义的架构中定义的全局 ComplexType 将添加到导入(包括或重新定义架构)中所有 Record 节点的“数据结构类型”属性的下拉列表中。 有关此属性的更多详细信息,请参阅 UI 指南和开发人员 API 命名空间参考。