Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Save()

void System.Data.XmlDataTreeWriter.Save ( XmlWriter xw,
bool writeSchema )
inlinepackage

Definition at line 173 of file XmlDataTreeWriter.cs.

174 {
175 _xmlw = DataTextWriter.CreateWriter(xw);
176 int num = _topLevelTables.Length;
177 bool flag = true;
178 string prefix = ((_ds == null) ? ((_dt.Namespace.Length == 0) ? "" : _dt.Prefix) : ((_ds.Namespace.Length == 0) ? "" : _ds.Prefix));
179 if (!writeSchema && _ds != null && _ds._fTopLevelTable && num == 1 && _ds.TopLevelTables()[0].Rows.Count == 1)
180 {
181 flag = false;
182 }
183 if (flag)
184 {
185 if (_ds == null)
186 {
187 _xmlw.WriteStartElement(prefix, "DocumentElement", _dt.Namespace);
188 }
189 else if (_ds.DataSetName == null || _ds.DataSetName.Length == 0)
190 {
191 _xmlw.WriteStartElement(prefix, "DocumentElement", _ds.Namespace);
192 }
193 else
194 {
196 }
197 for (int i = 0; i < _dTables.Count; i++)
198 {
199 if (((DataTable)_dTables[i])._xmlText != null)
200 {
201 _xmlw.WriteAttributeString("xmlns", "xsi", "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2001/XMLSchema-instance");
202 break;
203 }
204 }
205 if (writeSchema)
206 {
207 if (!_fFromTable)
208 {
209 new XmlTreeGen(SchemaFormat.Public).Save(_ds, _xmlw);
210 }
211 else
212 {
213 new XmlTreeGen(SchemaFormat.Public).Save(null, _dt, _xmlw, _writeHierarchy);
214 }
215 }
216 }
217 for (int j = 0; j < _dTables.Count; j++)
218 {
219 foreach (DataRow row in ((DataTable)_dTables[j]).Rows)
220 {
221 if (row.RowState != DataRowState.Deleted)
222 {
223 int nestedParentCount = row.GetNestedParentCount();
224 if (nestedParentCount == 0)
225 {
226 XmlDataRowWriter(row, ((DataTable)_dTables[j]).EncodedTableName);
227 }
228 else if (nestedParentCount > 1)
229 {
230 DataTable dataTable = (DataTable)_dTables[j];
231 throw ExceptionBuilder.MultipleParentRows((dataTable.Namespace.Length == 0) ? dataTable.TableName : (dataTable.Namespace + dataTable.TableName));
232 }
233 }
234 }
235 }
236 if (flag)
237 {
239 }
240 _xmlw.Flush();
241 }
DataTable[] TopLevelTables()
Definition DataSet.cs:2640
DataRowCollection Rows
Definition DataTable.cs:701
void XmlDataRowWriter(DataRow row, string encodedTableName)
readonly DataTable[] _topLevelTables
static ? string EncodeLocalName(string? name)
Definition XmlConvert.cs:49
void WriteAttributeString(string localName, string? ns, string? value)
Definition XmlWriter.cs:46
void WriteStartElement(string localName, string? ns)
Definition XmlWriter.cs:30

References System.Data.XmlDataTreeWriter._ds, System.Data.XmlDataTreeWriter._dt, System.Data.XmlDataTreeWriter._dTables, System.Data.XmlDataTreeWriter._fFromTable, System.Data.DataSet._fTopLevelTable, System.Data.XmlDataTreeWriter._topLevelTables, System.Data.XmlDataTreeWriter._writeHierarchy, System.Data.XmlDataTreeWriter._xmlw, System.Data.DataRowCollection.Count, System.Collections.ArrayList.Count, System.Data.DataTextWriter.CreateWriter(), System.Data.DataSet.DataSetName, System.Xml.Dictionary, System.Xml.XmlConvert.EncodeLocalName(), System.Xml.XmlWriter.Flush(), System.Data.ExceptionBuilder.MultipleParentRows(), System.Data.DataSet.Namespace, System.Data.DataTable.Namespace, System.Data.DataSet.Prefix, System.Data.DataTable.Prefix, System.prefix, System.Data.DataTable.Rows, System.Data.XmlTreeGen.Save(), System.Data.DataSet.TopLevelTables(), System.Xml.XmlWriter.WriteAttributeString(), System.Xml.XmlWriter.WriteEndElement(), System.Xml.XmlWriter.WriteStartElement(), and System.Data.XmlDataTreeWriter.XmlDataRowWriter().

Referenced by System.Data.DataSet.GetXml(), System.Data.DataSet.WriteXml(), and System.Data.DataSet.WriteXml().