Condividi tramite


Estensione dell'editor BizTalk

L'editor BizTalk è progettato per consentire estensioni che supportano formati di messaggio di istanza alternativi. In effetti, il formato XML è l'unico formato integrato nell'editor BizTalk. Anche il supporto per i formati di file flat, incluso in Microsoft BizTalk Server, viene implementato come estensione dell'editor BizTalk, in modo da fungere da buon esempio del tipo di funzionalità che può essere aggiunto da tali estensioni.

In generale, le estensioni dell'editor BizTalk mantengono i dati personalizzati come annotazioni del linguaggio XSD (XML Schema Definition) associate agli elementi XSD che corrispondono ai nodi nell'albero dello schema. Anche in questo caso, l'ampio set di annotazioni aggiunte dall'estensione file flat all'editor BizTalk funge da buon esempio del modo in cui le estensioni dell'editor BizTalk possono rendere persistenti i dati personalizzati nello schema.

Le estensioni dell'editor BizTalk sono assembly .NET che estendono la funzionalità dell'editor BizTalk. Per essere identificato come estensione, un assembly deve avere una classe che implementa l'interfaccia IExtension e deve trovarsi nella cartella Developer Tools\Schema Editor Extensions nella directory di installazione del prodotto.

Lo sviluppatore di un'estensione deve avere il riferimento all'assembly Microsoft.BizTalk.SchemaEditor.Extensibility.dll, che contiene la definizione di tutte le interfacce necessarie per esporre funzionalità estese all'editor BizTalk. Tali interfacce vengono definite nello spazio dei nomi Microsoft.BizTalk.SchemaEditor.Extensibility .

L'interfaccia IExtension è il punto di ingresso per l'estensione, da cui l'editor BizTalk accede alle funzionalità estese, ad esempio i gestori delle proprietà, le visualizzazioni personalizzate, la convalida dello schema, la generazione di istanze native e la convalida dell'istanza nativa.

A un determinato schema possono essere associate più estensioni, ma solo una può essere impostata come standard in un determinato momento; questa proprietà viene impostata nella proprietà Standard del nodo Schema . L'estensione attualmente impostata come standard è quella usata per la generazione e la convalida dell'istanza nativa e per la convalida dello schema.

Le estensioni possono essere associate a uno schema specifico modificando la proprietà Estensioni dell'editor dello schema del nodo Schema . Le informazioni sulle estensioni associate a uno schema vengono archiviate nello schema stesso, all'interno dell'elemento annotazione dell'elemento dello schema , come illustrato nel frammento XSD seguente.

<?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">  
        ...  
  

Dopo aver creato un'istanza dell'oggetto estensione, il framework richiama il metodo Initialize dell'interfaccia IExtension , passando un oggetto ITree in modo che l'estensione possa accedere alle informazioni sull'albero dello schema. Ad esempio, l'estensione potrebbe attraversare tutti i nodi figlio accedendo alla proprietà ITree.RootNode .

Questa sezione descrive i modi in cui un'estensione dell'editor BizTalk può integrarsi nell'ambiente dell'editor BizTalk e associarsi ai comandi dell'editor BizTalk esistenti.

In questa sezione