XML 宣言付きのシリアル化
このトピックでは、シリアル化を実行する際に XML 宣言を生成するかどうかを制御する方法について説明します。
XML 宣言の生成
XElement.Save メソッドまたは XDocument.Save メソッドを使用して File または TextWriter にシリアル化すると、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>