Herleiten von Spalten (ADO.NET)
Aktualisiert: November 2007
Nachdem ADO.NET aus einem XML-Dokument ermittelt hat, welche Elemente als Tabellen für ein DataSet herzuleiten sind, leitet es die Spalten für diese Tabellen her. ADO.NET 2.0 enthält ein neues Modul für Schemaherleitungen, das für jedes simpleType-Element einen Datentyp mit strikter Typbindung herleitet. In vorherigen Versionen war der Datentyp eines hergeleiteten simpleType-Elements immer xsd:string.
Migration und Abwärtskompatibilität
Die ReadXml-Methode verwendet ein Argument vom Typ InferSchema. Mit diesem Argument können Sie das mit vorherigen Versionen kompatible Herleitungsverhalten angeben. Die für die InferSchema-Enumeration verfügbaren Werte werden in der folgenden Tabelle dargestellt.
InferSchema
Stellt Abwärtskompatibilität bereit, indem immer ein einfacher Typ als String hergeleitet wird.InferTypedSchema
Leitet einen Datentyp mit strikter Typbindung her. Löst bei der Verwendung mit einer DataTable eine Ausnahme aus.IgnoreSchema
Ignoriert alle Inlineschemata und liest Daten in das vorhandene DataSet-Schema ein.
Attribute
Wie unter Herleiten von Tabellen definiert, wird ein Element mit Attributen als Tabelle hergeleitet. Die Attribute dieses Elements werden anschließend als Spalten für die entsprechende Tabelle hergeleitet. Für die ColumnMapping-Eigenschaft der Spalten wird MappingType.Attribute festgelegt, damit die Spaltennamen als Attribute geschrieben werden, falls das Schema wieder in XML zurückgeschrieben wird. Die Werte der Attribute werden in einer Tabellenzeile gespeichert. Betrachten Sie beispielsweise den folgenden XML-Code:
<DocumentElement>
<Element1 attr1="value1" attr2="value2"/>
</DocumentElement>
Durch die Herleitung wird eine Tabelle mit dem Namen Element1 und den zwei Spalten attr1 und attr2 erstellt. Die ColumnMapping-Eigenschaft der beiden Spalten wird auf MappingType.Attribute festgelegt.
DataSet: DocumentElement
Tabelle: Element1
attr1 |
attr2 |
---|---|
value1 |
value2 |
Elemente ohne Attribute oder untergeordnete Elemente
Ein Element ohne untergeordnete Elemente oder Attribute wird als Spalte hergeleitet. Die ColumnMapping-Eigenschaft der Spalte wird auf MappingType.Element festgelegt. Der Text der untergeordneten Elemente wird in einer Tabellenzeile gespeichert. Betrachten Sie beispielsweise den folgenden XML-Code:
<DocumentElement>
<Element1>
<ChildElement1>Text1</ChildElement1>
<ChildElement2>Text2</ChildElement2>
</Element1>
</DocumentElement>
Durch die Herleitung wird eine Tabelle mit dem Namen Element1 und den zwei Spalten ChildElement1 und ChildElement2 erstellt. Die ColumnMapping-Eigenschaft der beiden Spalten wird auf MappingType.Element festgelegt.
DataSet: DocumentElement
Tabelle: Element1
ChildElement1 |
ChildElement2 |
---|---|
Text1 |
Text2 |
Siehe auch
Konzepte
Laden eines 'DataSet' aus XML (ADO.NET)
Laden von 'DataSet'-Schemainformationen aus XML (ADO.NET)
Weitere Ressourcen
Herleiten der relationalen 'DataSet'-Struktur aus XML (ADO.NET)