XmlDocumentオブジェクトにある DocumentTypeを変更したい場合は、そのnodeを置き換えなければならない。
XmlDocument document = new XmlDocument();
document.Load( "test.xml" );
XmlDocumentType newType = new document.CreateType("new", "", "", ""); // 新しいDocumentType
XmlDocumentType oldType = document.DocumentType; // 古いDocumentType
document.ReplaceChild(newType, oldType);
のようにする。
ここで、DocumentTypeのNodeはElementsのNodeより先に配置されていないと、document.DocumentTypeでnullが返ってきてしまうようになる。
なので、RemoveChild(oldType) -> AppendChild(newType)という方法では、DocumentTypeのノードが最後尾に回されてしまうため駄目。