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 |