Compartilhar via


Esquemas XML e dados no nível do documento personalizações

importante informações expostas em esse tópico em relação ao Microsoft Word é apresentado exclusivamente para o benefício e uso de pessoas e as organizações que estão localizadas fora dos Estados Unidos e seus territórios ou que estão usando o, ou os programas desenvolvendo que executam em, os produtos Microsoft Word que foram licenciadas pela Microsoft antes de janeiro de 2010, quando Microsoft removeu uma implementação de funcionalidade específica relativa para XML personalizado do Microsoft Word.Essas informações a respeito do Microsoft Word não pode ser lido ou usado por indivíduos ou organizações em Estados Unidos ou seus territórios que estão usando o, ou os programas desenvolvendo que executam em, os produtos Microsoft Word que foram licenciadas; pela Microsoft depois do 10 de janeiro de 2010 esses produtos não se comportarão o mesmo que os produtos licenciadas antes de data ou comprados e licenciadas para uso fora dos Estados Unidos.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2013 e Excel 2010; Word 2013 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Microsoft Office Excel e Microsoft Office Word fornecem o recurso mapear esquemas aos documentos.Esse recurso pode simplificar exportar e importar dados XML e reaparece do documento.

O Visual Studio expor os elementos mapeados de esquema na personalizações de nível como controles no modelo de programação.Para o excel, o Visual Studio adiciona suporte para associar controles a dados em bancos de dados, em serviços da Web, objetos e.Para palavra e o excel, o Visual Studio adiciona suporte para os painéis ações, que podem ser usados com um documento esquema- mapeado para criar uma experiência aprimorada de usuário final para suas soluções.Para obter mais informações, consulte Visão geral do painel de ações.

ObservaçãoObservação

Você não pode usar esquemas XML com várias partes em soluções do excel.

Objetos criados quando os esquemas estejam anexados para pastas de trabalho do Excel

Quando você anexar um esquema para uma pasta de trabalho, o Visual Studio automaticamente cria vários objetos e adicioná-los ao seu projeto.Esses objetos não devem ser excluídos usando ferramentas do Visual Studio, porque são gerenciados do excel.Para exclusões, remova elementos mapeados a planilha ou desanexar o esquema usando ferramentas do excel.

há dois objetos principais:

  • Arquivo de esquema XML (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 tipada de DataSet .Essa classe é criada com base no esquema.Essa classe dataset estiver visível em Modo de Exibição de Classe.

Objetos criados quando os elementos do esquema sejam mapeados para planilhas Excel

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

  • controles.Para cada objeto mapeado na pasta de trabalho, um controle de XmlMappedRange (para os elementos não repetindo de esquema) ou um controle de ListObject (para repetir elementos de esquema) são criados no modelo de programação.O controle de ListObject pode ser excluído somente excluindo os objetos e mapeados mapeamentos de 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 XmlMappedRange mapeando um elemento não repetindo de esquema a planilha, BindingSource é criado e o controle de XmlMappedRange é associado a BindingSource.Você deve associar BindingSource a uma instância da fonte de dados que corresponde ao esquema mapeado para o documento, como uma instância da classe tipada de DataSet que foi criada.Crie a associação definindo as propriedades e de DataSource de DataMember , que são expostas na janela de Propriedades .

    ObservaçãoObservação

    BindingSource não é para objetos de ListObject .Você deve manualmente ListObject associar à fonte de dados definindo as propriedades e de DataSource de DataMember na janela de Propriedades .

y36t3e16.collapse_all(pt-br,VS.110).gifOffice mapeou esquemas e a janela fontes de dados do Visual Studio

A funcionalidade mapeada do esquema do Office e a janela do Visual Studio Fontes de Dados podem ajudá-lo a apresentar dados em uma planilha do excel para relatar ou editar.Em ambos os casos você pode arrastar elementos de dados na planilha do excel.Ambos os métodos criam os controles que são associados a dados BindingSource a uma fonte de dados como DataSet ou um serviço Web.

ObservaçãoObservação

Quando você mapeia um elemento de repetição do esquema para uma planilha, o Visual Studio cria ListObject.ListObject não é automaticamente associado a dados com BindingSource.Você deve manualmente ListObject associar à fonte de dados definindo as propriedades e de DataSource de DataMember na janela de Propriedades .

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

esquema XML

Janela Fontes de Dados

Interface do Office usos.

Usar a janela de Fontes de Dados no Visual Studio.

Permite que os recursos internos do Office para exportar e importar dados de arquivos XML.

Você deve fornecer funcionalidade de importação e de exportação por meio de programação.

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

Os controles adicionados da janela de Fontes de Dados têm o código gerado automaticamente para preenchê-las, junto com as cadeias de conexão necessárias quando você usa servidores de banco de dados.

Comportamento quando os esquemas estejam anexados documentos para exprimir

Os objetos de dados não são criados quando você anexar um esquema para um documento do word que é usado em um projeto do Office da nível.Em o entanto, quando você mapeia um elemento do esquema no seu documento, os controles são criados.O tipo de controle depende do tipo de elemento; você mapeia repetindo elementos produz controles de XMLNodes , e não repetindo elementos produz controles de XMLNode .Para obter mais informações, consulte Controle de XMLNodes e Controle de XMLNode.

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

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 do esquema no computador do usuário.Se você não registra o esquema, a solução ainda funcionará porque a palavra geram um esquema temporário baseado em elementos que estão no documento enquanto o usuário os abre.Em o 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 Implantação de aplicativos e componentes.

Você também pode adicionar código ao seu projeto para verificar se o esquema está na biblioteca e registrado.Se não estiver, você pode aviso 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 de Visual Studio

Como: Mapear esquemas para planilhas dentro de Visual Studio