Расширяете формат RSS дополнительными полями? - PullRequest
23 голосов
/ 07 августа 2011

У меня есть веб-сайт, для которого мне нужно создать канал 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>geo@herald.com (George Matesky)</managingEditor>
    <webMaster>betty@herald.com (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>lawyer@boyer.net (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's Realm</source>
    </item>
  </channel>
</rss>

Что, если бы я хотел добавить больше элементов, чтобы сделать их доступными для партнеров, чтобы они могли использовать их и анализировать по своему усмотрению? В то же время я не хочу ломать читателей RSS, если они добавят в него мой RSS-канал. Есть идеи, как лучше всего справиться с этим?

Ответы [ 2 ]

28 голосов
/ 07 августа 2011

Согласно спецификации 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>
5 голосов
/ 07 августа 2011

Вы можете расширять сообщение RSS любыми необходимыми элементами, и способ, которым устройства чтения RSS различают стандартные элементы от расширений, заключается в том, что расширения находятся в пространстве имен.Таким образом, стандартный читатель может легко читать стандартные элементы и игнорировать расширения.

http://cyber.law.harvard.edu/rss/rss.html#extendingRss:

Канал RSS может содержать элементы, не описанные на этой странице, только если эти элементыопределены в пространстве имен.

...