Erweitern von BizTalk-Editor
BizTalk®Editor lässt Erweiterungen zum Unterstützen alternativer Instanznachrichtenformate zu. XML ist das einzige in den BizTalk-Editor integrierte Format. Auch die Unterstützung von Flatfileformaten, die in Microsoft BizTalk Server enthalten ist, wird als BizTalk-Editor-Erweiterung implementiert und dient somit als gutes Beispiel für die Art der Funktionalität, die von solchen Erweiterungen hinzugefügt werden kann.
Standardmäßig speichern BizTalk-Editor-Erweiterungen ihre benutzerdefinierten Daten persistent als XSD-Sprachanmerkungen (XML-Schemadefinition), die den XSD-Elementen zugeordnet sind, die den Knoten in der Schemastruktur entsprechen. Die umfangreiche Palette von Anmerkungen, die BizTalk-Editor von der Flatfile-Erweiterung hinzugefügt werden, ist ein weiteres gutes Beispiel für die Art und Weise, in der BizTalk-Editor-Erweiterungen ihre benutzerdefinierten Daten im Schema persistent speichern können.
BizTalk-Editor-Erweiterungen sind .NET-Assemblys, die die Funktionalität von BizTalk-Editor erweitern. Um als Erweiterung identifiziert zu werden, muss eine Assembly über eine Klasse verfügen, die die IExtension-Schnittstelle implementiert, und sie muss sich im Produktinstallationsverzeichnis unter dem Ordner Entwicklertools\Schema-Editorerweiterungen befinden.
Entwickler einer Erweiterung müssen für deren Assembly einen Verweis auf die Datei Microsoft.BizTalk.SchemaEditor.Extensibility.dll erstellen, die die Definition aller Schnittstellen enthält, die für Nutzung der erweiterten Funktionen für BizTalk-Editor erforderlich ist. Diese Schnittstellen werden unter dem Namespace Microsoft.BizTalk.SchemaEditor.Extensibility definiert.
Die IExtension-Schnittstelle ist der Einstiegspunkt für die Erweiterung, von der aus der BizTalk-Editor auf die erweiterte Funktionalität zugreift, z. B. Eigenschaften-Manager, benutzerdefinierte Ansichten, Schemavalidierung, native instance-Generierung und native instance Validierung.
Einem bestimmten Schema können mehrere Erweiterungen zugeordnet sein, aber nur eine kann zu einem bestimmten Zeitpunkt als Standard festgelegt werden. dies wird in der Standard-Eigenschaft des Schemaknotens festgelegt. Die jeweils als Standard festgelegte Erweiterung wird zur Generierung und Überprüfung systemeigener Instanzen sowie zur Schemaüberprüfung verwendet.
Erweiterungen können einem bestimmten Schema zugeordnet werden, indem sie die Eigenschaft Schema-Editor-Erweiterungen des Schemaknotens bearbeiten. Die Informationen zu den Erweiterungen, die einem Schema zugeordnet sind, werden im Schema selbst im Anmerkungselement des Schemaelements gespeichert, wie im folgenden XSD-Fragment veranschaulicht.
<?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">
...
Nach dem Instanziieren des Erweiterungsobjekts ruft das Framework die Initialize-Methode der IExtension-Schnittstelle auf und übergibt ein ITree-Objekt , damit die Erweiterung auf Informationen zur Schemastruktur zugreifen kann. Beispielsweise könnte die Erweiterung alle untergeordneten Knoten durchlaufen, indem sie auf die ITree.RootNode-Eigenschaft zugreift.
In diesem Abschnitt wird beschrieben, wie sich eine BizTalk-Editor-Erweiterung in eine BizTalk-Editor-Umgebung integrieren und in vorhandene BizTalk-Editor-Befehle einbinden kann.