Следующий код загрузит все нужные пространства имен в менеджер пространства имен и создаст образец документа. .NET будет выводить только те пространства имен, которые фактически используются в документе, но не все. Я не уверен, есть ли способ форсировать вывод неиспользуемых, но неиспользованные действительно не нужны.
public static void Test()
{
var nt = new NameTable();
var ns = new XmlNamespaceManager(nt);
var doc = new XmlDocument(nt);
ns.AddNamespace("office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
ns.AddNamespace("style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
ns.AddNamespace("text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
ns.AddNamespace("table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0");
ns.AddNamespace("draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
ns.AddNamespace("fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
ns.AddNamespace("xlink", "http://www.w3.org/1999/xlink");
ns.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");
ns.AddNamespace("meta", "urn:oasis:names:tc:opendocument:xmlns:meta:1.0");
ns.AddNamespace("number", "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0");
ns.AddNamespace("svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
ns.AddNamespace("chart", "urn:oasis:names:tc:opendocument:xmlns:chart:1.0");
ns.AddNamespace("dr3d", "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0");
ns.AddNamespace("math", "http://www.w3.org/1998/Math/MathML");
ns.AddNamespace("form", "urn:oasis:names:tc:opendocument:xmlns:form:1.0");
ns.AddNamespace("script", "urn:oasis:names:tc:opendocument:xmlns:script:1.0");
ns.AddNamespace("ooo", "http://openoffice.org/2004/office");
ns.AddNamespace("ooow", "http://openoffice.org/2004/writer");
ns.AddNamespace("oooc", "http://openoffice.org/2004/calc");
ns.AddNamespace("dom", "http://www.w3.org/2001/xml-events");
ns.AddNamespace("xforms", "http://www.w3.org/2002/xforms");
ns.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
ns.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ns.AddNamespace("rpt", "http://openoffice.org/2005/report");
ns.AddNamespace("of", "urn:oasis:names:tc:opendocument:xmlns:of:1.2");
ns.AddNamespace("rdfa", "http://docs.oasis-open.org/opendocument/meta/rdfa#");
ns.AddNamespace("field", "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0");
var root = doc.CreateElement("office", "document-content");
var attr = doc.CreateAttribute("office", "version", ns.LookupNamespace("office"));
attr.Value = "1.2";
root.Attributes.Append(attr);
doc.AppendChild(root);
using (var xw = new XmlTextWriter(Console.Out))
{
xw.Formatting = Formatting.Indented;
xw.Indentation = 2;
xw.IndentChar = ' ';
doc.WriteTo(xw);
}
}