مقدمه
RSS مخفف Really Simple Syndication و یا Rich Site Summary است. که یک فرمت بر پایه XML برای توزیع و انتشار محتوای سایت های اینترنتی است.
مدیران وب سایت ها فایل RSS حاوی عنوان ها و توضیحات مربوط به اطلاعات مورد نظر خود، که محتوای اغلب آنها را عنوان های خبری و اطلاعات گسسته تشکیل می دهد را ایجاد می نمایند. و از سوی دیگر مصرف کنندگان این اطلاعات قادر خواهند بود با استفاده از ابزارهایی مانند RssReader ها و یا برنامه های جمع آوری کننده اخبار (NewsAggregators)، feed های مورد علاقه خود (که همان خروجی های استاندارد RSS بوده و حاوی اطلاعات می باشند) را در یک برنامه و یا مکان خاص و متمرکز جمع آوری و بازبینی نمایند.
RSS یک استاندارد تعریف شده بر مبنای XML است که دارای هدف مشخصی است. این هدف ارائه ی سرویس به هنگام سازی به محتوای سایت های اینترنتی است.
محتوایی که در یک RssReader یا NewsAggregator به نمایش در می آید، feed نامیده می شود.
ساختار RSS
– کانال (Channel)
در بالاترین سطح، یک سند(document) RSS، حاوی یک عنصر <rss> است. که این عنصر دارای یک ویژگی الزامی به نام version می باشد، که نسخه ای از RSS که این سند با آن مطابقت دارد را مشخص می نماید. جدول زیر حاوی اطلاعاتی در مورد نسخه های مختلف RSS می باشد.
جدول 1- نسخه های RSS و پیشنهاداتی در مورد آنها
RecommendationStatusProsOwnerVersionDon’t useObsoleted by 1. 0Netscape0. 90Use for basic syndication. Easy migration path to 2. 0 if you need more flexibilityOfficially obsoleted by 2. 0, but still quite popularDrop dead simpleUserLand0. 91Use 2. 0 insteadObsoleted by 2. 0Allows richer metadata than 0. 91UserLand0. 92, 0. 93, 0. 94 Use for RDF-based applications or if you need advanced RDF-specific modulesStable core, active module developmentRDF-based, extensibility via modules, not controlled by a single vendorRSS-DEV Working Group1.
0 Use for general-purpose, metadata-rich syndicationStable core, active module developmentExtensibility via modules, easy migration path from 0. 9x branchUserLand2. 0
بعد از عنصر <rss> یک عنصر یکتای <channel> قرار می گیرد که حاوی اطلاعاتی در مورد کانال (metadata) و محتویات آن است.
برای مشاهده یک نمونه فایل rss روی این لینک کلیک کنید.
– عناصر فرعی الزامی <channel>
در اینجا لیستی از عناصر فرعی الزامی کانال آورده شده است.
جدول 2- عناصر الزامی کانال
مثالتوضیحاتعنصرGoUpstate.com News Headlinesنام کانال. چگونگی مراجعه کاربران به سرویس شما. اگر شما یک وب سایت html در اختیار دارید که حاوی اطلاعات مشابه با فایل rss شماست، عنوان (title) کانال باید مشابه عنوان سایتتان باشد.<title>http://www.goupstate.com/آدرس (url) وب سایت html مرتبط با کانال.<link>The latest news from GoUpstate.com, a Spartanburg Herald-Journal Web site.عبارت یا جمله ای که توضیحاتی در مورد کانال می دهد.<description>
– عناصر فرعی اختیاری <channel>
در اینجا لیستی از عناصر فرعی اختیاری کانال آورده شده است.
جدول 3- عناصر اختیاری کانال
مثالتوضیحاتعنصرen-usزبانی که کانال به آن زبان نوشته شده است. این عنصر به برنامه های جمع آوری کننده (Aggregator) این امکان را می دهد تا به عنوان مثال تمامی سایت های به زبان ایتالیایی را گروهبندی نمایند. لیست مقادیر مجاز تعریف شده برای این عنصر در دو لینک زیر موجود است:
مقادیر تعریف شده از طرف Netscape
مقادیر تعریف شده از طرف W3C<language>Copyright 2002, Spartanburg Herald-Journalتذکرات مربوط به حق کپی رایت برای محتویات موجود در کانال<copyright>geo@herald. com (George Matesky)آدرس الکترونیکی فرد مسئول محتوای نوشتار<managingEditor>betty@herald. com (Betty Guernsey)آدرس الکترونیکی فرد مسئول موارد تکنیکی مربوط به کانال<webMaster>Sat, 07 Sep 2002 00:00:01 GMTتاریخ انتشار محتوا در کانال. به عنوان مثال New York Times که به طور روزانه منتشر می گردد، تاریخ انتشار آن هر 24 ساعت یکبار تغییر می یابد. تمامی تاریخ ها و زمان ها (date-time) در RSS با استاندارد RFC822 مطابقت دارند.
با این استثناء که سال ممکن است با دو یا چهار کاراکتر نمایش داده شود. <pubDate>Sat, 07 Sep 2002 09:42:31 GMTآخرین تاریخی که محتوای کانال تغییر یافته است. <lastBuildDate><category>Newspapers</category>مشخص کننده دو یا چند دسته است که کانال به آنها تعلق دارد<category>MightyInHouse Content System v2. 3رشته ای (String) که معرفی کننده برنامه ایست که کانال به وسیله آن ایجاد شده است. <generator>http://blogs. law. harvard. edu/tech/rssآدرسی که به مستندات فرمت استفاده شده در فایل RSS اشاره می کند. (ممکن است این آدرس به صفحه جاری اشاره نماید. )
این امکان برای افرادیست که ممکن است به صورت اتفاقی با فایل RSS ی مربوط به مثلا 25 سال پیش بر روی یک وب سرور برخورد کنند و دچار سردرگمی گردند. <docs><cloud domain=”rpc. sys. com” port=”80″ path=”/RPC2″ registerProcedure=”pinged” protocol=”soap”/>به فرآیندها (Processes) این امکان را می دهد تا با پیاده سازی یک پروتکل تصویب-انتشار (publish-subscribe) برای feed های RSS، از به هنگام سازی کانال مطلع گردند. <cloud><ttl>60</ttl>مشخص کننده مدت زمانی بر حسب دقیقه است که کانال می تواند قبل از بازخوانی (refresh) شدن توسط منبع قبضه گردد.
<ttl>مشخص کننده یک تصویر GIF، JPEG و یا PNG است که می تواند توسط کانال نمایش داده شود. <image>رده بندی PICS برای کانال می باشد. <rating>مشخص کننده یک textbox ورودی (یک فیلد مقدار گیرنده) است که می تواند توسط کانال نمایش داده شود. <textInput>تذکر به برنامه های جمع آوری کننده، که چه ساعاتی را می توانند از جمع آوری اطلاعات صرف نظر کنند (در واقع زمان هایی که feed تغییر نمی یابد و اطلاعات جدیدی تولید نمی شود را مشخص می نماید). <skipHours>مانند عنصر skipHours روزهایی که برنامه های جمع آوری کننده می توانند از جمع آوری اطلاعات صرف نظر نمایند را به آنها گوشزد می نماید. <skipDays>