扩展 BizTalk 编辑器
BizTalk 编辑器允许使用扩展来支持其他实例消息格式。 实际上,XML 格式是 BizTalk 编辑器内置的唯一格式。 甚至对 Microsoft BizTalk Server 中包含的平面文件格式的支持也作为 BizTalk 编辑器扩展实现,从而成为此类扩展可以添加的功能类型的良好示例。
通常,BizTalk 编辑器扩展将其自定义数据保存为 XML 架构定义 (XSD) 语言批注,这些批注与对应于架构树中节点的 XSD 元素相关联。 此外,平面文件扩展向 BizTalk 编辑器添加的扩展批注集也可作为 BizTalk 编辑器扩展在机构中保存其自定义数据的有效示例。
BizTalk 编辑器扩展是用于扩展 BizTalk 编辑器功能的 .NET 程序集。 若要标识为扩展,程序集必须具有一个实现 IExtension 接口的类,并且必须位于产品安装目录中的 Developer Tools\Schema Editor Extensions 文件夹下。
扩展开发人员必须令其程序集引用 Microsoft.BizTalk.SchemaEditor.Extensibility.dll,其中包含向 BizTalk 编辑器公开扩展功能所需的所有接口的定义。 这些接口在 Microsoft.BizTalk.SchemaEditor.Extensibility 命名空间下定义。
IExtension 接口是扩展的入口点,BizTalk 编辑器可从该入口点访问扩展功能,例如属性管理器、自定义视图、架构验证、本机实例生成和本机实例验证。
给定架构可以有多个与之关联的扩展,但在给定时间只能将一个扩展设置为标准:这是在架构节点的 Standard 属性中设置的。 当前设置为标准的扩展即为本地实例生成和验证以及架构验证所使用的扩展。
可以通过编辑架构节点的 “架构编辑器扩展 ”属性,将扩展与给定 架构 相关联。 有关与架构关联的扩展的信息存储在架构本身中(架构元素的注释元素内),如以下 XSD 片段所示。
<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns="http://BizTalk_Server_Project1.Schema11"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
targetNamespace="http://BizTalk_Server_Project1.Schema11"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<schemaEditorExtension:schemaInfo namespaceAlias="b"
extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension"
standardName="Flat File"
xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
<b:schemaInfo schema_type="document" root_reference="Root"
is_receipt="no" schema_name="abc"
standard="Flat File"
count_positions_by_byte="false" />
</xs:appinfo>
</xs:annotation>
<xs:element name="Root">
...
实例化扩展对象后,框架调用 IExtension 接口的 Initialize 方法,传递 ITree 对象,以便扩展可以访问有关架构树的信息。 例如,扩展可以通过访问 ITree.RootNode 属性遍历所有子节点。
本部分介绍将 BizTalk 编辑器扩展集成到 BizTalk 编辑器环境中并将扩展本身与现有 BizTalk 编辑器命令挂接的方法。