Estensione dell'Editor BizTalk
L'Editor BizTalk è progettato per consentire l'utilizzo di estensioni che supportano formati alternativi per i messaggi di istanza. In realtà, l'unico formato incorporato in Editor BizTalk è il formato XML. Anche il supporto per i formati di file flat, inclusi 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 di Editor BizTalk memorizzano i dati personalizzati come annotazioni XSD (XML Schema Definition) associate agli elementi XSD che corrispondono ai nodi dell'albero dello schema. Di nuovo, il set completo di annotazioni aggiunto in Editor BizTalk dall'Estensione file flat è un valido esempio del modo in cui le estensioni di Editor BizTalk possano memorizzare i propri dati personalizzati nello schema.
Le estensioni di Editor BizTalk sono assembly .NET che estendono la funzionalità di Editor BizTalk. Per essere identificato come estensione, un assembly deve avere una classe che implementa l'interfaccia IExtension e deve trovarsi nella cartella Strumenti di sviluppo\Estensioni editor schema nella directory di installazione del prodotto.
Lo sviluppatore dell'estensione deve far sì che il suo assembly faccia riferimento a Microsoft.BizTalk.SchemaEditor.Extensibility.dll, che contiene la definizione di tutte le interfacce necessarie per esporre la funzionalità estesa a 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 gestioni proprietà, visualizzazioni personalizzate, convalida dello schema, generazione di istanze native e convalida dell'istanza nativa.
Uno schema specificato può avere più estensioni associate a esso, ma solo uno può essere impostato come standard in un determinato momento; viene impostato nella proprietà Standard del nodo Schema . L'estensione impostata come standard viene utilizzata per la generazione e la convalida delle istanze native e per la convalida dello schema.
Le estensioni possono essere associate a uno schema specifico modificando la proprietà Estensioni editor schema del nodo Schema . Le informazioni sulle estensioni associate a uno schema vengono archiviate nello schema stesso, all'interno dell'elementoannotazione 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 extension, 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 .
In questa sezione vengono descritti i modi in cui un'estensione di Editor BizTalk può integrarsi nell'ambiente di Editor BizTalk ed eseguire un hook dei comandi esistenti di Editor BizTalk.