次の方法で共有


BizTalk エディターの拡張

BizTalk エディターの機能を拡張して、他のインスタンス メッセージ形式をサポートすることができます。 実際、XML 形式は BizTalk エディターに組み込まれている唯一の形式です。 Microsoft BizTalk Serverに含まれるフラット ファイル形式のサポートも、BizTalk エディター拡張機能として実装されているため、このような拡張機能によって追加できる機能の種類の良い例として機能します。

通常、BizTalk エディターの拡張機能は、スキーマ ツリーのノードに対応する XSD 要素に関連付けられている XSD (XML Schema Definition) 言語の注釈として、カスタム データを保存します。 また、フラット ファイル拡張機能によって BizTalk エディターに追加される数多くの注釈のセットは、BizTalk エディターの拡張機能スキーマにカスタム データを保存する方法を示す代表的な例といえます。

BizTalk エディターの拡張機能は、BizTalk エディターの機能を拡張する .NET アセンブリです。 拡張機能として識別するには、アセンブリに IExtension インターフェイスを実装する 1 つのクラスが必要です。また、製品インストール ディレクトリの Developer Tools\Schema Editor Extensions フォルダーの下に配置する必要があります。

拡張機能の開発者は、拡張機能を BizTalk エディターに公開するために必要なすべてのインターフェイスの定義が格納されている Microsoft.BizTalk.SchemaEditor.Extensibility.dll を、アセンブリで参照する必要があります。 これらのインターフェイスは、 Microsoft.BizTalk.SchemaEditor.Extensibility 名前空間で定義されています。

IExtension インターフェイスは拡張機能のエントリ ポイントであり、BizTalk エディターが拡張機能 (プロパティ マネージャー、カスタム ビュー、スキーマ検証、ネイティブ インスタンス生成、ネイティブ インスタンス検証など) にアクセスします。

特定のスキーマに複数の拡張機能を関連付けることができますが、特定の時点で標準として設定できるのは 1 つだけです。これは、スキーマ ノードの 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 エディター コマンドにフックする方法について説明します。

このセクションの内容