22

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" />

プレフィックス付きタグを生成する正しい方法は何ですか?

4

2 に答える 2

45

まず、atom 名前空間は通常次のとおりです。

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);
于 2010-05-11T12:32:01.700 に答える
0

Xml シリアライゼーションと名前空間プレフィックスを見てください。

于 2010-05-11T12:23:14.517 に答える