扩展 BizTalk 编辑器

BizTalk 编辑器旨在允许支持备用实例消息格式的扩展。 事实上,XML 格式是 BizTalk 编辑器中内置的唯一格式。 Microsoft BizTalk Server 中包含的平面文件格式支持,是通过作为 BizTalk 编辑器扩展来实现的,从而成为这类扩展可以增加的功能类型的一个良好示例。

通常,BizTalk 编辑器扩展将自定义数据保留为 XML 架构定义(XSD)语言注释,这些注释与架构树中的节点相对应。 再者,平面文件扩展名在 BizTalk 编辑器中添加的大量注释是 BizTalk 编辑器扩展可以在架构中持久化其自定义数据的一个典范。

BizTalk 编辑器扩展是扩展 BizTalk 编辑器功能的 .NET 程序集。 若要标识为扩展,程序集必须具有一个实现 IExtension 接口的类,并且必须位于产品安装目录中的开发人员工具\架构编辑器扩展文件夹下。

扩展的开发人员必须具有其程序集引用 Microsoft.BizTalk.SchemaEditor.Extensibility.dll,其中包含向 BizTalk 编辑器公开扩展功能所需的所有接口的定义。 这些接口在 Microsoft.BizTalk.SchemaEditor.Extensibility 命名空间下定义。

IExtension 接口是扩展的入口点,BizTalk 编辑器从中访问扩展功能,例如属性管理器、自定义视图、架构验证、本机实例生成和本机实例验证。

给定架构可以有多个与之关联的扩展,但只能在给定时间将一个扩展设置为标准;这在架构节点的标准属性中设置。 当前设置为标准的扩展是用于本机实例生成和验证以及架构验证的扩展。

扩展可以通过编辑架构节点的架构编辑器扩展属性来与给定架构相关联。 与架构关联的扩展的信息存储在架构本身的架构本身中,如以下 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 编辑器命令中。

本节中