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çã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:
Controles. Para cada objeto mapeado na pasta de trabalho, um XmlMappedRange controle (para elementos de esquema não-repetição) ou um ListObject o controle (para elementos do esquema de repetição) é criada no modelo de programação. O ListObject controle 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 a visão geral sobre controles de Host.
BindingSource. Quando você cria um XmlMappedRange o mapeamento de um elemento de esquema não-repetição a planilha, uma BindingSource é criado e o XmlMappedRange controle está vinculado a BindingSource. Você deve ligar o BindingSource a uma instância da fonte de dados que corresponde ao esquema mapeado para o documento, como uma instância do tipo DataSet classe foi criada. Criar a ligação definindo a DataSource e DataMember Propriedades, que são expostas na Propriedades janela.
Observação O BindingSource não foi criado para ListObject objetos. Você deve ligar manualmente o ListObject à fonte de dados, definindo a DataSource e DataMember Propriedades na Propriedades janela.
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çã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