Il problema può essere risolto con molta semplicità il tutto dipende come sempre dalla situazione iniziale.
Caso 1
Field1 | Field2 | Field3 |
1 | Luendi | Marzo |
2 | Martedi | Marzo |
3 | Mercoledi | Marzo |
Abbiamo eseguito DataTable.WriteXml(_FileName);
in _FileName troveremo il classico file Xml con il record di dichiarazione e i dati.
Conseiderati questi dati rileggendo i dati con DataTable.ReadXml(_FileName) non si verificheranno problemi di inferenza.
Caso 2
Field1 | Field2 | Field3 |
1 | Luendi | |
2 | Martedi | |
3 | Mercoledi | Marzo |
Abbiamo eseguito DataTable.WriteXml(_FileName);
in _FileName troveremo il classico file Xml con il record di dichiarazione e i dati.
Conseiderati questi dati rileggendo i dati con DataTable.ReadXml(_FileName) per la colonna field 3 potrebbero verificarsi problemi di infernza questo perchè solo un elemento (il 3) ha valorizzato correttamente il campo.
Se il file non è stato scritto da noi, l'unica è leggerlo prelevare per ogni nodo tutte le definizioni, e dichiarare tutte le colonne
for (int i =0 ; i < ColumnsReaded.Length-1 ; i++) { DataTable.Columns.Add(ColumnsReaded[i].ToString()); } DataTable.ReadXml(_FileName) ;
Tuttavia la soluzione migliore è evitarsi il problema alla radice....
DataTable.WriteXml(_FileName, XmlWriteMode.WriteSchema);
In questo modo qualunque sia lo schema della tabella verrà salvato nel file xml.