DataSet ve XmlDataDocument Eşitlemesi
ADO.NET DataSet , verilerin ilişkisel bir gösterimini sağlar. Hiyerarşik veri erişimi için .NET Framework'te bulunan XML sınıflarını kullanabilirsiniz. Geçmişte bu iki veri gösterimi ayrı olarak kullanılmıştır. Ancak . NET Framework, sırasıyla DataSet nesnesi ve nesnesi aracılığıyla verilerin hem ilişkisel hem de hiyerarşik temsillerine gerçek zamanlı, XmlDataDocument zaman uyumlu erişim sağlar.
DataSet bir XmlDataDocument ile eşitlendiğinde, her iki nesne de tek bir veri kümesiyle çalışır. Bu, DataSet'te bir değişiklik yapılırsa, değişikliğin XmlDataDocument'a yansıtılacağı ve tersi anlamına gelir. DataSet ile XmlDataDocument arasındaki ilişki, tek bir veri kümesi kullanarak tek bir uygulamanın DataSet etrafında oluşturulan hizmetlerin tamamına (Web Forms ve Windows Forms denetimleri ve Visual Studio .NET tasarımcıları gibi) ve Genişletilebilir Stil Sayfası Dili (XSL) dahil xml hizmetleri paketine erişmesine izin vererek büyük esneklik sağlar. XSL Dönüşümleri (XSLT) ve XML Yol Dili (XPath). Uygulamayla hedeflenen hizmet kümesini seçmeniz gerekmez; her ikisi de kullanılabilir.
Bir DataSet'i XmlDataDocument ile eşitlemenin birkaç yolu vardır. Şunları yapabilirsiniz:
DataSet'i şema (ilişkisel yapı) ve verilerle doldurun ve ardından yeni bir XmlDataDocument ile eşitleyin. Bu, mevcut ilişkisel verilerin hiyerarşik bir görünümünü sağlar. Örneğin:
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);
DataSet'i yalnızca şemayla doldurun (kesin olarak yazılan bir DataSet gibi), xmlDataDocument ile eşitleyin ve xml belgesinden XmlDataDocument yükleyin. Bu, mevcut hiyerarşik verilerin ilişkisel bir görünümünü sağlar. DataSet şemanızdaki tablo adları ve sütun adları, eşitlenmelerini istediğiniz XML öğelerinin adlarıyla eşleşmelidir. Bu eşleştirme büyük/küçük harfe duyarlıdır.
DataSet şemasının yalnızca ilişkisel görünümünüzde göstermek istediğiniz XML öğeleriyle eşleşmesi gerektiğini unutmayın. Bu şekilde, bu belgede çok büyük bir XML belgesi ve çok küçük bir ilişkisel "pencere" olabilir. DataSet yalnızca küçük bir bölümünü kullanıma sunmalarına rağmen XmlDataDocument, XML belgesinin tamamını korur. (Bunun ayrıntılı bir örneği için bkz. DataSet'i XmlDataDocument ile Eşitleme.)
Aşağıdaki kod örneği, DataSet oluşturma ve şemasını doldurma ve ardından xmlDataDocument ile eşitleme adımlarını gösterir. DataSet şemasının yalnızca DataSet kullanarak kullanıma açmak istediğiniz XmlDataDocument öğeleriyle eşleşmesi gerektiğini unutmayın.
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");
XmlDataDocument, veri içeren bir DataSet ile eşitlenmişse yükleyemezsiniz. Bir özel durum oluşturulur.
Yeni bir XmlDataDocument oluşturun ve xml belgesinden yükleyin ve ardından XmlDataDocument'ın DataSet özelliğini kullanarak verilerin ilişkisel görünümüne erişin. DataSet'i kullanarak XmlDataDocument'daki verilerden herhangi birini görüntüleyebilmek için önce DataSet şemasını ayarlamanız gerekir. Yine DataSet şemanızdaki tablo adları ve sütun adları, eşitlenmelerini istediğiniz XML öğelerinin adlarıyla eşleşmelidir. Bu eşleştirme büyük/küçük harfe duyarlıdır.
Aşağıdaki kod örneği, XmlDataDocument içindeki verilerin ilişkisel görünümüne nasıl erişileceğini gösterir.
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");
XmlDataDocument'ı DataSet ile eşitlemenin bir diğer avantajı da XML belgesinin uygunluğunun korunmasıdır. DataSet, ReadXml kullanılarak bir XML belgesinden doldurulursa, veriler WriteXml kullanılarak xml belgesi olarak geri yazıldığında özgün XML belgesinden önemli ölçüde farklılık gösterebilir. Bunun nedeni DataSet'in XML belgesinden boşluk gibi biçimlendirmeyi veya öğe sırası gibi hiyerarşik bilgileri korumamasıdır. DataSet, XML belgesinde bulunan ve Veri Kümesi şemasıyla eşleşmediğinden yoksayılan öğeleri de içermez. Bir XmlDataDocument'ın DataSet ile eşitlenmesi, özgün XML belgesinin biçimlendirme ve hiyerarşik öğe yapısının XmlDataDocument'da korunmasına olanak tanırken, DataSet yalnızca DataSet'e uygun verileri ve şema bilgilerini içerir.
Bir DataSet'i XmlDataDocument ile eşitlerken, sonuçlar nesnelerinizin DataRelation iç içe yerleştirilip iç içe yerleştirilmediğine bağlı olarak farklılık gösterebilir. Daha fazla bilgi için bkz . DataRelations İç İçe Yerleştirme.
Bu Bölümde
DataSet’i bir XmlDataDocument ile Eşitleme
XmlDataDocument ile çok az şemayla kesin olarak belirlenmiş bir DataSet'i eşitlemeyi gösterir.
DataSet Üzerinde XPath Sorgusu Gerçekleştirme
DataSet'in içeriğinde XPath sorgusu gerçekleştirmeyi gösterir.
DataSet’e XSLT Dönüşümü Uygulama
DataSet'in içeriğine XSLT dönüşümü uygulamayı gösterir.
İlgili Bölümler
DataSet içinde XML kullanma
DataSet'in içeriklerini XML verileri olarak yükleme ve kalıcı hale ekleme de dahil olmak üzere DataSet'in veri kaynağı olarak XML ile nasıl etkileşime geçtiğini açıklar.
DataRelations’ı İç İçe Yerleştirme
Bir DataSet'in içeriğini XML verileri olarak temsil ederken iç içe DataRelation nesnelerinin önemini açıklar ve bu ilişkilerin nasıl oluşturulacağını açıklar.
DataSets, DataTables ve DataViews
DataSet'i ve uygulama verilerini yönetmek ve ilişkisel veritabanları ve XML dahil olmak üzere veri kaynaklarıyla etkileşime geçmek için nasıl kullanılacağını açıklar.
XmlDataDocument
XmlDataDocument sınıfıyla ilgili başvuru bilgilerini içerir.