Esquemas y datos XML en personalizaciones de nivel de documento

Importante   La información que se incluye en este tema relacionada con Microsoft Word se presenta exclusivamente para beneficio y uso de individuos y organizaciones residentes fuera de los Estados Unidos y sus territorios, o que estén utilizando, o desarrollando programas que se ejecutan en, productos de Microsoft Word con licencia concedida por Microsoft antes de enero de 2010, fecha en que Microsoft quitó una implementación de funcionalidad concreta relacionada con XML personalizado de Microsoft Word. Puede que esta información relacionada con Microsoft Word no sea leída o utilizada por individuos u organizaciones residentes en los Estados Unidos o sus territorios que estén utilizando, o desarrollando programas que se ejecutan en, productos de Microsoft Word con licencia concedida por Microsoft después del 10 de enero de 2010; dichos productos no tendrán el mismo comportamiento que los productos con licencia anterior a esa fecha o comprados, y con licencia para su uso, fuera de los Estados Unidos.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para las siguientes aplicaciones: Excel 2007 y Excel 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Microsoft Office Excel y Microsoft Office Word ofrecen la posibilidad de asignar esquemas a los documentos. Dicha 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 además admite el enlace de controles a los datos en bases de datos, servicios Web y objetos. Para Word y Excel, Visual Studio agrega compatibilidad con los paneles de acciones, que se pueden usar con documentos asignados a esquemas para mejorar la experiencia del usuario final con las soluciones. Para obtener más información, vea Información general sobre recuadros de acciones.

Nota

No puede utilizar esquemas XML compuestos en las soluciones de Excel.

Objetos creados cuando se asocian esquemas a libros de Excel

Cuando se asocia un esquema a un libro, Visual Studio automáticamente crea varios objetos y los agrega a su proyecto. Dichos objetos no se deben eliminar utilizando Visual Studio Tools, porque los administra Excel. Para eliminarlos, quite los elementos asignados de la hoja de cálculo o desasocie el esquema mediante las herramientas de Excel.

Hay dos objetos principales:

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

  • Una clase DataSet con tipo. Esta clase se crea basándose en el esquema. Esta clase de conjunto de datos es visible en Vista de clases.

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

Cuando se asigna un elemento de esquema del panel de tareas Origen XML a una hoja de cálculo, Visual Studio crea automáticamente varios objetos y los agrega al proyecto.

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 le pueden ayudar a presentar datos en una hoja de cálculo de Excel para crear informes o editar. En ambos casos, puede arrastrar los elementos de datos en la hoja de cálculo de Excel. Ambos métodos crean controles enlazados a través de BindingSource a un origen de datos como DataSet o a un servicio Web.

Nota

Cuando se asigna un elemento de esquema repetitivo a una hoja de cálculo, Visual Studio crea un objeto ListObject. ListObject no se enlaza automáticamente con los datos a través del BindingSource. Debe enlazar manualmente ListObject con el origen de datos estableciendo las propiedades DataSource y DataMember en la ventana Propiedades.

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

Esquema XML

Ventana de orígenes de datos

Utiliza la interfaz de Office.

Utiliza la ventana Orígenes de datos de Visual Studio.

Habilita las características integradas de Office para importar y exportar datos de los archivos XML.

Debe proporcionar funcionalidad de importación y exportación mediante programación.

Debe escribir código para llenar de datos los controles generados.

Los controles agregados desde la ventana Orígenes de datos tienen código generado automáticamente para rellenarlos, junto con las cadenas de conexión necesarias cuando utiliza servidores de bases de datos.

Comportamiento cuando se asocian esquemas a documentos de Word

Si se asocia un esquema a un documento de Word que se usa en un proyecto de Office de nivel de documento, no se crean objetos de datos. Sin embargo, si asigna un elemento de esquema a su documento, se crean controles. El tipo de control depende de qué tipo de elemento asigne; los elementos que se repiten generan controles XMLNodes y los elementos que no se repiten generan controles XMLNode. Para obtener más información, vea XMLNodes (Control) y XMLNode (Control).

Implementación de soluciones que incluyen esquemas XML

Debe crear un instalador para implementar una solución que utiliza un esquema XML asignado a un documento. El instalador debe registrar el esquema en la biblioteca de esquemas del equipo del usuario. La solución funcionará aunque no registre el esquema, porque Word genera un esquema temporal basándose en los elementos que están en el documento cuando el usuario lo abre. Sin embargo, el usuario no podrá guardar el esquema que se ha utilizado para crear el proyecto ni realizar una validación con respecto al mismo. Para obtener más información sobre los instaladores, vea Implementar aplicaciones y componentes.

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

' Ensure that the schema is in the library and registered with the document.
Private Function CheckSchema() As Boolean

    Const namespaceUri As String = "http://schemas.contoso.com/projects"
    Dim namespaceFound As Boolean = False
    Dim namespaceRegistered As Boolean = False

    Dim n As Word.XMLNamespace
    For Each n In Application.XMLNamespaces
        If (n.URI = namespaceUri) Then
            namespaceFound = True
        End If
    Next

    If Not namespaceFound Then
        MessageBox.Show("XML Schema is not in library.")
        Return False
    End If

    Dim r As Word.XMLSchemaReference
    For Each r In Me.XMLSchemaReferences
        If (r.NamespaceURI = namespaceUri) Then
            namespaceRegistered = True
        End If
    Next

    If Not namespaceRegistered Then
        MessageBox.Show("XML Schema is not registered for this document.")
        Return False
    End If

    Return True
End Function
// 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;
}

Vea también

Tareas

Cómo: Asignar esquemas a documentos de Word en Visual Studio

Cómo: Asignar esquemas a hojas de cálculo en Visual Studio