Compartir a través de


Ampliar el Editor de BizTalk

El Editor de BizTalk está diseñado para permitir extensiones que sean compatibles con formatos alternativos de mensajes de instancia. De hecho, el formato XML es el único formato integrado en el Editor de BizTalk. Incluso la compatibilidad con formatos de archivo plano, que se incluye en Microsoft BizTalk Server, se implementa como una extensión del Editor de BizTalk, lo que sirve como un buen ejemplo del tipo de funcionalidad que pueden agregar dichas extensiones.

En general, las extensiones del Editor de BizTalk almacenan sus datos personalizados como anotaciones de lenguaje de definición de esquemas XML (XSD) que están asociadas a los elementos XSD correspondientes a los nodos del árbol de esquema. De nuevo, el amplio conjunto de anotaciones agregadas por la Extensión de archivo sin formato al Editor de BizTalk sirve como ejemplo del modo en el que las extensiones del Editor de BizTalk pueden almacenar sus datos personalizados en el esquema.

Las extensiones del Editor de BizTalk son ensamblados .NET que amplían su funcionalidad. Para identificarse como una extensión, un ensamblado debe tener una clase que implemente la interfaz IExtension y debe encontrarse en la carpeta Herramientas de desarrollo\Extensiones del Editor de esquemas en el directorio de instalación del producto.

El programador de una extensión debe hacer que el ensamblado haga referencia a la biblioteca Microsoft.BizTalk.SchemaEditor.Extensibility.dll, que contiene la definición de todas las interfaces necesarias para exponer la funcionalidad ampliada en el Editor de BizTalk. Esas interfaces se definen en el espacio de nombres Microsoft.BizTalk.SchemaEditor.Extensibility .

La interfaz IExtension es el punto de entrada de la extensión, desde el que el Editor de BizTalk accede a la funcionalidad extendida, como administradores de propiedades, vistas personalizadas, validación de esquemas, generación de instancias nativas y validación de instancias nativas.

Un esquema determinado puede tener varias extensiones asociadas, pero solo se puede establecer como estándar en un momento dado; se establece en la propiedad Standard del nodo Esquema . La extensión actualmente establecida como estándar es la que se utiliza para la generación y validación de instancias nativas, así como para la validación de esquemas.

Las extensiones se pueden asociar a un esquema determinado editando la propiedad Extensiones del Editor de esquemas del nodo Esquema . La información sobre las extensiones asociadas a un esquema se almacena en el propio esquema, dentro del elemento de anotación del elemento de esquema , como se muestra en el siguiente fragmento 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">  
        ...  
  

Después de crear una instancia del objeto de extensión, el marco invoca el método Initialize de la interfaz IExtension , pasando un objeto ITree para que la extensión pueda tener acceso a información sobre el árbol de esquema. Por ejemplo, la extensión podría atravesar todos los nodos secundarios accediendo a la propiedad ITree.RootNode .

En esta sección se describen las formas de integrar una extensión del Editor de BizTalk en el entorno del Editor de BizTalk y de enlazarlo a los comandos existentes del mismo.

En esta sección