Сериализация с помощью XML-объявления
В этом разделе описывается, как указывать, должна ли при сериализации формироваться XML-декларация.
Формирование XML-декларации
При сериализации в File или TextWriter с помощью метода XElement.Save или метода XDocument.Save формируется XML-декларация. При сериализации в XmlWriter параметры модуля записи (заданные в объекте XmlWriterSettings) определяют, будет ли сформирована XML-декларация.
При сериализации в строку при помощи метода ToString итоговый XML-документ не будет содержать XML-декларацию.
Сериализация с использованием декларации XML
Следующий пример создает XElement, сохраняет документ в файл, а затем выводит файл на консоль.
XElement root = new XElement("Root",
new XElement("Child", "child content")
);
root.Save("Root.xml");
string str = File.ReadAllText("Root.xml");
Console.WriteLine(str);
Dim root As XElement = <Root>
<Child>child content</Child>
</Root>
root.Save("Root.xml")
Dim str As String = File.ReadAllText("Root.xml")
Console.WriteLine(str)
В этом примере выводятся следующие данные:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>child content</Child>
</Root>
Сериализация без XML-декларации
В следующем примере демонстрируется, как сохранять XElement в XmlWriter.
StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
using (XmlWriter xw = XmlWriter.Create(sb, xws)) {
XElement root = new XElement("Root",
new XElement("Child", "child content")
);
root.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True
Using xw As XmlWriter = XmlWriter.Create(sb, xws)
Dim root = <Root>
<Child>child content</Child>
</Root>
root.Save(xw)
End Using
Console.WriteLine(sb.ToString())
В этом примере выводятся следующие данные:
<Root><Child>child content</Child></Root>