При генерации XML из XmlDocument в .NET пустой атрибут xmlns
появляется при первом вводе элемента без связанного пространства имен; как это можно предотвратить?
Пример:
XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
"whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner"));
Console.WriteLine(xml.OuterXml);
Вывод:
<root xmlns="whatever:name-space-1.0"><loner xmlns="" /></root>
Требуемый выход:
<root xmlns="whatever:name-space-1.0"><loner /></root>
Есть ли решение, применимое к коду XmlDocument
, а не то, что происходит после преобразования документа в строку с помощью OuterXml
?
Мое рассуждение для этого заключается в том, чтобы увидеть, могу ли я соответствовать стандарту XML определенного протокола с использованием XML-XML, генерируемого XML. Чистый атрибут xmlns
может не нарушать или путать парсер, но он также не присутствует в любом использовании, которое я видел в этом протоколе.