Таким образом, я пытаюсь создать Xml документ со следующим кодом:Два одинаковых имен с dirfferent префиксов в XDocument
XNamespace spr1 = "urn:schemas-microsoft-com:office:spreadsheet";
XNamespace ex = "urn:schemas-microsoft-com:office:excel";
XNamespace spr2 = "urn:schemas-microsoft-com:office:spreadsheet";
XNamespace rec = "http://www.w3.org/TR/REC-html40";
var xworkbook = new XElement(spr1 + "Workbook");
xworkbook.Add(new XAttribute(XNamespace.Xmlns + "x", ex));
xworkbook.Add(new XAttribute(XNamespace.Xmlns +"ss", spr2));
xworkbook.Add(new XAttribute(XNamespace.Xmlns + "html", rec));
Этот код делает следующий XML:
<ss:Workbook xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<!--Xml body-->
</ss:Workbook>
Но я ожидаю это:
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
</Workbook>
Как создать элемент рабочей книги без префикса «ss» и с необходимым атрибутом «xmlns»?
Почему? Какие у вас проблемы с текущим форматом? –
Имейте в виду - префиксы имеют смысл только в локальном контексте вашего XML-документа. '' и ' ' точно такие же, с логической точки зрения. Они оба описывают элемент 'a' в пространстве имен' urn: def'. –
@Damien_The_Unbeliever Несмотря на то, что они должны быть точно такими же, у меня есть некоторое воспоминание о том, что MS Office очень подробно описывает имена элементов и как их пространства имен объявлены, и OP может столкнуться с такими проблемами. – JLRishe