Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante La información expuesta 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 Los 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 funcionalidad determinada relacionada con XML personalizado de Microsoft Word. Esta información relativa a Microsoft Word no puede ser leída o utilizada por personas u organizaciones de Estados Unidos o sus territorios que usan o desarrollan programas que se ejecutan en productos de Microsoft Word con licencia 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 comprada y con licencia para su uso fuera de Los 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, vea Características disponibles por aplicación de Office 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 los elementos de esquema asignados en personalizaciones a nivel de documento como controles dentro del 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 tareas, que se pueden usar con un documento con un esquema asignado 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 el Explorador de soluciones.
Una clase tipada DataSet. 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 de trabajo, 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 programático. El ListObject control solo se puede eliminar eliminando las asignaciones y los objetos asignados del libro de trabajo. Para obtener más información sobre los controles, consulte Descripción general de los elementos host y los controles host.
BindingSource. Cuando creas un XmlMappedRange al asignar un elemento de esquema que no se repite a la hoja de cálculo, se crea un BindingSource y el control XmlMappedRange se vincula a BindingSource. Debe enlazar BindingSource a una instancia de origen de datos que coincida con el esquema asignado al documento, como una instancia de la clase tipo DataSet 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 objetos ListObject. Debe enlazar ListObject manualmente al origen de datos estableciendo las propiedades DataSource y DataMember en la ventana Propiedades.
Esquemas asignados de Office y la ventana de Orígenes de datos de Visual Studio
Tanto la funcionalidad de esquema asignado de Office como la ventana de Orígenes de datos de Visual Studio pueden ayudarle a presentar datos en una hoja de cálculo de Excel para la elaboración de 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 BindingSource a un origen de datos, como un servicio web o DataSet.
Nota:
Al asignar un elemento de esquema repetido a una hoja de cálculo, Visual Studio crea un ListObject. El ListObject no se enlaza automáticamente con los datos a través de BindingSource. Debe enlazar ListObject manualmente al origen de datos estableciendo las propiedades de DataSource y DataMember en la ventana Propiedades.
En la tabla siguiente se muestran algunas de las diferencias entre los dos métodos.
| Esquema XML | Ventana 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 las cadenas de conexión necesarias 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;
}