Я хочу знать причину, лежащую в основе XmlWriter.WriteStartDocument()
и XmlWriter.WriteEndDocument()
.Можно ли использовать XmlWriter.WriteEndDocument() без вызова XmlWriter.WriteStartDocument()
В моем сценарии я создаю документ XML с некоторыми данными в нем, например:
XmlWriter xmlWriter = XmlWriter.Create(file);
xmlWriter.WriteStartDocument();
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
Хотя сериализации, XmlWriter
не бросает любое исключение, если пропустить вызов xmlWriter.WriteStartDocument()
и просто позвонить xmlWriter.WriteEndDocument()
на конец.
Ниже фрагмент кода не бросает какую-либо ошибку или исключение:
XmlWriter xmlWriter = XmlWriter.Create(file);
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
Как это возможно? И можете ли вы объяснить функциональность WriteStartDocument()
и WriteEndDocument()
?
@stuartd Но в C# он отлично работает с WriteEndDocument(). –
@stuartd Мои вопросы: «Почему оба оператора не нужны для записи объявления xml в файл?». Просто «WriteEndDocument()» достаточно, чтобы написать объявление xml. Кажется странным. –
@stuartd в XML 1.0 (что наиболее часто используется, 1.1 очень редко), [объявление необязательно] (http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require -an-XML-декларация). –