Расширение формата RSS с большим количеством полей?
У меня есть веб-сайт, на котором мне нужно создать RSS-канал. Есть ли стандартный формат для добавления настраиваемых полей в RSS-канал? Я хотел бы добавить элемент "location" к моим RSS-каналам, например. У меня есть некоторые партнеры, которые хотели бы использовать каналы и иметь возможность использовать настраиваемые поля, специфичные для моего веб-сайта.
В текущем формате RSS 2.0 это включенные поля, доступные из спецификаций RSS 2.0:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>RSS Example</title>
<description>This is an example of an RSS feed</description>
<link>http://www.domain.com/link.htm</link>
<lastBuildDate>Mon, 28 Aug 2006 11:12:55 -0400 </lastBuildDate>
<pubDate>Tue, 29 Aug 2006 09:00:00 -0400</pubDate>
<language>en-us</language>
<copyright>Copyright 2002, Spartanburg Herald-Journal</copyright>
<managingEditor>[email protected] (George Matesky)</managingEditor>
<webMaster>[email protected] (Betty Guernsey)</webMaster>
<category>Newspapers</category>
<generator>MightyInHouse Content System v2.3</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<title>Something</title>
<url>http://something.com/image.jpg</url>
<link>http://something.com</link>
<description>This is something</description>
</image>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<item>
<title>Item Example</title>
<description>This is an example of an Item</description>
<link>http://www.domain.com/link.htm</link>
<guid> 1102345</guid>
<pubDate>Tue, 29 Aug 2006 09:00:00 -0400</pubDate>
<author>[email protected] (Lawyer Boyer)</author>
<category>Grateful Dead</category>
<comments>http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290</comments>
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />
<source url="http://www.tomalak.org/links2.xml">Tomalak Realm</source>
</item>
</channel>
</rss>
Что делать, если я хотел добавить больше элементов, чтобы сделать их доступными для партнеров, чтобы они могли потреблять и разбирать их по своему усмотрению? В то же время я не хочу разорвать RSS-ридеры, если они добавят мне RSS-канал. Любая идея о наилучшем способе справиться с этим?
Ответы
Ответ 1
В соответствии с Спецификация RSS 2.0:
"RSS появился в 1999 году и стремился быть простым, легким в понимать формат с относительно скромными целями. После того, как он стал популярный формат, разработчики хотели расширить его, используя модули, определенные в пространствах имен, как определено W3C.
RSS 2.0 добавляет эту возможность, следуя простому правилу. RSS-канал может содержат элементы, не описанные на этой странице, только если эти элементы определены в пространстве имен."
Просмотрите статью Расширение RSS 2.0 с помощью пространств имен, в котором показано, как это сделать. Пример из статьи показывает, что автор добавляет некоторые пользовательские поля блога в свой канал:
<rss version="2.0"
xmlns="http://backend.userland.com/rss2"
xmlns:blogChannel="http://backend.userland.com/blogChannelModule">
<channel>
<title>Scripting News</title>
<link>http://www.scripting.com/</link>
<blogChannel:blogRoll>http://radio.weblogs.com/ ... /file.opml</blogChannel:blogRoll>
<blogChannel:mySubscriptions>http://ra ... /file.opml</blogChannel:mySubscriptions>
<blogChannel:blink>http://inessential.com/</blogChannel:blink>
.
.
.
</channel>
</rss>
Ответ 2
Вы можете распространять RSS-сообщение с любыми элементами, которые вы хотите, и способ, которым читатели RSS различают стандартные элементы из расширений, состоит в том, что расширения находятся в пространстве имен. Таким образом, стандартный читатель может легко читать стандартные элементы и игнорировать расширения.
http://cyber.law.harvard.edu/rss/rss.html#extendingRss:
RSS-канал может содержать элементы, не описанные на этой странице, только если эти элементы определены в пространстве имен.