Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ADO.NET DataSet fornece uma representação relacional de dados. Para acesso a dados hierárquicos, você pode usar as classes XML disponíveis no .NET Framework. Historicamente, essas duas representações de dados foram usadas separadamente. No entanto, o .NET Framework permite acesso síncrono em tempo real às representações relacionais e hierárquicas de dados por meio do DataSet objeto e do XmlDataDocument objeto, respectivamente.
Quando um DataSet é sincronizado com um XmlDataDocument, ambos os objetos estão trabalhando com um único conjunto de dados. Isso significa que, se uma alteração for feita no DataSet, a alteração será refletida no XmlDataDocument e vice-versa. A relação entre o DataSet e o XmlDataDocument cria uma grande flexibilidade ao permitir que um único aplicativo, usando um único conjunto de dados, acesse todo o conjunto de serviços criados em torno do DataSet, como os controles de Web Forms e Windows Forms e os designers do Visual Studio .NET, bem como o conjunto de serviços XML, incluindo XSL (Extensible Stylesheet Language), XSLT (Transformações XSL) e XPath (Linguagem de Caminho XML). Você não precisa escolher qual conjunto de serviços deve ser direcionado com o aplicativo; ambos estão disponíveis.
Há várias maneiras de sincronizar um DataSet com um XmlDataDocument. É possível:
Preencha um
DataSetcom esquema (ou seja, uma estrutura relacional) e dados e sincronize-o com um novo XmlDataDocument. Isso fornece uma exibição hierárquica dos dados relacionais existentes. Por exemplo:Dim dataSet As DataSet = New DataSet ' Add code here to populate the DataSet with schema and data. Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)DataSet dataSet = new DataSet(); // Add code here to populate the DataSet with schema and data. XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);Preencha um
DataSetcom apenas esquema (como um DataSet fortemente tipado), sincronize-o com um XmlDataDocument e carregue-oXmlDataDocumentde um documento XML. Isso fornece uma exibição relacional de dados hierárquicos existentes. Os nomes de tabela e os nomes de coluna no esquemaDataSetdevem corresponder aos nomes dos elementos XML com os quais você deseja que eles sejam sincronizados. Essa correspondência diferencia maiúsculas de minúsculas.Observe que o esquema do
DataSetprecisa apenas corresponder aos elementos XML que você deseja expor na sua visualização relacional. Dessa forma, você pode ter um documento XML muito grande e uma "janela" relacional muito pequena nesse documento. OXmlDataDocumentpreserva todo o documento XML, embora oDataSetapenas exponha uma pequena parte dele. (Para obter um exemplo detalhado disso, consulte Synchronizing a DataSet with an XmlDataDocument.)O exemplo de código a seguir mostra as etapas para criar e
DataSetpopular seu esquema, e, em seguida, sincronizá-lo com o XmlDataDocument. Observe que oDataSetesquema só precisa corresponder aos elementos dosXmlDataDocumentquais você deseja expor usando o DataSet.Dim dataSet As DataSet = New DataSet ' Add code here to populate the DataSet with schema, but not data. Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet) xmlDoc.Load("XMLDocument.xml")DataSet dataSet = new DataSet(); // Add code here to populate the DataSet with schema, but not data. XmlDataDocument xmlDoc = new XmlDataDocument(dataSet); xmlDoc.Load("XMLDocument.xml");Não é possível carregar um
XmlDataDocumentse ele for sincronizado com umDataSetque contenha dados. Uma exceção será gerada.Crie um novo
XmlDataDocumente carregue-o de um documento XML e acesse a exibição relacional dos dados usando aDataSetpropriedade do XmlDataDocument. Você precisa definir o esquema doDataSetantes de poder exibir qualquer um dos dados noXmlDataDocumentusando o Conjunto de Dados. Novamente, os nomes de tabela e os nomes de coluna em seuDataSetesquema devem corresponder aos nomes dos elementos XML com os quais você deseja que eles sejam sincronizados. Essa correspondência diferencia maiúsculas de minúsculas.O exemplo de código a seguir mostra como acessar a exibição relacional dos dados em um XmlDataDocument.
Dim xmlDoc As XmlDataDocument = New XmlDataDocument Dim dataSet As DataSet = xmlDoc.DataSet ' Add code here to create the schema of the DataSet to view the data. xmlDoc.Load("XMLDocument.xml")XmlDataDocument xmlDoc = new XmlDataDocument(); DataSet dataSet = xmlDoc.DataSet; // Add code here to create the schema of the DataSet to view the data. xmlDoc.Load("XMLDocument.xml");
Outra vantagem de sincronizar um XmlDataDocument com DataSet um é que a fidelidade de um documento XML é preservada. Se o DataSet for preenchido a partir de um documento XML usando ReadXml, quando os dados forem gravados de volta como documento XML usando WriteXml, eles poderão diferir drasticamente do documento XML original. Isso ocorre porque o DataSet não mantém a formatação, como espaço em branco, ou informações hierárquicas, como a ordem dos elementos a partir do documento XML. O DataSet também não contém elementos do documento XML que foram ignorados porque não corresponderam ao esquema do conjunto de dados. Sincronizar um XmlDataDocument com um DataSet permite que a formatação e a estrutura de elementos hierárquicos do documento XML original sejam mantidas no XmlDataDocument, enquanto que contém DataSet apenas dados e informações de esquema apropriadas para o DataSet.
Ao sincronizar um DataSet com um XmlDataDocument, os resultados podem variar dependendo de os objetos DataRelation estarem aninhados ou não. Para obter mais informações, consulte Nesting DataRelations.
Nesta seção
Sincronizando um DataSet com um XmlDataDocument Demonstra a sincronização de um DataSet fortemente tipado, com esquema mínimo, com um XmlDataDocument.
Executando uma consulta XPath em um Conjunto de Dados Demonstra a execução de uma consulta XPath no conteúdo de um DataSet.
Aplicando uma transformação XSLT a um Conjunto de Dados Demonstra a aplicação de uma transformação XSLT ao conteúdo de um DataSet.
Seções relacionadas
Usando XML em um Conjunto de Dados Descreve como o DataSet XML interage como uma fonte de dados, incluindo o carregamento e a persistência do conteúdo de um DataSet como dados XML.
Aninhando DataRelations Discute a importância dos objetos aninhados DataRelation ao representar o conteúdo de um DataSet como dados XML e descreve como criar essas relações.
DataSets, DataTables e DataViews Descreve o DataSet e como usá-los para gerenciar dados do aplicativo e interagir com fontes de dados, incluindo bancos de dados relacionais e XML.
XmlDataDocument Contém informações de referência sobre a XmlDataDocument classe.