При генерации 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, созданного XmlDocument. Пустой атрибут xmlns
может не сломать или запутать синтаксический анализатор, но он также не присутствует ни в каком использовании этого протокола, которое я видел.