Ich möchte den Grund hinter den XmlWriter.WriteStartDocument()
und XmlWriter.WriteEndDocument()
wissen.Ist es möglich, XmlWriter.WriteEndDocument() zu verwenden, ohne XmlWriter.WriteStartDocument() aufzurufen
In meinem Szenario Ich erstelle ein XML-Dokument mit einigen Daten in ihm, zum Beispiel:
XmlWriter xmlWriter = XmlWriter.Create(file);
xmlWriter.WriteStartDocument();
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
Während der Serialisierung, XmlWriter
keine Ausnahme wirft, wenn wir den Anruf zu xmlWriter.WriteStartDocument()
überspringen und rufen Sie einfach xmlWriter.WriteEndDocument()
bei der Ende.
Die unter Code-Schnipsel werfen keine Fehler oder eine Ausnahme:
XmlWriter xmlWriter = XmlWriter.Create(file);
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
Wie ist das möglich? Und können Sie die Funktionalität von WriteStartDocument()
und WriteEndDocument()
erklären?
@stuartd Aber in C#, es funktioniert gut mit der WriteEndDocument() allein. –
@stuartd Meine Fragen sind "Warum sind beide Anweisungen nicht notwendig, um die XML Deklaration in die Datei zu schreiben?". Nur "WriteEndDocument()" allein reicht aus, um die XML-Deklaration zu schreiben. Es scheint seltsam zu sein. –
@stuartd in XML 1.0 (was am häufigsten verwendet wird, ist 1.1 sehr selten), [die Deklaration ist optional] (http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require -eine-xml-Deklaration). –