XML Verileri Olarak DataSet İçeriği Yazma

ADO.NET içinde, şeması olan veya olmayan bir DataSetöğesinin XML gösterimini yazabilirsiniz. Şema bilgileri XML ile satır içinde yer alıyorsa, XML Şema tanım dili (XSD) kullanılarak yazılır. Şema, öğesinin tablo tanımlarının DataSet yanı sıra ilişki ve kısıtlama tanımlarını içerir.

a DataSet XML verileri olarak yazıldığında içindeki satırlar DataSet geçerli sürümlerinde yazılır. Ancak, satırların DataSet hem geçerli hem de özgün değerlerinin dahil edilmesi için DiffGram olarak da yazılabilir.

öğesinin DataSet XML gösterimi bir dosyaya, akışa, XmlWriter'a veya dizeye yazılabilir. Bu seçenekler, XML gösterimini DataSettaşıma şekliniz için büyük esneklik sağlar. xml gösterimini DataSet dize olarak almak için aşağıdaki örnekte gösterildiği gibi GetXml yöntemini kullanın.

Dim xmlDS As String = custDS.GetXml()  
string xmlDS = custDS.GetXml();  

GetXml , şema bilgisi olmadan öğesinin XML gösterimini DataSet döndürür. Şema bilgilerini DataSet (XML Şeması olarak) bir dizeye yazmak için GetXmlSchema kullanın.

Bir dosyaya, akışa veya XmlWriter'a yazmak DataSet için WriteXml yöntemini kullanın. WriteXml'ye geçirdiğiniz ilk parametre XML çıkışının hedefidir. Örneğin, dosya adı, System.IO.TextWriter nesnesi vb. içeren bir dize geçirin. XML çıkışının nasıl yazılacağını belirtmek için XmlWriteMode'un isteğe bağlı ikinci parametresini geçirebilirsiniz.

Aşağıdaki tabloda XmlWriteMode seçenekleri gösterilmektedir.

XmlWriteMode seçeneği Açıklama
IgnoreSchema geçerli içeriğini DataSet XML şeması olmadan XML verileri olarak yazar. Bu varsayılan seçenektir.
WriteSchema öğesinin geçerli içeriğini DataSet , ilişkisel yapıya sahip XML verileri olarak satır içi XML Şeması olarak yazar.
Diffgram Özgün ve geçerli değerler de dahil olmak üzere tamamını DataSet DiffGram olarak yazar. Daha fazla bilgi için bkz . DiffGrams.

DataRelation nesneleri içeren bir DataSet öğesinin XML gösterimini yazarken, büyük olasılıkla sonuçta elde edilen XML'nin her ilişkinin alt satırlarının ilgili üst öğeleri içinde iç içe olmasını istersiniz. Bunu yapmak için DataRelation'ı öğesine eklediğinizde DataRelation'ın DataSetnested özelliğini true olarak ayarlayın. Daha fazla bilgi için bkz . DataRelations İç İçe Yerleştirme.

Aşağıda, dosyasının DataSet XML gösteriminin nasıl yazileceğini gösteren iki örnek verilmiştir. İlk örnek, sonuçta elde edilen XML'nin dosya adını WriteXml'ye dize olarak geçirir. İkinci örnek bir System.IO.StreamWriter nesnesi geçirir.

custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema)  
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);  
Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("Customers.xml")  
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema)  
xmlSW.Close()  
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");  
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);  
xmlSW.Close();  

Sütunları XML Öğelerine, Özniteliklerine ve Metne Eşleme

DataColumn nesnesinin ColumnMapping özelliğini kullanarak bir tablonun sütununun XML'de nasıl gösterileceğini belirtebilirsiniz. Aşağıdaki tabloda, tablo sütununun ColumnMapping özelliği için farklı MappingType değerleri ve sonuçta elde edilen XML gösterilmektedir.

MappingType değeri Açıklama
Öğe Bu varsayılan seçenektir. Sütun, ColumnName öğesinin adı ve sütun içeriğinin öğenin metni olarak yazıldığı bir XML öğesi olarak yazılır. Örneğin:

<ColumnName>Column Contents</ColumnName>
Öznitelik Sütun, geçerli satır için XML öğesinin XML özniteliği olarak yazılır; burada ColumnName özniteliğin adıdır ve sütunun içeriği özniteliğin değeri olarak yazılır. Örneğin:

<RowElement ColumnName="Column Contents" />
Simplecontent Sütunun içeriği, geçerli satırın XML öğesinde metin olarak yazılır. Örneğin:

<RowElement>Column Contents</RowElement>

SimpleContent öğesinin, Öğe sütunları veya iç içe ilişkiler içeren bir tablo sütunu için ayarlanamayacağını unutmayın.
Gizli Sütun XML çıkışında yazılmaz.

Ayrıca bkz.