Вы создали свой атрибут xAt без указания пространства имен uri, которое эквивалентно пустому строковому пространству имен uri (см. соответствующий MSDN do c здесь ), что, безусловно, почему вы получаете <Row xmlns="">
На самом деле вам нужно указать точное URI пространства имен, чтобы оно работало так, как вы ожидаете. Позвольте мне проиллюстрировать, используя пространство имен uri, которое вы задали в своем вопросе (Иллюстрация очень похожа на ваш исходный код, но может иметь несколько небольших различий, которые вы можете легко изменить).
String namespaceUri = "urn:schemas-microsoft-com:office:spreadsheet";
XmlDocument xDoc = new XmlDocument();
XmlElement workbook = xDoc.CreateElement("ss", "Workbook", namespaceUri);
XmlElement rows = xDoc.CreateElement("Rows");
На этом шаге я могу предположить что у меня есть XmlDocument, похожий на тот, что у вас есть после первоначальной загрузки вашего файла. Мой XmlDocument имеет узел workbook в качестве своего DocumentElement, он использует заданный префикс и пространство имен uri.
Теперь мы можем создать атрибут:
var attribute = xDoc.CreateAttribute("ss", "Type", "urn:schemas-microsoft-com:office:spreadsheet");
attribute.Value = "String";
Пространство имен uri должен быть указан правильно, иначе он не будет правильно отображен. Когда этот атрибут используется, поскольку пространство имен, к которому он обращается, находится в элементе вложенности (рабочей книге), нет необходимости упоминать его здесь снова, и платформа автоматически удалит ссылку на пространство имен uri.
Теперь мы можем go вперед и создать элементы Row и data и добавить атрибут в коллекцию атрибутов элемента Data.
XmlElement eRow = xDoc.CreateElement("Row");
XmlElement eData = xDoc.CreateElement("Data");
eData.Attributes.Append(attribute);
eData.InnerText = "value";
eRow.AppendChild(eData);
rows.AppendChild(eRow);
workbook.AppendChild(rows);
xDoc.AppendChild(workbook);
Затем мы можем отобразить документ, например, с помощью:
Console.WriteLine(xDoc.OuterXml);
Результат:
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"><Rows><Row><Data ss:Type="String">value</Data></Row></Rows></ss:Workbook>
Надеюсь, это поможет.