Compartir a través de


Esquemas XML y datos en personalizaciones de nivel de documento

Importante La información que se expone en este tema con respecto a Microsoft Word se presenta exclusivamente para la ventaja y el uso de individuos y organizaciones que se encuentran fuera de la Estados Unidos y sus territorios o que usan, o desarrollan programas que se ejecutan en, productos de Microsoft Word con licencia de Microsoft antes de enero de 2010, cuando Microsoft quitó una implementación de una funcionalidad determinada relacionada con XML personalizado de Microsoft Word. Esta información con respecto a Microsoft Word no puede ser leída o utilizada por personas u organizaciones en la Estados Unidos o sus territorios que usan, o desarrollar programas que se ejecutan en, productos de Microsoft Word con licencia de Microsoft después del 10 de enero de 2010; esos productos no se comportarán iguales que los productos con licencia antes de esa fecha o comprados y autorizados para su uso fuera del Estados Unidos.

Se aplica a: la información de este tema se aplica a proyectos de nivel de documento para Excel y Word. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Microsoft Office Excel y Microsoft Office Word proporcionan la capacidad de asignar esquemas a los documentos. Esta característica puede simplificar la importación y exportación de datos XML dentro y fuera del documento.

Visual Studio expone elementos de esquema asignados en personalizaciones de nivel de documento como controles en el modelo de programación. Para Excel, Visual Studio agrega compatibilidad para enlazar los controles a datos en bases de datos, servicios web y objetos. Para Word y Excel, Visual Studio agrega compatibilidad con paneles de acciones, que se pueden usar con un documento asignado a esquemas para crear una experiencia de usuario final mejorada para sus soluciones. Para obtener más información, vea Información general sobre el panel Acciones.

Nota:

No se pueden usar esquemas XML de varias partes en soluciones de Excel.

Objetos creados cuando se adjuntan esquemas a libros de Excel

Al adjuntar un esquema a un libro, Visual Studio crea automáticamente varios objetos y los agrega al proyecto. Estos objetos no se deben eliminar mediante las herramientas de Visual Studio, ya que excel los administra. Para eliminarlos, quite los elementos asignados de la hoja de cálculo o desasocie el esquema mediante herramientas de Excel.

Hay dos objetos principales:

  • Esquema XML (archivo XSD). Para cada esquema del libro, Visual Studio agrega un esquema al proyecto. Esto aparece como un elemento de proyecto con una extensión XSD en Explorador de soluciones.

  • Clase DataSet con tipo. Esta clase se crea en función del esquema. Esta clase de conjunto de datos está visible en la Vista de clases.

Objetos creados cuando los elementos de esquema se asignan a hojas de cálculo de Excel

Al asignar un elemento de esquema desde el panel de tareas Origen XML a una hoja de cálculo, Visual Studio crea automáticamente varios objetos y los agrega al proyecto:

  • Controles. Para cada objeto asignado del libro, se crea un XmlMappedRange control (para elementos de esquema que no se repiten) o un ListObject control (para los elementos de esquema repetidos) en el modelo de programación. El ListObject control solo se puede eliminar eliminando las asignaciones y los objetos asignados del libro. Para obtener más información sobre los controles, consulte Información general sobre los elementos host y los controles host.

  • Bindingsource. Cuando se crea mediante XmlMappedRange la asignación de un elemento de esquema que no se repite a la hoja de cálculo, se crea y BindingSource el XmlMappedRange control se enlaza a .BindingSource Debe enlazar a BindingSource una instancia del origen de datos que coincida con el esquema asignado al documento, como una instancia de la clase con DataSet tipo que se creó. Cree el enlace estableciendo las DataSource propiedades y DataMember , que se exponen en la ventana Propiedades .

    Nota:

    BindingSource No se crea para ListObject los objetos . Debe enlazar ListObject manualmente al origen de datos estableciendo las DataSource propiedades y DataMember en la ventana Propiedades .

Esquemas asignados de Office y la ventana Orígenes de datos de Visual Studio

Tanto la funcionalidad de esquema asignado de Office como la ventana Orígenes de datos de Visual Studio pueden ayudarle a presentar datos en una hoja de cálculo de Excel para informes o edición. En ambos casos, puede arrastrar elementos de datos a la hoja de cálculo de Excel. Ambos métodos crean controles que están enlazados a través de a BindingSource un origen de datos, como un DataSet servicio web o .

Nota:

Al asignar un elemento de esquema repetido a una hoja de cálculo, Visual Studio crea un ListObject. No ListObject se enlaza automáticamente a los datos a través de BindingSource. Debe enlazar ListObject manualmente al origen de datos estableciendo las DataSource propiedades y DataMember en la ventana Propiedades .

En la tabla siguiente se muestran algunas de las diferencias entre los dos métodos.

Esquema XML Ventana de orígenes de datos
Usa la interfaz de Office. Usa la ventana Orígenes de datos en Visual Studio.
Habilita las características integradas de Office para importar y exportar datos de archivos XML. Debe proporcionar la funcionalidad de importación y exportación mediante programación.
Debe escribir código para rellenar los controles generados con datos. Los controles agregados desde la ventana Orígenes de datos tienen código generado automáticamente para rellenarlos, junto con los cadena de conexión necesarios cuando se usan servidores de bases de datos.

Comportamiento cuando los esquemas se adjuntan a documentos de Word

Los objetos de datos no se crean al adjuntar un esquema a un documento de Word que se usa en un proyecto de Office de nivel de documento. Sin embargo, al asignar un elemento de esquema al documento, se crean controles. El tipo de control depende del tipo de elemento que asigne; los elementos de repetición generan XMLNodes controles y los elementos que no se repiten generan XMLNode controles. Para obtener más información, vea Control XMLNodes y Control XMLNode.

Implementación de soluciones que incluyen esquemas XML

Debe crear un instalador para implementar una solución que use un esquema XML asignado a un documento. El instalador debe registrar el esquema en la biblioteca de esquemas en el equipo del usuario. Si no registra el esquema, la solución seguirá funcionando porque Word genera un esquema temporal basado en los elementos que se encuentran en el documento cuando el usuario lo abre. Sin embargo, el usuario no podrá realizar la validación en ni guardar el esquema que se usó para crear el proyecto. Para obtener más información sobre los instaladores, consulte Implementación de aplicaciones, servicios y componentes.

También puede agregar código al proyecto para comprobar si el esquema está en la biblioteca y registrado. Si no es así, puede advertir al usuario.

// Ensure that the schema is in the library and registered with the document.
private bool CheckSchema()
{
    const string namespaceUri = "http://schemas.contoso.com/projects";
    bool namespaceFound = false;
    bool namespaceRegistered = false;

    foreach (Word.XMLNamespace n in Application.XMLNamespaces)
    {
        if (n.URI == namespaceUri)
        {
            namespaceFound = true;
        }
    }

    if (!namespaceFound)
    {
        MessageBox.Show("XML Schema is not in library.");
        return false;
    }

    foreach (Word.XMLSchemaReference r in this.XMLSchemaReferences) 
    {
        if (r.NamespaceURI == namespaceUri)
        {
            namespaceRegistered = true;
        }
    }

    if (!namespaceRegistered)
    {
        MessageBox.Show("XML Schema is not registered for this document.");
        return false;
    }
    
    return true;
}