Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlDataLoader.cs
Go to the documentation of this file.
6using System.Text;
7using System.Xml;
9
10namespace System.Data;
11
12internal sealed class XmlDataLoader
13{
14 private readonly DataSet _dataSet;
15
17
18 private readonly Hashtable _nodeToRowMap;
19
21
22 private readonly bool _fIsXdr;
23
24 internal bool _isDiffgram;
25
27
28 private readonly bool _ignoreSchema;
29
30 private readonly DataTable _dataTable;
31
32 private readonly bool _isTableLevel;
33
34 private bool _fromInference;
35
37
38 private object _XSD_XMLNS_NS;
39
40 private object _XDR_SCHEMA;
41
42 private object _XDRNS;
43
44 private object _SQL_SYNC;
45
46 private object _UPDGNS;
47
48 private object _XSD_SCHEMA;
49
50 private object _XSDNS;
51
52 private object _DFFNS;
53
54 private object _MSDNS;
55
56 private object _DIFFID;
57
58 private object _HASCHANGES;
59
60 private object _ROWORDER;
61
62 internal bool FromInference
63 {
64 get
65 {
66 return _fromInference;
67 }
68 set
69 {
71 }
72 }
73
81
91
93 {
94 _dataSet = null;
96 _isTableLevel = true;
98 _fIsXdr = IsXdr;
100 }
101
113
114 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
116 {
117 if (parentElement == null)
118 {
119 return;
120 }
121 for (XmlNode xmlNode = parentElement.FirstChild; xmlNode != null; xmlNode = xmlNode.NextSibling)
122 {
123 if (xmlNode.NodeType == XmlNodeType.Element)
124 {
127 if (rowFromElement != null && rowFromElement.RowState == DataRowState.Detached)
128 {
129 if (parentRow != null)
130 {
131 rowFromElement.SetNestedParentRow(parentRow, setNonNested: false);
132 }
134 }
135 else if (rowFromElement == null)
136 {
138 }
140 }
141 }
142 }
143
145 {
146 int num = 0;
147 for (int i = 0; i < node.Attributes.Count; i++)
148 {
149 if (!FExcludedNamespace(node.Attributes[i].NamespaceURI))
150 {
151 num++;
152 }
153 }
154 return num;
155 }
156
158 {
159 string text = null;
160 while (n != null && (n.NodeType == XmlNodeType.Whitespace || !IsTextLikeNode(n.NodeType)))
161 {
162 n = n.NextSibling;
163 }
164 if (n != null)
165 {
166 if (IsTextLikeNode(n.NodeType) && (n.NextSibling == null || !IsTextLikeNode(n.NodeType)))
167 {
168 text = n.Value;
169 n = n.NextSibling;
170 }
171 else
172 {
174 while (n != null && IsTextLikeNode(n.NodeType))
175 {
176 stringBuilder.Append(n.Value);
177 n = n.NextSibling;
178 }
179 text = stringBuilder.ToString();
180 }
181 }
182 if (text == null)
183 {
184 text = string.Empty;
185 }
186 return text;
187 }
188
190 {
191 string text = null;
192 if (n != null)
193 {
194 while (n.NodeType == XmlNodeType.Whitespace)
195 {
196 n = n.NextSibling;
197 }
198 if (IsTextLikeNode(n.NodeType) && (n.NextSibling == null || !IsTextLikeNode(n.NodeType)))
199 {
200 text = n.Value;
201 n = n.NextSibling;
202 }
203 else
204 {
206 while (n != null && IsTextLikeNode(n.NodeType))
207 {
208 stringBuilder.Append(n.Value);
209 n = n.NextSibling;
210 }
211 text = stringBuilder.ToString();
212 }
213 }
214 if (text == null)
215 {
216 text = string.Empty;
217 }
218 return text;
219 }
220
222 {
223 DataColumnCollection columns = row.Table.Columns;
224 int count = columns.Count;
225 for (int i = 0; i < count; i++)
226 {
229 {
230 return dataColumn;
231 }
232 }
233 return null;
234 }
235
237 {
238 return (DataRow)_nodeToRowMap[e];
239 }
240
241 internal bool FColumnElement(XmlElement e)
242 {
244 {
245 return false;
246 }
247 if (CountNonNSAttributes(e) > 0)
248 {
249 return false;
250 }
251 for (XmlNode xmlNode = e.FirstChild; xmlNode != null; xmlNode = xmlNode.NextSibling)
252 {
254 {
255 return false;
256 }
257 }
258 return true;
259 }
260
261 private bool FExcludedNamespace(string ns)
262 {
263 return ns.Equals("http://www.w3.org/2000/xmlns/");
264 }
265
267 {
268 if (!_fIsXdr)
269 {
270 return false;
271 }
272 XmlNode xmlNode = ((!(node is XmlAttribute)) ? node : ((XmlAttribute)node).OwnerElement);
273 if (xmlNode.NamespaceURI.StartsWith("x-schema:#", StringComparison.Ordinal))
274 {
275 return true;
276 }
277 return false;
278 }
279
281 {
282 if (_fIsXdr && node.NamespaceURI.StartsWith("x-schema:#", StringComparison.Ordinal))
283 {
284 return true;
285 }
286 return false;
287 }
288
290 {
291 switch (n)
292 {
293 case XmlNodeType.EntityReference:
295 case XmlNodeType.Text:
296 case XmlNodeType.CDATA:
297 case XmlNodeType.Whitespace:
298 case XmlNodeType.SignificantWhitespace:
299 return true;
300 default:
301 return false;
302 }
303 }
304
305 internal bool IsTextOnly(DataColumn c)
306 {
307 if (c.ColumnMapping != MappingType.SimpleContent)
308 {
309 return false;
310 }
311 return true;
312 }
313
314 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
315 internal void LoadData(XmlDocument xdoc)
316 {
317 if (xdoc.DocumentElement == null)
318 {
319 return;
320 }
322 if (_isTableLevel)
323 {
326 }
327 else
328 {
332 }
333 if (_isTableLevel)
334 {
336 }
337 else
338 {
340 }
341 DataRow dataRow = null;
343 {
344 XmlElement documentElement = xdoc.DocumentElement;
346 if (dataTable != null)
347 {
348 dataRow = dataTable.CreateEmptyRow();
351 dataTable.Rows.Add(dataRow);
352 }
353 }
354 LoadRows(dataRow, xdoc.DocumentElement);
355 AttachRows(dataRow, xdoc.DocumentElement);
356 if (_isTableLevel)
357 {
359 return;
360 }
361 _dataSet._fInReadXml = false;
363 }
364
365 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
367 {
368 DataTable table = row.Table;
369 if (FromInference)
370 {
371 table.Prefix = rowElement.Prefix;
372 }
373 Hashtable hashtable = new Hashtable();
374 row.BeginEdit();
375 XmlNode xmlNode = rowElement.FirstChild;
377 if (textOnlyColumn != null)
378 {
379 hashtable[textOnlyColumn] = textOnlyColumn;
381 if (XMLSchema.GetBooleanAttribute(rowElement, "nil", "http://www.w3.org/2001/XMLSchema-instance", defVal: false) && string.IsNullOrEmpty(valueForTextOnlyColums))
382 {
384 }
385 else
386 {
388 }
389 }
390 while (xmlNode != null && xmlNode != rowElement)
391 {
392 if (xmlNode.NodeType == XmlNodeType.Element)
393 {
397 {
399 }
400 if (obj == null || obj is DataColumn)
401 {
402 xmlNode = xmlElement.FirstChild;
403 if (obj != null && obj is DataColumn)
404 {
406 if (dataColumn.Table == row.Table && dataColumn.ColumnMapping != MappingType.Attribute && hashtable[dataColumn] == null)
407 {
408 hashtable[dataColumn] = dataColumn;
410 if (XMLSchema.GetBooleanAttribute(xmlElement, "nil", "http://www.w3.org/2001/XMLSchema-instance", defVal: false) && string.IsNullOrEmpty(valueForTextOnlyColums2))
411 {
413 }
414 else
415 {
417 }
418 }
419 }
420 else if (obj == null && xmlNode != null)
421 {
422 continue;
423 }
424 if (xmlNode == null)
425 {
427 }
428 }
429 }
430 while (xmlNode != rowElement && xmlNode.NextSibling == null)
431 {
432 xmlNode = xmlNode.ParentNode;
433 }
434 if (xmlNode != rowElement)
435 {
436 xmlNode = xmlNode.NextSibling;
437 }
438 }
439 foreach (XmlAttribute attribute in rowElement.Attributes)
440 {
442 if (columnSchema != null && columnSchema is DataColumn)
443 {
445 if (dataColumn2.ColumnMapping == MappingType.Attribute && hashtable[dataColumn2] == null)
446 {
447 hashtable[dataColumn2] = dataColumn2;
448 xmlNode = attribute.FirstChild;
450 }
451 }
452 }
453 foreach (DataColumn column in row.Table.Columns)
454 {
455 if (hashtable[column] != null || !XmlToDatasetMap.IsMappedColumn(column))
456 {
457 continue;
458 }
459 if (!column.AutoIncrement)
460 {
461 if (column.AllowDBNull)
462 {
464 }
465 else
466 {
467 row[column] = column.DefaultValue;
468 }
469 }
470 else
471 {
472 column.Init(row._tempRecord);
473 }
474 }
475 row.EndEdit();
476 }
477
478 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
480 {
481 if (parentElement == null || (parentElement.LocalName == "schema" && parentElement.NamespaceURI == "http://www.w3.org/2001/XMLSchema") || (parentElement.LocalName == "sync" && parentElement.NamespaceURI == "urn:schemas-microsoft-com:xml-updategram") || (parentElement.LocalName == "Schema" && parentElement.NamespaceURI == "urn:schemas-microsoft-com:xml-data"))
482 {
483 return;
484 }
485 for (XmlNode xmlNode = parentElement.FirstChild; xmlNode != null; xmlNode = xmlNode.NextSibling)
486 {
487 if (!(xmlNode is XmlElement))
488 {
489 continue;
490 }
494 {
496 if (dataRow == null)
497 {
498 if (parentRow != null && FColumnElement(xmlElement))
499 {
500 continue;
501 }
502 dataRow = ((DataTable)schemaForNode).CreateEmptyRow();
505 }
507 }
508 else
509 {
510 LoadRows(null, xmlNode);
511 }
512 }
513 }
514
515 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
517 {
518 row[col] = col.ConvertXmlToObject(xmlText);
519 }
520
521 private void InitNameTable()
522 {
524 _XSD_XMLNS_NS = nameTable.Add("http://www.w3.org/2000/xmlns/");
525 _XDR_SCHEMA = nameTable.Add("Schema");
526 _XDRNS = nameTable.Add("urn:schemas-microsoft-com:xml-data");
527 _SQL_SYNC = nameTable.Add("sync");
528 _UPDGNS = nameTable.Add("urn:schemas-microsoft-com:xml-updategram");
529 _XSD_SCHEMA = nameTable.Add("schema");
530 _XSDNS = nameTable.Add("http://www.w3.org/2001/XMLSchema");
531 _DFFNS = nameTable.Add("urn:schemas-microsoft-com:xml-diffgram-v1");
532 _MSDNS = nameTable.Add("urn:schemas-microsoft-com:xml-msdata");
533 _DIFFID = nameTable.Add("id");
534 _HASCHANGES = nameTable.Add("hasChanges");
535 _ROWORDER = nameTable.Add("rowOrder");
536 }
537
538 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
539 internal void LoadData(XmlReader reader)
540 {
542 int depth = _dataReader.Depth;
545 if (_nodeToSchemaMap == null)
546 {
548 }
549 if (_isTableLevel)
550 {
552 }
553 else
554 {
557 }
558 if (_topMostNode != null)
559 {
561 {
562 LoadTopMostTable(table);
563 }
564 _topMostNode = null;
565 }
566 while (!_dataReader.EOF && _dataReader.Depth >= depth)
567 {
568 if (reader.NodeType != XmlNodeType.Element)
569 {
571 continue;
572 }
574 if (tableForNode == null)
575 {
576 if (!ProcessXsdSchema())
577 {
579 }
580 }
581 else
582 {
584 }
585 }
586 if (_isTableLevel)
587 {
589 return;
590 }
591 _dataSet._fInReadXml = false;
593 }
594
595 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
596 private void LoadTopMostTable(DataTable table)
597 {
598 bool flag = _isTableLevel || _dataSet.DataSetName != table.TableName;
599 DataRow dataRow = null;
600 bool flag2 = false;
601 int num = _dataReader.Depth - 1;
604 object[] array = new object[columns.Count];
606 {
608 {
609 XmlNode n = attribute.FirstChild;
610 array[dataColumn.Ordinal] = dataColumn.ConvertXmlToObject(GetInitialTextFromNodes(ref n));
611 flag2 = true;
612 }
613 }
614 while (num < _dataReader.Depth)
615 {
616 switch (_dataReader.NodeType)
617 {
618 case XmlNodeType.Element:
619 {
622 {
623 if (array[dataColumn2.Ordinal] == null)
624 {
626 flag2 = true;
627 }
628 else
629 {
631 }
632 }
634 {
635 LoadTable(table2, isNested: true);
636 flag2 = true;
637 }
638 else if (!ProcessXsdSchema())
639 {
640 if (!(flag2 || flag))
641 {
642 return;
643 }
645 }
646 break;
647 }
648 case XmlNodeType.EntityReference:
650 case XmlNodeType.Text:
651 case XmlNodeType.CDATA:
652 case XmlNodeType.Whitespace:
653 case XmlNodeType.SignificantWhitespace:
654 {
655 string s = _dataReader.ReadString();
656 DataColumn xmlText = table._xmlText;
657 if (xmlText != null && array[xmlText.Ordinal] == null)
658 {
659 array[xmlText.Ordinal] = xmlText.ConvertXmlToObject(s);
660 }
661 break;
662 }
663 default:
665 break;
666 }
667 }
669 for (int num2 = array.Length - 1; num2 >= 0; num2--)
670 {
671 if (array[num2] == null)
672 {
674 if (xmlText.AllowDBNull && xmlText.ColumnMapping != MappingType.Hidden && !xmlText.AutoIncrement)
675 {
677 }
678 }
679 }
680 dataRow = table.Rows.AddWithColumnEvents(array);
681 while (count < _childRowsStack.Count)
682 {
684 bool flag3 = dataRow2.RowState == DataRowState.Unchanged;
685 dataRow2.SetNestedParentRow(dataRow, setNonNested: false);
686 if (flag3)
687 {
688 dataRow2._oldRecord = dataRow2._newRecord;
689 }
690 }
691 }
692
693 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
694 private void LoadTable(DataTable table, bool isNested)
695 {
696 DataRow dataRow = null;
697 int depth = _dataReader.Depth;
700 object[] array = new object[columns.Count];
701 int pos = -1;
702 string key = string.Empty;
703 string text = null;
704 bool flag = false;
705 for (int num = _dataReader.AttributeCount - 1; num >= 0; num--)
706 {
709 {
710 array[dataColumn.Ordinal] = dataColumn.ConvertXmlToObject(_dataReader.Value);
711 }
712 if (_isDiffgram)
713 {
714 if (_dataReader.NamespaceURI == "urn:schemas-microsoft-com:xml-diffgram-v1")
715 {
716 switch (_dataReader.LocalName)
717 {
718 case "id":
720 break;
721 case "hasChanges":
723 break;
724 case "hasErrors":
726 break;
727 }
728 }
729 else if (_dataReader.NamespaceURI == "urn:schemas-microsoft-com:xml-msdata")
730 {
731 if (_dataReader.LocalName == "rowOrder")
732 {
734 }
735 else if (_dataReader.LocalName.StartsWith("hidden", StringComparison.Ordinal))
736 {
738 if (dataColumn2 != null && dataColumn2.ColumnMapping == MappingType.Hidden)
739 {
740 array[dataColumn2.Ordinal] = dataColumn2.ConvertXmlToObject(_dataReader.Value);
741 }
742 }
743 }
744 }
745 }
746 if (_dataReader.Read() && depth < _dataReader.Depth)
747 {
748 while (depth < _dataReader.Depth)
749 {
750 switch (_dataReader.NodeType)
751 {
752 case XmlNodeType.Element:
753 {
756 {
757 if (array[dataColumn3.Ordinal] == null)
758 {
760 }
761 else
762 {
764 }
765 }
767 {
768 LoadTable(table2, isNested: true);
769 }
770 else if (!ProcessXsdSchema())
771 {
773 if (tableForNode != null)
774 {
776 }
777 else
778 {
780 }
781 }
782 break;
783 }
784 case XmlNodeType.EntityReference:
786 case XmlNodeType.Text:
787 case XmlNodeType.CDATA:
788 case XmlNodeType.Whitespace:
789 case XmlNodeType.SignificantWhitespace:
790 {
791 string s = _dataReader.ReadString();
793 if (dataColumn2 != null && array[dataColumn2.Ordinal] == null)
794 {
795 array[dataColumn2.Ordinal] = dataColumn2.ConvertXmlToObject(s);
796 }
797 break;
798 }
799 default:
801 break;
802 }
803 }
805 }
806 if (_isDiffgram)
807 {
808 dataRow = table.NewRow(table.NewUninitializedRecord());
809 dataRow.BeginEdit();
810 for (int num2 = array.Length - 1; num2 >= 0; num2--)
811 {
813 dataColumn2[dataRow._tempRecord] = ((array[num2] != null) ? array[num2] : DBNull.Value);
814 }
815 dataRow.EndEdit();
816 table.Rows.DiffInsertAt(dataRow, pos);
817 if (text == null)
818 {
819 dataRow._oldRecord = dataRow._newRecord;
820 }
821 if (text == "modified" || flag)
822 {
823 table.RowDiffId[key] = dataRow;
824 }
825 }
826 else
827 {
828 for (int num3 = array.Length - 1; num3 >= 0; num3--)
829 {
830 if (array[num3] == null)
831 {
833 if (dataColumn2.AllowDBNull && dataColumn2.ColumnMapping != MappingType.Hidden && !dataColumn2.AutoIncrement)
834 {
836 }
837 }
838 }
840 }
841 while (count < _childRowsStack.Count)
842 {
844 bool flag2 = dataRow2.RowState == DataRowState.Unchanged;
845 dataRow2.SetNestedParentRow(dataRow, setNonNested: false);
846 if (flag2)
847 {
848 dataRow2._oldRecord = dataRow2._newRecord;
849 }
850 }
851 if (isNested)
852 {
854 }
855 }
856
857 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
858 private void LoadColumn(DataColumn column, object[] foundColumns)
859 {
860 string text = string.Empty;
861 string text2 = null;
862 int depth = _dataReader.Depth;
864 {
865 text2 = _dataReader.GetAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance");
866 }
867 if (column.IsCustomType)
868 {
869 object obj = null;
870 string text3 = null;
871 string text4 = null;
874 {
875 text3 = _dataReader.GetAttribute("type", "http://www.w3.org/2001/XMLSchema-instance");
876 text4 = _dataReader.GetAttribute("InstanceType", "urn:schemas-microsoft-com:xml-msdata");
877 }
878 bool flag = !column.ImplementsIXMLSerializable && !(column.DataType == typeof(object)) && text4 == null && text3 == null;
879 if (text2 != null && XmlConvert.ToBoolean(text2))
880 {
881 if (!flag && text4 != null && text4.Length > 0)
882 {
884 }
885 if (obj == null)
886 {
887 obj = DBNull.Value;
888 }
890 {
891 while (_dataReader.Read() && depth < _dataReader.Depth)
892 {
893 }
894 }
896 }
897 else
898 {
899 bool flag2 = false;
900 if (column.Table.DataSet != null && column.Table.DataSet._udtIsWrapped)
901 {
903 flag2 = true;
904 }
905 if (flag)
906 {
907 if (flag2)
908 {
911 }
912 else
913 {
914 xmlRootAttribute = new XmlRootAttribute(column.EncodedColumnName);
916 }
917 }
918 obj = column.ConvertXmlToObject(_dataReader, xmlRootAttribute);
919 if (flag2)
920 {
922 }
923 }
924 foundColumns[column.Ordinal] = obj;
925 return;
926 }
927 if (_dataReader.Read() && depth < _dataReader.Depth)
928 {
929 while (depth < _dataReader.Depth)
930 {
931 switch (_dataReader.NodeType)
932 {
933 case XmlNodeType.Text:
934 case XmlNodeType.CDATA:
935 case XmlNodeType.Whitespace:
936 case XmlNodeType.SignificantWhitespace:
937 if (text.Length == 0)
938 {
942 {
943 if (stringBuilder == null)
944 {
946 }
948 }
949 if (stringBuilder != null)
950 {
951 text = stringBuilder.ToString();
952 }
953 }
954 else
955 {
957 }
958 break;
959 case XmlNodeType.Element:
960 {
961 if (ProcessXsdSchema())
962 {
963 break;
964 }
967 {
968 if (foundColumns[dataColumn.Ordinal] == null)
969 {
971 }
972 else
973 {
975 }
976 break;
977 }
978 if (columnSchema is DataTable table)
979 {
980 LoadTable(table, isNested: true);
981 break;
982 }
984 if (tableForNode != null)
985 {
987 }
988 else
989 {
991 }
992 break;
993 }
994 case XmlNodeType.EntityReference:
996 default:
998 break;
999 }
1000 }
1001 _dataReader.Read();
1002 }
1003 if (text.Length == 0 && text2 != null && XmlConvert.ToBoolean(text2))
1004 {
1005 foundColumns[column.Ordinal] = DBNull.Value;
1006 }
1007 else
1008 {
1009 foundColumns[column.Ordinal] = column.ConvertXmlToObject(text);
1010 }
1011 }
1012
1013 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
1014 private bool ProcessXsdSchema()
1015 {
1017 {
1018 if (_ignoreSchema)
1019 {
1020 _dataReader.Skip();
1021 }
1022 else if (_isTableLevel)
1023 {
1026 }
1027 else
1028 {
1031 }
1032 }
1033 else
1034 {
1036 {
1037 return false;
1038 }
1039 _dataReader.Skip();
1040 }
1041 return true;
1042 }
1043}
void Add(TKey key, TValue value)
static ? object ChangeType(object? value, TypeCode typeCode)
Definition Convert.cs:229
static readonly DBNull Value
Definition DBNull.cs:8
static Type GetType(string value)
static object GetStaticNullForUdtType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields|DynamicallyAccessedMemberTypes.PublicProperties)] Type type)
virtual MappingType ColumnMapping
void DiffInsertAt(DataRow row, int pos)
DataRow AddWithColumnEvents(params object[] values)
void ReadXSDSchema(XmlReader reader, bool denyResolving)
Definition DataSet.cs:1500
void ReadXSDSchema(XmlReader reader, bool denyResolving)
DataRowCollection Rows
Definition DataTable.cs:701
DataColumnCollection Columns
Definition DataTable.cs:327
static XmlReader CreateReader(XmlReader xr)
static bool GetBooleanAttribute(XmlElement element, string attrName, string attrNS, bool defVal)
Definition XMLSchema.cs:77
bool FColumnElement(XmlElement e)
void AttachRows(DataRow parentRow, XmlNode parentElement)
void LoadTable(DataTable table, bool isNested)
void LoadData(XmlDocument xdoc)
void LoadTopMostTable(DataTable table)
readonly Hashtable _nodeToRowMap
void LoadColumn(DataColumn column, object[] foundColumns)
XmlDataLoader(DataTable datatable, bool IsXdr, XmlElement topNode, bool ignoreSchema)
XmlDataLoader(DataSet dataset, bool IsXdr, bool ignoreSchema)
bool FExcludedNamespace(string ns)
readonly DataTable _dataTable
XmlDataLoader(DataTable datatable, bool IsXdr, bool ignoreSchema)
readonly Stack< DataRow > _childRowsStack
string GetInitialTextFromNodes(ref XmlNode n)
void LoadRowData(DataRow row, XmlElement rowElement)
DataColumn GetTextOnlyColumn(DataRow row)
string GetValueForTextOnlyColums(XmlNode n)
readonly DataSet _dataSet
XmlToDatasetMap _nodeToSchemaMap
void LoadData(XmlReader reader)
bool FIgnoreNamespace(XmlReader node)
XmlDataLoader(DataSet dataset, bool IsXdr, XmlElement topNode, bool ignoreSchema)
bool IsTextLikeNode(XmlNodeType n)
void SetRowValueFromXmlText(DataRow row, DataColumn col, string xmlText)
int CountNonNSAttributes(XmlNode node)
bool FIgnoreNamespace(XmlNode node)
void LoadRows(DataRow parentRow, XmlNode parentElement)
bool IsTextOnly(DataColumn c)
DataRow GetRowFromElement(XmlElement e)
DataTable GetTableForNode(XmlReader node, bool fIgnoreNamespace)
object GetSchemaForNode(XmlNode node, bool fIgnoreNamespace)
static bool IsMappedColumn(DataColumn c)
object GetColumnSchema(XmlNode node, bool fIgnoreNamespace)
static CultureInfo InvariantCulture
static bool ToBoolean(string s)
static ? string DecodeName(string? name)
Definition XmlConvert.cs:55
override XmlAttributeCollection Attributes
Definition XmlElement.cs:93
virtual ? XmlNode FirstChild
Definition XmlNode.cs:120
string? GetAttribute(string name)
virtual void Skip()
Definition XmlReader.cs:532
bool MoveToAttribute(string name)
XmlNodeType NodeType
Definition XmlReader.cs:62
virtual string ReadString()
Definition XmlReader.cs:570
XmlNameTable NameTable
Definition XmlReader.cs:116