Как генерировать использование префиксов тега XmlSerializer

Я хотел генерировать следующее использование XmlSerializer:

<atom:link href="http://dallas.example.com/rss.xml" rel="self" type="application/rss+xml" />

Таким образом, я пытался добавить Пространство имен к своему элементу:

[...]

    [XmlElement("link", Namespace="atom")]
    public AtomLink AtomLink { get; set; }

[...]

Но вывод:

<link xmlns="atom" href="http://dallas.example.com/rss.xml" rel="self" type="application/rss+xml" />

Таким образом, что корректный путь состоит в том, чтобы генерировать снабженные префиксом теги?

18
задан hoang 11 May 2010 в 12:16
поделиться

2 ответа

Во-первых, пространство имен атома обычно выглядит следующим образом:

xmlns:atom="http://www.w3.org/2005/Atom"

Чтобы ваши теги использовали префикс пространства имен atom , вам необходимо пометить им свои свойства:

[XmlElement("link", Namespace="http://www.w3.org/2005/Atom")]
public AtomLink AtomLink { get; set; }

Также вам потребуется скажите XmlSerializer использовать его (спасибо @Marc Gravell):

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("atom", "http://www.w3.org/2005/Atom");
XmlSerializer xser = new XmlSerializer(typeof(MyType));
xser.Serialize(Console.Out, new MyType(), ns);
37
ответ дан 30 November 2019 в 07:22
поделиться
0
ответ дан 30 November 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: