Как переименовать xmlns = "" с помощью WriteStartElement? - PullRequest
1 голос
/ 01 января 2012

Я пытаюсь создать XML-файл, который будет анализироваться читателем содержимого XNA. Я использую XMLWriter, и формат должен быть:

<XNAContent>
     <Assest Type="namespace">
          <Element>"Value"</Element>
     </Asset>
<XNAContent>

Но когда я использую WriteStartElement для объявления пространства имен, я получаю:

 <XNAContent>
     <Assest xmlns="namespace">
          <Element>"Value"</Element>
     </Asset>
<XNAContent>

Важно, чтобы у меня было Asset Type= вместо Asset xmlns= из-за того, что ожидает конвейер, но я не могу найти перегрузку, которая позволяет мне переименовать этот тег по умолчанию.

Есть ли способ для XMLWriter позволить мне поместить туда свой собственный тег, как описано? Спасибо всем.

1 Ответ

3 голосов
/ 01 января 2012

Вы путаете атрибуты XML с пространствами имен, xmlns - это «специальный» атрибут, который определяет пространство имен для элемента XML и его дочерних элементов. В то время как ваш Type является просто атрибутом. Для записи значения атрибута используется метод WriteAttributeString .

Например:

 writer.WriteStartElement("Asset");

 writer.WriteAttributeString("Type", "namespace");

 writer.WriteEndElement();

приведет к

<Asset Type="namespace">
</Asset>
...