7
私はこのようなクラスを持っている:個々の要素ではなくSyndicationFeedに名前空間を追加しますか?
public static class MyFeedExtensions
{
private readonly static XNamespace _namespace = XNamespace.Get(@"http://mynamespace");
public static XElement MyElement(string value)
{
return new XElement(_namespace + "MyElement", value);
}
}
私は、カスタムの拡張機能を持つAtomフィードを生成するためにそれを使用しています:
var feed = new SyndicationFeed();
feed.ElementExtensions.Add(MyFeedExtensions.MyElement("Testing!"));
これは、フィードはに私の名前空間を追加することを除いて、正常に動作します要素:
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Hello World!</title>
<id>00000000-0000-0000-0000-000000000000</id>
<updated>2011-03-01T01:00:53Z</updated>
<MyElement xmlns="http://mynamespace">Testing!</MyElement>
</feed>
このような出力を得るには、フィードに名前空間を登録する方法がありますか?
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:my="http://mynamespace">
<title type="text">Hello World!</title>
<id>00000000-0000-0000-0000-000000000000</id>
<updated>2011-03-01T01:00:53Z</updated>
<my:MyElement>Testing!</my:MyElement>
</feed>
理想的には、私は私がElementExtensionsとSyndicationItemsを持っている場合、フィードはすべての様々な名前空間について知っておくべきこととして、仕事にもこれをしたいと思います。
(編集:これは、XMLのサイズを小さくすると、それが簡単に人間のため読むことを作るために純粋である):基本的に
feed.AttributeExtensions.Add(
new XmlQualifiedName("my",XNamespace.Xmlns.ToString()),
MyFeedExtensions.Namespace.ToString());
:
マイケル、あなたは2つが同じであることをご存知ですか? –
@John Semanticallyはい、私はちょうど生成されたXMLのサイズを小さくしようとしています –
あなたはすべての拡張機能をラッパー要素に入れることができますか? –