Compartilhar via


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

Importante as informações estabelecidas neste tópico sobre o Microsoft Word são apresentadas exclusivamente para o benefício e o uso de pessoas e organizações que estão localizados fora dos Estados Unidos e em seus territórios, ou quem está usando ou o desenvolvimento de programas executados em produtos do Microsoft Word que foram licenciados pela Microsoft antes de janeiro de 2010, quando o Microsoft removido uma implementação da funcionalidade específica, relacionada a XML personalizado a partir do Microsoft Word. Essas informações sobre o Microsoft Word não podem ser lidas ou usadas por pessoas ou organizações nos Estados Unidos ou em suas regiões que estão usando ou o desenvolvimento de programas executados em produtos do Microsoft Word que foram licenciados pela Microsoft após 10 de janeiro de 2010; Esses produtos não se comportar os mesmos produtos licenciados antes dessa data ou adquirido e licenciado 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 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Excel de Microsoft Office e Microsoft Office o Word fornecem a capacidade de mapear esquemas aos documentos. Esse recurso pode simplificar a importação e exportação de dados XML, dentro e fora do documento.

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

ObservaçãoObservação

É possível usar os esquemas XML com várias partes em soluções do Excel.

Objetos criados quando esquemas anexadas às pastas de trabalho do Excel

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

Há dois principais objetos:

  • 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 Solution Explorer.

  • Um tipo DataSet classe. Essa classe é criada com base no esquema. Essa classe dataset está visível no o modo de exibição de classe.

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

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

Office mapeado esquemas e a janela de fontes de dados de Visual Studio

A funcionalidade de esquema mapeado do Office e o Visual Studio Fontes de dados janela pode ajudá-lo 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 os métodos criam controles que são os dados vinculados por meio de um BindingSource a uma fonte de dados, como um DataSet ou um serviço da Web.

ObservaçãoObservação

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

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

Esquema XML

Data Sources window

Usa a interface do Office.

Usa Fontes de dados janela no Visual Studio.

Permite que os recursos internos do Office para importação e exportação de dados de arquivos XML.

Você deve fornecer a importação e exportação funcionalidade programaticamente.

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

Controles adicionados a partir de Fontes de dados janela tiver o código gerado automaticamente para preenchê-los, juntamente com as seqüências de caracteres de conexão necessárias ao usar servidores de banco de dados.

Comportamento quando esquemas anexadas aos documentos do Word

Os objetos de dados não são criados quando você anexa um esquema para um documento do Word é usado em um projeto de nível de documento do Office. No entanto, quando você mapeia um elemento de esquema ao documento, os controles são criados. O tipo de controle depende de qual tipo de elemento que você pode mapear; geram de elementos de repetição XMLNodes controles e os elementos não-repetição geram XMLNode controles. For more information, see Controle de XMLNodes and 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 de esquemas no computador do usuário. Se você não registrar o esquema, a solução ainda funcionará porque o Word gera um esquema temporário com base nos elementos que estão no documento quando o usuário abre a ele. 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 Deploying Applications and Components.

Você também pode adicionar código ao seu projeto para verificar se o esquema na biblioteca 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 aos documentos do Word dentro de Visual Studio

Como: Mapear esquemas para planilhas dentro de Visual Studio