Мне нужно создать XmlDocument
с корневым элементом, содержащим несколько пространств имен. Я использую C# 2.0 или 3.0Как добавить несколько пространств имен в корневой элемент с помощью XmlDocument?
Вот мой код:
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("JOBS", "http://www.example.com");
doc.AppendChild(root);
XmlElement job = doc.CreateElement("JOB", "http://www.example.com");
root.AppendChild(job);
XmlElement docInputs = doc.CreateElement("JOB", "DOCINPUTS", "http://www.example.com");
job.AppendChild(docInputs);
XmlElement docInput = doc.CreateElement("JOB", "DOCINPUT", "http://www.example.com");
docInputs.AppendChild(docInput);
XmlElement docOutput = doc.CreateElement("JOB", "DOCOUTPUT", "http://www.example.com");
docOutputs.AppendChild(docOutput);
Выходной ток:
<JOBS xmlns="http://www.example.com">
<JOB>
<JOB:DOCINPUTS xmlns:JOB="http://www.example.com">
<JOB:DOCINPUT />
</JOB:DOCINPUTS>
<JOB:DOCOUTPUTS xmlns:JOB="http://www.example.com">
<JOB:DOCOUTPUT />
</JOB:DOCOUTPUTS>
</JOB>
</JOBS>
Однако мой желаемый результат:
<JOBS xmlns:JOBS="http://www.example.com" xmlns:JOB="http://www.example.com">
<JOB>
<JOB:DOCINPUTS>
<JOB:DOCINPUT />
</JOB:DOCINPUTS>
<JOB:DOCOUTPUTS>
<JOB:DOCOUTPUT />
</JOB:DOCOUTPUTS>
</JOB>
</JOBS>
Мой вопрос: как создать XmlDocument
, который содержит корневой элемент с несколькими пространствами имен?
Основываясь на вашем коде, кажется, что вы намерены иметь пространство имен по умолчанию 'http://www.example.com', но нужный вывод, который вы описываете, указывает, что не является частью пространства имен. Вы можете уточнить? –
Oppositional
2008-12-01 18:41:30
@Oppositional - наследует пространство имен от ; без явного пространства имен все дочерние элементы будут наследоваться от родителя. В этом случае формат описывается приложением AdLib, которое ожидает желаемого вывода, который я разместил. –
2008-12-01 18:49:55