Aracılığıyla paylaş


Sütunların Çıkarımını Yapma

ADO.NET, bir XML belgesinden hangi öğelerin için tablo DataSetolarak çıkarıldığını belirledikten sonra, bu tabloların sütunlarını çıkartır. ADO.NET 2.0, her simpleType öğesi için kesin olarak yazılmış bir veri türü çıkartan yeni bir şema çıkarım altyapısını kullanıma sunar. Önceki sürümlerde, çıkarsanan simpleType öğesinin veri türü her zaman xsd:string idi.

Geçiş ve Geriye Dönük Uyumluluk

ReadXml yöntemi InferSchema türünde bir bağımsız değişken alır. Bu bağımsız değişken, önceki sürümlerle uyumlu çıkarım davranışını belirtmenize olanak tanır. InferSchema numaralandırması için kullanılabilir değerler aşağıdaki tabloda gösterilmiştir.

InferSchema
Her zaman basit bir türü olarak Stringçıkararak geriye dönük uyumluluk sağlar.

InferTypedSchema
Kesin olarak belirlenmiş bir veri türü çıkartır. ile DataTablekullanıldığında bir özel durum oluşturur.

IgnoreSchema
Satır içi şemaları yoksayar ve mevcut DataSet şemadaki verileri okur.

Özellikler

Tablo Çıkarma'da tanımlandığı gibi, öznitelikleri olan bir öğe tablo olarak çıkarılır. Bu öğenin öznitelikleri tablo için sütun olarak çıkarılır. Şema XML'ye geri yazılırsa sütun adlarının öznitelik olarak yazılmasını sağlamak için sütunların ColumnMapping özelliği MappingType.Attribute olarak ayarlanır. Özniteliklerin değerleri tablodaki bir satırda depolanır. Örneğin, aşağıdaki XML'yi göz önünde bulundurun:

<DocumentElement>  
  <Element1 attr1="value1" attr2="value2"/>  
</DocumentElement>  

Çıkarım işlemi, attr1 ve attr2 olmak üzere iki sütunu olan Element1 adlı bir tablo oluşturur. Her iki sütunun ColumnMapping özelliği MappingType.Attribute olarak ayarlanır.

DataSet: DocumentElement

Tablo: Öğe1

attr1 attr2
değer1 değer2

Öznitelikleri veya Alt Öğeleri Olmayan Öğeler

Bir öğenin alt öğesi veya özniteliği yoksa, sütun olarak çıkarılır. Sütunun ColumnMapping özelliği MappingType.Element olarak ayarlanır. Alt öğelerin metni tablodaki bir satırda depolanır. Örneğin, aşağıdaki XML'yi göz önünde bulundurun:

<DocumentElement>  
  <Element1>  
    <ChildElement1>Text1</ChildElement1>  
    <ChildElement2>Text2</ChildElement2>  
  </Element1>  
</DocumentElement>  

Çıkarım işlemi, ChildElement1 ve ChildElement2 adlı iki sütunu olan Element1 adlı bir tablo oluşturur. Her iki sütunun ColumnMapping özelliği MappingType.Element olarak ayarlanır.

DataSet: DocumentElement

Tablo: Öğe1

ChildElement1 ChildElement2
Metin1 Metin2

Ayrıca bkz.