Попытка добавить пространство имен с помощью XmlTextWriter с использованием потока памяти - PullRequest
0 голосов
/ 09 мая 2011

ПРИМЕЧАНИЕ Я ограничен .NET 2.0

Мне нужно добавить пространство имен с помощью XmlTextWriter. Я не читаю в XML-документе и не сохраняю его. Сначала я думал, что мог бы использовать XmlNameSpaceManager для добавления пространства имен, но, похоже, это в том случае, если я прочитал документ xml или работал с объектом XmlDocument.

Может быть, я слишком усложняю это, поскольку я буду иметь дело только с одним пространством имен одновременно. Похоже, я мог бы просто добавить корневой элемент с атрибутом, чтобы вручную создать пространство имен, поскольку оно находится в корневом элементе.

Пример того, что мне нужно создать:

<?xml version="1.0" encoding="utf-8"?>
<abcElement xmlns="urn:schemas-acme-com:transaction-data-1.1">

</abcElement>

Будет ли проблема с выполнением чего-то вроде:

xtw.WriteStartDocument();
xtw.WriteStartElement("abcElement");
xtw.WriteAttributeString("xmlns", "urn:schemas-acme-com:transaction-data-1.1");
xtw.WriteEndElement();

Или есть проблема с этим?

Ответы [ 3 ]

0 голосов
/ 09 мая 2011

Вы не должны пытаться выводить xmlns вручную. Вместо этого используйте другой оверид WriteStartElement - http://msdn.microsoft.com/en-us/library/7cdfkth5.aspx

writer.WriteStartElement(prefix, "ISBN", "urn:samples");
0 голосов
/ 10 февраля 2018
xtw.WriteStartElement("abcElement");
xtw.WriteAttributeString("xmlns", "urn:schemas-acme-com:transaction-data-1.1");

Должно быть

xtw.WriteStartElement("abcElement", "urn:schemas-acme-com:transaction-data-1.1");
0 голосов
/ 09 мая 2011

Вы можете получить больше пробега из XNamespace и XElement позже, когда добавляете другие элементы.

http://msdn.microsoft.com/en-us/library/bb387075.aspx

...