Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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, estas duas representações de dados têm sido usadas separadamente. No entanto, o .NET Framework permite o acesso síncrono em tempo real tanto às representações relacional como hierárquica dos dados através do DataSet objeto e do XmlDataDocument objeto, respetivamente.
Quando a DataSet está sincronizado com um XmlDataDocument, ambos os objetos estão a trabalhar 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 XmlDataDocument cria grande flexibilidade ao permitir que uma única aplicação, usando um único conjunto de dados, aceda a todo o conjunto de serviços construídos em torno do DataSet (como controlos Web Forms e Windows Forms, e designers Visual Studio .NET), bem como ao conjunto de serviços XML incluindo a Extensible Stylesheet Language (XSL), Transformações XSL (XSLT) e Linguagem de Caminho XML (XPath). Você não precisa escolher qual conjunto de serviços segmentar com o aplicativo; ambos estão disponíveis.
Existem várias formas de sincronizar um DataSet com um XmlDataDocument. É possível:
Preenche um
DataSetcom schema (isto é, uma estrutura relacional) e dados e depois sincroniza-o com um novo XmlDataDocument. Isso fornece uma visã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);Preenche um
DataSetapenas com esquema (como um DataSet fortemente tipado), sincroniza-o com um XmlDataDocument e depois carrega-oXmlDataDocumenta partir de um documento XML. Isso fornece uma visão relacional dos dados hierárquicos existentes. Os nomes das tabelas e das colunas no seuDataSetesquema têm de corresponder aos nomes dos elementos XML com os quais quer que sejam sincronizados. Essa correspondência diferencia maiúsculas de minúsculas.Note que o esquema do
DataSetapenas precisa de corresponder aos elementos XML que pretende expor na sua vista relacional. Dessa forma, você pode ter um documento XML muito grande e uma "janela" relacional muito pequena nesse documento. OXmlDataDocumentpreserva todo o documento XML, mesmo que oDataSetexponha apenas uma pequena parte dele. (Para obter um exemplo detalhado disso, consulte Sincronizando um DataSet com um XmlDataDocument.)O exemplo de código seguinte mostra os passos para criar um
DataSete preencher o seu esquema, depois sincronizá-lo com um XmlDataDocument. Note que oDataSetesquema só precisa de corresponder aos elementos doXmlDataDocumentque pretende 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 podes carregar um
XmlDataDocumentse estiver sincronizado com umDataSetque contém dados. Uma exceção será lançada.Crie um novo
XmlDataDocumente carregue-o a partir de um documento XML, e depois acede à vista relacional dos dados usando aDataSetpropriedade do XmlDataDocument. Precisas de definir o esquema doDataSetantes de poderes ver qualquer um dos dados noXmlDataDocumentusando o DataSet. Mais uma vez, os nomes das tabelas e das colunas no seuDataSetesquema têm de corresponder aos nomes dos elementos XML com os quais quer sincronizá-los. 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 um DataSet é que a fidelidade de um documento XML é preservada. Se DataSet for preenchido a partir de um documento XML usando ReadXml, quando os dados forem escritos de volta como um documento XML usando WriteXml, podem diferir drasticamente do documento XML original. Isto ocorre porque o DataSet não mantém a formatação, como espaços em branco, ou a informação hierárquica, como a ordem dos elementos, do documento XML.
DataSet Também não contém elementos do documento XML que foram ignorados porque não correspondiam ao esquema do Conjunto de Dados. A sincronização de um XmlDataDocument com a DataSet permite que a formatação e a estrutura hierárquica dos elementos do documento XML original sejam mantidas no XmlDataDocument, enquanto o DataSet contém apenas dados e informações de esquema apropriadas ao DataSet.
Ao sincronizar um DataSet com um XmlDataDocument, os resultados podem variar dependendo de estarem ou não aninhados os seus DataRelation objetos. Para obter mais informações, consulte Aninhando DataRelations.
Na presente seção
Sincronização de um DataSet com um XmlDataDocument Demonstra a sincronização de um DataSet fortemente tipado com um esquema mínimo, com um XmlDataDocument.
Realização de uma Consulta XPath num DataSet Demonstra a realização de uma consulta XPath sobre o conteúdo de um DataSet.
Aplicação de 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
Utilização de XML num DataSet Descreve como o DataSet interage com o XML como fonte de dados, incluindo o carregamento e persistência do conteúdo de um DataSet como dados XML.
Nesting 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 Descrevem os DataSet e como utilizá-los para gerir dados de aplicações e interagir com fontes de dados, incluindo bases de dados relacionais e XML.
XmlDataDocument Contém informações de referência sobre a XmlDataDocument disciplina.