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來註冊一個名稱空間,而不是像這樣得到一個輸出?
<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的大小,並使其更容易爲人類閱讀)
邁克爾,你知道這兩者是相同的嗎? –
@John在語義上是的,我只是想減少生成的XML的大小 –
你可以把所有的擴展放在一個包裝元素中,或者飼料格式不允許嗎? –