Не беспокойтесь о создании объявлений пространства имен. Просто убедитесь, что каждый элемент, который вы создаете, находится в правильном пространстве имен. XmlDocument
создаст для вас объявления пространства имен. Итак:
string pdnsdcUri = "http://purl.org/mla/pnds/pndsdc/";
string dcUri = "http://purl.org/dc/elements/1.1/"
...
XmlDocument d = new XmlDocument();
XmlElement description = d.CreateElement("pdnsdc", "description", pdnsdcUri);
d.AddChild(description);
XmlElement identifier = d.CreateElement("dc", "identifier", dcUri);
description.AddChild(identifier);
и так далее. Обычно проще создать Dictionary<string, string>
, содержащий пространства имен с ключом префикса, а затем сделать что-то вроде:
XmlElement foo = d.CreateElement("prefix", "name", namespaces[prefix]);