表題のメソッドを引数無し使ってもXML宣言はスタンドアロンとして出力されていたと思うんだが。
<?xml version="1.0" standalone="yes"?>
<hoge:root xmlns:hoge="〜">
<hoge:table>
〜
</hoge:table>
</hoge:root>さっき久しぶりにWindows7 VS2008上でビルドして動かしたらXML宣言は出力されないわ、ルートタグがきちんと閉じずにXML構造は壊れるわでびっくりした。
<hoge:root xmlns:hoge="〜"> </hoge:root>foobar> </hoge:table> </hoge:root>
.NET2.0の頃に作ったアプリケーションなんだが、〜.NET3.0〜.NET3.5SP1に至る間に何かあったんだろうか。
XmlTextWriter writer = new XmlTextWriter(fs, Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); this.table.DataSet.WriteXml(writer);
こうしてXmlTextWriter#WriteStartDocumentを挟むと、当然の如くXML宣言が出力されるようになるが、腑に落ちないよな。