Esquemas XML e dados (Visual Studio Tools for Office)

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

Versão do Microsoft Office

  • Microsoft Office Sistema de 2007

  • Microsoft Office 2003

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

O Microsoft Office Excel e Microsoft Office Word fornecem a capacidade de mapear esquemas aos seus documentos.Esse recurso pode simplificar Importação e exportar dados XML e saia do documento.

Observação:

Não é possível usar esquemas XML compostos em soluções do Excel.

Ferramentas do Visual Studio para o Office expõe elementos de esquema mapeadas em personalizações em nível de documento como controles no modelo de programação.Para que o Excel, Ferramentas do Visual Studio para o Office adiciona suporte para ligar os controles a dados em bancos de dados, serviços da Web e objetos.Para o Word e Excel, Ferramentas do Visual Studio para o Office adiciona suporte para painéis de ações, que pode ser usada com um documento de esquema mapeadas para criar uma experiência de usuário final aprimorada para suas soluções.For more information, see Visão geral painel Ações.

Objetos criados quando esquemas são anexadas a pastas de trabalho do Excel

Quando você anexa um esquema para uma pasta de trabalho, o Visual Studio automaticamente cria vários objetos e adiciona-los ao seu projeto.Esses objetos devem não ser excluídos usando ferramentas do Visual Studio, porque eles são gerenciados pelo Excel.Para Excluir-las, remova os elementos mapeados da planilha ou desanexar o esquema usando ferramentas do Excel.

Há dois objetos principais:

  • Esquema XML (arquivo XSD).Para cada esquema na pasta de trabalho, o Visual Studio adiciona um esquema para o projeto.Isso aparece como um item de projeto com uma extensão XSD em Gerenciador de Soluções.

  • Uma classe digitado DataSet.Essa classe é criada com base no esquema.Essa classe dataset é visível no Modo de Exibição de Classe.

Objetos criados quando elementos de esquema são mapeados para planilhas do Excel

Quando você mapeia um elemento do esquema do painel de tarefas do Código-Origem XML a uma planilha, Visual Studio automaticamente cria vários objetos e adiciona-los ao seu projeto:

  • Os controles.Para cada objeto mapeado na pasta de trabalho, um Controlarar de XmlMappedRange (para elementos do esquema não-repetição) ou um Controlarar de ListObject (para repetir elementos de esquema) é criado no modelo de programação.O Controlarar de ListObject pode ser excluído somente, excluindo os mapeamentos e os objetos mapeados da pasta de trabalho.Para obter mais informações sobre controles, consulte Itens de host e Visão geral sobre controles de host.

  • BindingSource.Quando você cria um XmlMappedRange pelo mapeamento de um elemento do esquema não-repetição para a planilha, um BindingSource é criada e o Controlarar de XmlMappedRange está Ligado para o BindingSource.Você deve ligar o BindingSource a uma instância de Origem de dados que coincide com o esquema mapeado para o documento, tais como uma instância da classe digitado DataSet que foi criado.Criar a ligação por Configuração as propriedades de DataSource , que são expostas na janela DataMember propriedades E.

    Observação:

    O BindingSource não é criado para objetos de ListObject.Você deve ligar manualmente o ListObject à Origem de dados por Configuração as propriedades de DataSource na janela DataMember propriedades E.

Office mapeado esquemas e Visual Studio Dadosta Sources Janela

Tanto a funcionalidade de esquema mapeadAmbos do Office e janela de De fontes de dados do Visual Studio pode ajudar a apresentar dados em uma planilha do Excel para relatórios ou edição.Em ambos os casos você pode arrastar elementos de dados para a planilha do Excel.Ambos métodos criar controles que são ligados por meio de um BindingSource a uma Origem de dados como um DataSet ou serviço da Web a dados.

Observação:

Quando você mapear um elemento do esquema repetição para uma planilha, Ferramentas do Visual Studio para o Office cria um ListObject.O ListObject automaticamente não está ligado a dados por meio a BindingSource.Você deve ligar manualmente o ListObject à Origem de dados por Configuração as propriedades de DataSource na janela DataMember propriedades E.

A tabela a seguir mostra algumas das diferenças entre os dois métodos.

Esquema XML

Janela de fontes de dados

Usa a interface do Office.

Usa fontes de dados de janela no Visual Studio.

Habilita recursos Office internos parImportação e exportar dados de arquivos XML.

Você deve fornecer importar e exportar funcionalidade por meio de programação.

Você deve Gravar código para preencher os controles gerados com dados.

Os controles adicionados da janela Data Sources ter código gerado automaticamente para preencher, juntamente com as seqüências de conexão necessárias ao usar servidores de banco de dados.

Comportamento quando esquemas são anexadas a documentos do Word

Objetos de dados não são criados quando você anexa um esquema a um documento do Word é usado em um projeto de nível de documento Ferramentas do Visual Studio para o Office.No entanto, quando você mapeia um elemento do esquema para o seu documento, controles são criados.O tipo de Controlarar depende de como o tipo de elemento que você mapear; elementos repetidos geram XMLNodes controles e elementos não-repetição geram XMLNode controles.Para obter mais informações, consulte Controlarar de XMLNodes e Controlarar de XMLNode.

Implantação de soluções que esquemas XML Incluir

Você deve criar um instalador para implantar uma solução que usa um esquema XML que é mapeado para um documento.O instalador deve registrar o esquema na biblioteca de esquemas no computador do usuário.Se você não registrar o esquema, a solução ainda funcionará como o Word gera um esquema temporário com base nos elementos que estão no documento quando o usuário abre.No entanto, o usuário não poderá executar a validação contra ou salvar o esquema que foi usado para criar o projeto.Para obter mais informações sobre instaladores, consulte Implantando Aplicativos e Componentes.

Você também pode adicionar código ao seu projeto para Marcar se o esquema está na biblioteca de e registrado.Se não estiver, poderá avisar o usuário.

' 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;
}

Consulte também

Tarefas

Como: Mapear esquemas para documentos do Word dentro do Visual Studio

Como: Mapear esquemas para planilhas dentro do Visual Studio