Keramatifar
سه شنبه 08 خرداد 1386, 10:19 صبح
دوستان عزیز
امیدوارم این مقاله مشکل تمام دوستانی که در مورد RSS سوال داشتن رو حل کنه
RSS چیست؟
مقدمه 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 و پیشنهاداتی در مورد آنها Recommendation Status Pros Owner Version Don't use Obsoleted by 1.0 Netscape 0.90 Use for basic syndication. Easy migration path to 2.0 if you need more flexibility Officially obsoleted by 2.0, but still quite popular Drop dead simple UserLand 0.91 Use 2.0 instead Obsoleted by 2.0 Allows richer metadata than 0.91 UserLand 0.92, 0.93, 0.94 Use for RDF-based applications or if you need advanced RDF-specific modules Stable core, active module development RDF-based, extensibility via modules, not controlled by a single vendor RSS-DEV Working Group 1.0 Use for general-purpose, metadata-rich syndication Stable core, active module development Extensibility via modules, easy migration path from 0.9x branch UserLand 2.0
بعد از عنصر <rss> یک عنصر یکتای <channel> قرار میگیرد که حاوی اطلاعاتی در مورد کانال (metadata) و محتویات آن است.
برای مشاهدۀ یک نمونه فایل rss روی این لینک کلیک کنید.
- عناصر فرعی الزامی <channel>
در اینجا لیستی از عناصر فرعی الزامی کانال آورده شده است.
جدول 2- عناصر الزامی کانال
مثال توضیحات عنصر GoUpstate.com News Headlines نام کانال. چگونگی مراجعۀ کاربران به سرویس شما. اگر شما یک وب سایت html در اختیار دارید که حاوی اطلاعات مشابه با فایل rss شماست، عنوان (title) کانال باید مشابه عنوان سایتتان باشد. <title> http://www.goupstate.com/ (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 (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>
- جزئیات برخی عناصر فرعی کانال <channel>
• <image> این عنصر یک عنصر فرعی کانال <channel> است که خود دارای سه عنصر فرعی الزامی و سه عنصر فرعی اختیاری میباشد.
o عناصر الزامی <url> : آدرس یک تصویر GIF، JPEG و یا PNG است که توسط کانال ارائه میگردد.
<title> : که توصیف کنندۀ تصویر است و هنگامی که کانال به صورت html رندر (render) میشود، در ویژگی ALT مربوط به تگ <img> از html مورد استفاده قرار میگیرد.
<link> : آدرس سایت است و هنگامی که کانال رندر میگردد، تصویر پیوندی به سایت میباشد. (توجه داشته باشید که در عمل، عناصر <title> و <link> مربوط به تصویر باید مقادیر یکسانی با عناصر <title> و <link> مربوط به کانال داشته باشند.)
o عناصر اختیاری این عناصر شامل <width> و <height> میباشند که طول و عرض تصویر را بر مبنای پیکسل مشخص مینمایند. عنصر <description> نیز شامل متنی است که در ویژگی title پیوند مربوط به تصویر وجود دارد و در هنگام نمایش به صورت html، در اطراف تصویر ظاهر میگردد. مقدار ماکزیمم برای <width> 144 و مقدار پیش فرض 88 است. مقدار ماکزیمم برای <height> 400 و مقدار پیش فرض 31 است.
• <cloud> این عنصر مشخص کنندۀ سرویس وبی است که، واسط rsscloud که میتواند در پروتکل های XML-PRC، HTTP-POST و SOAP1.1 پیاده سازی شود را پشتیبانی مینماید. هدف آن ثبت کردن فرآیندها، به وسیلۀ یک cloud به منظور آگاه سازی آنها از به هنگام سازی کانال میباشد که اینکار را توسط پیاده سازی پروتکل تصویب-انتشار (publish-subscribe) برای feed های rss انجام میدهد. مثال: <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
در این مثال، برای درخواست آگاهی از کانال، شما باید یک پیام XML-PRC را برای rps.sys.com بر روی پورت 80 و با مسیر /prc2 ارسال نمایید. روتینی که باید فراخوانی شود نیز mycloud.rssPleaseNotify میباشد.
• <ttl> این عنصر نمایندۀ زمان حیات کانال است. بدین معنا که، <ttl> مدت زمانی بر حسب دقیقه است که کانال میتواند قبل از بازنویسی شدن آن توسط منبع، قبضه گردد. این امکان منابع rss را قادر میسازد تا به وسیلۀ شبکههای اشتراک فایل مانند Gnutella مدیریت شوند.
• <inputText> یک کانال میتواند حاوی یک عنصر <inputText> باشد، که این عنصر نیز به نوبۀ خود نیازمند چهار عنصر فرعی دیگر است.
<title> : لیبل (label) دکمۀ ارسال کننده در ناحیۀ ورودی متن.
<description> : توصیف کنندۀ ناحیۀ ورودی متن.
<name> : نام شیئ متنی موجود در ناحیۀ ورودی متن.
<link> : آدرس CGI script ی که درخواست های ورودی متن را پردازش مینماید.
البته به این نکته توجه داشته باشید که استفاده از این عنصر چندان رایج نبوده و بسیاری از برنامههای جمع آوری کننده آن را نادیده میگیرند.
- آیتم (Item) یک کانال میتواند چندین آیتم <item> داشته باشد. یک آیتم میتواند نمایندۀ یک "داستان" باشد، درست همانند یک داستان در یک روزنامه یا مجله. اگر اینطور فرض کنیم، description (توضیحات) آن خلاصهای از داستان بوده و link (پیوند) به کل داستان اشاره خواهد نمود. یک آیتم میتواند به صورت داخلی کامل شود، اگر اینطور باشد، description حاوی متن بوده و link و title میتوانند در نظر گرفته نشوند. تمامی عناصر فرعی آیتم اختیاری هستند، اگرچه حداقل یکی از عناصر description و یا title باید ارائه گردند. در جدول زیر لیستس از عناصر فرعی item آورده شده است.
جدول 4- عناصر فرعی آیتم
مثال توضیحات عنصر Venice Film Festival Tries to Quit Sinking عنوان آیتم <title> http://nytimes.com/2004/12/07FEST.html (http://nytimes.com/2004/12/07FEST.html) آدرس آیتم <link> Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged. خلاصۀ آیتم <description> آدرس الکترونیکی مؤلف آیتم <author> آیتم را در یک یا چند دسته قرار میدهد <category> آدرس صفحهای که برای توضیحات آیتم در نظر گرفته شده است <comments> یک شیئ مدیا (media) که به آیتم جاری الصاق شده است را توضیح میدهد <enclosure> رشتهای که به صورت یکتا آیتم را معرفی میکند <guid> زمان انتشار آیتم را مشخص مینماید <pubDate>
نمایندۀ کانالیست که آیتم بدان تعلق دارد
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, eiffel, fortran, freebasic, gml, groovy, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80
هدف این عنصر توزیع اعتبار برای لینک ها، به منظور عمومی سازی منابع آیتم های خبریست. این عنصر میتواند در دستور post یک برنامۀ جمع آوری کننده (aggregator) مورد استفاده قرار گیرد. همچنین میتوان این عنصر را هنگامی که آیتمی از یک برنامۀ جمع آوری کننده به یک ابزار تألیف وبلاگ فوروارد (forward) میشود، به صورت خودکار تولید کرد.
• <enclosure> این عنصر حاوی سه ویژگی الزامی است. ویژگی آدرس (url) مشخص مینماید که پیوست (enclosure) در کجا قرار گرفته است. ویژگی length نمایندۀ اندازۀ پیوست بر حسب bit است و ویژگی type مشخص کنندۀ نوع آن است، مثلآ یک نوع استاندارد MIME. آدرس باید یک آدرس HTTP باشد.
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3 (http://www.scripting.com/mp3s/weatherReportSuite.mp3)" length="12216320" type="audio/mpeg" />
• <category> این عنصر دارای یک ویژگی اختیاری است. Domain رشته ایست که بیانگر یک روش علمی طبقه بندی است. مقدار این عنصر یک رشتۀ قطعه بندی شده به وسیلۀ slash (/) است، که بیانگر یک مکان سلسله مراتبی در روش طبقه بندی معین شده است. پردازنده ها (processors) میتوانند قراردادهایی برای تفسیر این طبقه بندی ها دایر نمایند. دو مثال در زیر آورده شده است:
<category>Grateful Dead</category>
<category domain="http://www.fool.com/cusips (http://www.fool.com/cusips)">MSFT</category>
شما میتوانید هر تعداد عنصر category که مورد نیاز شماست را برای domain های مختلف و یا برای حالتی که آیتمی دارای ارجاعات متعدد در بخش های مختلف یک domain است، به کار گیرید.
• <pubDate> مقدار این عنصر یک تاریخ (date) است، که بیانگر زمان انتشار آیتم است. اگر این تاریخ زمانی در آینده باشد، برنامههای جمع آوری کننده میتوانند تصمیم بگیرند این آیتم را تا رسیدن به تاریخ یاد شده نشان ندهند.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
• <guid> عنصر guid نمایندۀ "معرف یکتای سراسری" است. لین عنصر رسته ایست که به صورت یکتا آیتم را معرفی مینماید. در هنگام ارائۀ آیتم، یک برنامۀ جمع آوری کننده میتواند از این رشته برای پی بردن به جدید بودن آیتم استفاده نماید.
<guid>http://some.server.com/weblogItem3207 (http://some.server.com/weblogItem3207)</guid>
هیچ قانونی برای syntax یک guid وجود ندارد. برنامههای جمع آوری کننده باید آنها را به صورت رشته نمایش دهند. مسئولیت ساختن رشتهای که دارای خاصیت یکتایی باشد بر عهدۀ منبع feed است. اگر آیتم guid دارای ویژگی به نام “isPermalink” با یک مقدار true باشد، خوانندۀ آیتم میتواند فرض کند که آن یک permalink به آیتم است، که آدرسی است که میتواند در یک مرورگر وب نمایش داده شود و به تمامی آیتمی که توسط عنصر <item> توصیف شده است اشاره مینماید. به عنوان مثال:
<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2 (http://inessential.com/2002/09/01.php#a2) </guid>
ویژگی isPermalink اختیاریست و مقدار پیش فرض آن true است. اگر مقدار آن false باشد، میتوان فرض کرد که guid یک آدرس و یا پیوند به هر چیز خاص است.
• <comment> اگر این عنصر ارائه شود، آدرس صفحۀ توضیحات در مورد این آیتم است.
<comments>http://ekzemplo.com/entry/4403/comments (http://ekzemplo.com/entry/4403/comments)</comments>
• <author> این عنصر حاوی آدرس الکترونیکی مؤلف آیتم است. برای گروهبندی مجلات و روزنامه ها از طریق rss مؤلف که نویسندۀ مطلب است، کسی است که عنصر آیتم معرفی مینماید. برای وبلاگ های گروهی، مؤلف آیتم میتواند مدیر ویراستاری و یا مدیر سایت باشد. برای وبلاگی که توسط یک شخص منفرد تألیف شده است، منطقی به نظر میرسد که از عنصر <author> صرف نظر نمود.
<author>lawyer@boyer.net (Lawyer Boyer)</author>
تاریخچه RSS
قبل از RSS چندین فرمت مشابه، برای syndication وجود داشته، اما هیچکدام نتوانستند مورد علاقه کاربران قرار بگیرند و رایج شوند. برای مثال در سال 1997 ماکروسافت فرمتی را به نام Channel Definition Format برای خصوصیت Active Channel اینترنت اکسپلورر 4.0 ارائه داد که به تدریج در حال رایج شدن بود. دیو وینر (Dave Winer) نیز فرمت XML syndication ای را برای استفاده در وبلاگ خبری خود در سال 1977 طراحی کرد.
خلاصه سایت RDF (Resource Description Framework) اولین ورژن از RSS بود که در مارچ 1999 توسط دن لیبی (Dan Libby) در شرکت نت اسکپ (netscape) برای استفاده در پرتال my netscape ساخته شد. این ورژن بعد ها به RSS 0.9 معروف شد. در جولای 1999، لیبی در پاسخ به نظرات و پیشنهادات، یک نمونه اولیه (prototype) آزمایشی که RSS 0.91 نامیده میشد را فراهم کرد، که شکل و فرمت آن ساده تر و قسمت های مختلفی را که dave Winer طراحی کرده بود، در آن بهم پیوسته شده بود. با این پیشنهاد لیبی RSS 1.0 که "سند آینده" نامیده میشد شکل گرفت.
مدت زمان کمی بعد از آن، netscape علاقه خود را به RSS/XML از دست داد و توسعه این فرمت را رها کرد و فقط به استفاده زیاد از آن پرداخت. Working group و mailing list و مقدمه چینی کاربران گوناگون و نکات قابل توجه XML باعث ادامه توسعه RSS شد. در همین زمان Dave Winer به تنهایی یک ورژن اصلاح شده از RSS 0.91 مخصوص وب سایت userland را ارائه داد. که قبل از آن هم در محصولاتش از آن استفاده کرده بود. او مدعی شد که خصوصیات RSS 0.91 در مالکیت شرکت او یعنی userland Software میباشد.
گروه RSS-DEV در دسامبر 2000 بر پایه پیشنهاد و اصلاحات Tristan Louis، RSS 1.0 را تولید کرد. این ورژن مانند RSS 0.9 (نه مانند RSS 0.91 ) مبتنی بر خصوصیات RDF بود، اما پیمانهای تر، و با استفاده از واژههای استاندارد.
19 روز بعد، Dave Winner RSS 0.92 خودش را منتشر کرد. در آوریل 2001 او یک پیشنویس از RSS 0.93 را منتشر کرد که بسیار مشابه 0.92 بود. پیشنویس RSS 0.94 در ماه آگوست منتشر شد و یک صفت type به عنصر description اضافه شده بود.
در سپتامبر 2002، Dave Winner آخرین نگارش از RSS 0.92 را منتشر کرد که به RSS 2.0 معروف شد که اختصار Really Simple Syndication بود. در RSS 2.0 صفت type اضافه شده در RSS 0.94 حذف و اجازه اضافه کردن عناصر استفاده شده در XML به کاربران داده شده بود. چندین ورژن از RSS 2.0 انتشار پیدا کرد اما عدد ورژن آن تغییری نکرد.
در نوامبر 2002، New York Times به خوانندگانش قابلیت استفاده از RSS را در ارتباط با موضوعات مختلف ارائه داد.
در جولای 2003 Dave Winner و Userland Software مالکیت RSS 2.0 را به محل کار خود یعنی Harvard's Berkman Center for the Internet & Society ارجاع دادند. در جولای 2005، Sean B. Palmer، Christopher Schmidt و Cody Woodard یک پیشنویس مقدماتی از RSS 1.1 را ارائه دادند که در آن باگ های 1.0 حل شده بود.
در آوریل 2005 شرکت کامپیوتری Apple نرم افزار Safari 2.0 را با امکانات RSS Feed منتشر کرد. در دسامبر 2005، تیم IE ماکروسافت و تیم outlook در بلاگ های خود از فید آیکونی که اولین بار در firefox استفاده شده بود ( ) استفاده کردند.
سرانجام در فبریه 2006، Opera نیز آیکون نارنجی رنگ RSS را به Opera 9 اضافه کرد.
امیدوارم این مقاله مشکل تمام دوستانی که در مورد RSS سوال داشتن رو حل کنه
RSS چیست؟
مقدمه 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 و پیشنهاداتی در مورد آنها Recommendation Status Pros Owner Version Don't use Obsoleted by 1.0 Netscape 0.90 Use for basic syndication. Easy migration path to 2.0 if you need more flexibility Officially obsoleted by 2.0, but still quite popular Drop dead simple UserLand 0.91 Use 2.0 instead Obsoleted by 2.0 Allows richer metadata than 0.91 UserLand 0.92, 0.93, 0.94 Use for RDF-based applications or if you need advanced RDF-specific modules Stable core, active module development RDF-based, extensibility via modules, not controlled by a single vendor RSS-DEV Working Group 1.0 Use for general-purpose, metadata-rich syndication Stable core, active module development Extensibility via modules, easy migration path from 0.9x branch UserLand 2.0
بعد از عنصر <rss> یک عنصر یکتای <channel> قرار میگیرد که حاوی اطلاعاتی در مورد کانال (metadata) و محتویات آن است.
برای مشاهدۀ یک نمونه فایل rss روی این لینک کلیک کنید.
- عناصر فرعی الزامی <channel>
در اینجا لیستی از عناصر فرعی الزامی کانال آورده شده است.
جدول 2- عناصر الزامی کانال
مثال توضیحات عنصر GoUpstate.com News Headlines نام کانال. چگونگی مراجعۀ کاربران به سرویس شما. اگر شما یک وب سایت html در اختیار دارید که حاوی اطلاعات مشابه با فایل rss شماست، عنوان (title) کانال باید مشابه عنوان سایتتان باشد. <title> http://www.goupstate.com/ (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 (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>
- جزئیات برخی عناصر فرعی کانال <channel>
• <image> این عنصر یک عنصر فرعی کانال <channel> است که خود دارای سه عنصر فرعی الزامی و سه عنصر فرعی اختیاری میباشد.
o عناصر الزامی <url> : آدرس یک تصویر GIF، JPEG و یا PNG است که توسط کانال ارائه میگردد.
<title> : که توصیف کنندۀ تصویر است و هنگامی که کانال به صورت html رندر (render) میشود، در ویژگی ALT مربوط به تگ <img> از html مورد استفاده قرار میگیرد.
<link> : آدرس سایت است و هنگامی که کانال رندر میگردد، تصویر پیوندی به سایت میباشد. (توجه داشته باشید که در عمل، عناصر <title> و <link> مربوط به تصویر باید مقادیر یکسانی با عناصر <title> و <link> مربوط به کانال داشته باشند.)
o عناصر اختیاری این عناصر شامل <width> و <height> میباشند که طول و عرض تصویر را بر مبنای پیکسل مشخص مینمایند. عنصر <description> نیز شامل متنی است که در ویژگی title پیوند مربوط به تصویر وجود دارد و در هنگام نمایش به صورت html، در اطراف تصویر ظاهر میگردد. مقدار ماکزیمم برای <width> 144 و مقدار پیش فرض 88 است. مقدار ماکزیمم برای <height> 400 و مقدار پیش فرض 31 است.
• <cloud> این عنصر مشخص کنندۀ سرویس وبی است که، واسط rsscloud که میتواند در پروتکل های XML-PRC، HTTP-POST و SOAP1.1 پیاده سازی شود را پشتیبانی مینماید. هدف آن ثبت کردن فرآیندها، به وسیلۀ یک cloud به منظور آگاه سازی آنها از به هنگام سازی کانال میباشد که اینکار را توسط پیاده سازی پروتکل تصویب-انتشار (publish-subscribe) برای feed های rss انجام میدهد. مثال: <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
در این مثال، برای درخواست آگاهی از کانال، شما باید یک پیام XML-PRC را برای rps.sys.com بر روی پورت 80 و با مسیر /prc2 ارسال نمایید. روتینی که باید فراخوانی شود نیز mycloud.rssPleaseNotify میباشد.
• <ttl> این عنصر نمایندۀ زمان حیات کانال است. بدین معنا که، <ttl> مدت زمانی بر حسب دقیقه است که کانال میتواند قبل از بازنویسی شدن آن توسط منبع، قبضه گردد. این امکان منابع rss را قادر میسازد تا به وسیلۀ شبکههای اشتراک فایل مانند Gnutella مدیریت شوند.
• <inputText> یک کانال میتواند حاوی یک عنصر <inputText> باشد، که این عنصر نیز به نوبۀ خود نیازمند چهار عنصر فرعی دیگر است.
<title> : لیبل (label) دکمۀ ارسال کننده در ناحیۀ ورودی متن.
<description> : توصیف کنندۀ ناحیۀ ورودی متن.
<name> : نام شیئ متنی موجود در ناحیۀ ورودی متن.
<link> : آدرس CGI script ی که درخواست های ورودی متن را پردازش مینماید.
البته به این نکته توجه داشته باشید که استفاده از این عنصر چندان رایج نبوده و بسیاری از برنامههای جمع آوری کننده آن را نادیده میگیرند.
- آیتم (Item) یک کانال میتواند چندین آیتم <item> داشته باشد. یک آیتم میتواند نمایندۀ یک "داستان" باشد، درست همانند یک داستان در یک روزنامه یا مجله. اگر اینطور فرض کنیم، description (توضیحات) آن خلاصهای از داستان بوده و link (پیوند) به کل داستان اشاره خواهد نمود. یک آیتم میتواند به صورت داخلی کامل شود، اگر اینطور باشد، description حاوی متن بوده و link و title میتوانند در نظر گرفته نشوند. تمامی عناصر فرعی آیتم اختیاری هستند، اگرچه حداقل یکی از عناصر description و یا title باید ارائه گردند. در جدول زیر لیستس از عناصر فرعی item آورده شده است.
جدول 4- عناصر فرعی آیتم
مثال توضیحات عنصر Venice Film Festival Tries to Quit Sinking عنوان آیتم <title> http://nytimes.com/2004/12/07FEST.html (http://nytimes.com/2004/12/07FEST.html) آدرس آیتم <link> Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged. خلاصۀ آیتم <description> آدرس الکترونیکی مؤلف آیتم <author> آیتم را در یک یا چند دسته قرار میدهد <category> آدرس صفحهای که برای توضیحات آیتم در نظر گرفته شده است <comments> یک شیئ مدیا (media) که به آیتم جاری الصاق شده است را توضیح میدهد <enclosure> رشتهای که به صورت یکتا آیتم را معرفی میکند <guid> زمان انتشار آیتم را مشخص مینماید <pubDate>
نمایندۀ کانالیست که آیتم بدان تعلق دارد
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, eiffel, fortran, freebasic, gml, groovy, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80
هدف این عنصر توزیع اعتبار برای لینک ها، به منظور عمومی سازی منابع آیتم های خبریست. این عنصر میتواند در دستور post یک برنامۀ جمع آوری کننده (aggregator) مورد استفاده قرار گیرد. همچنین میتوان این عنصر را هنگامی که آیتمی از یک برنامۀ جمع آوری کننده به یک ابزار تألیف وبلاگ فوروارد (forward) میشود، به صورت خودکار تولید کرد.
• <enclosure> این عنصر حاوی سه ویژگی الزامی است. ویژگی آدرس (url) مشخص مینماید که پیوست (enclosure) در کجا قرار گرفته است. ویژگی length نمایندۀ اندازۀ پیوست بر حسب bit است و ویژگی type مشخص کنندۀ نوع آن است، مثلآ یک نوع استاندارد MIME. آدرس باید یک آدرس HTTP باشد.
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3 (http://www.scripting.com/mp3s/weatherReportSuite.mp3)" length="12216320" type="audio/mpeg" />
• <category> این عنصر دارای یک ویژگی اختیاری است. Domain رشته ایست که بیانگر یک روش علمی طبقه بندی است. مقدار این عنصر یک رشتۀ قطعه بندی شده به وسیلۀ slash (/) است، که بیانگر یک مکان سلسله مراتبی در روش طبقه بندی معین شده است. پردازنده ها (processors) میتوانند قراردادهایی برای تفسیر این طبقه بندی ها دایر نمایند. دو مثال در زیر آورده شده است:
<category>Grateful Dead</category>
<category domain="http://www.fool.com/cusips (http://www.fool.com/cusips)">MSFT</category>
شما میتوانید هر تعداد عنصر category که مورد نیاز شماست را برای domain های مختلف و یا برای حالتی که آیتمی دارای ارجاعات متعدد در بخش های مختلف یک domain است، به کار گیرید.
• <pubDate> مقدار این عنصر یک تاریخ (date) است، که بیانگر زمان انتشار آیتم است. اگر این تاریخ زمانی در آینده باشد، برنامههای جمع آوری کننده میتوانند تصمیم بگیرند این آیتم را تا رسیدن به تاریخ یاد شده نشان ندهند.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
• <guid> عنصر guid نمایندۀ "معرف یکتای سراسری" است. لین عنصر رسته ایست که به صورت یکتا آیتم را معرفی مینماید. در هنگام ارائۀ آیتم، یک برنامۀ جمع آوری کننده میتواند از این رشته برای پی بردن به جدید بودن آیتم استفاده نماید.
<guid>http://some.server.com/weblogItem3207 (http://some.server.com/weblogItem3207)</guid>
هیچ قانونی برای syntax یک guid وجود ندارد. برنامههای جمع آوری کننده باید آنها را به صورت رشته نمایش دهند. مسئولیت ساختن رشتهای که دارای خاصیت یکتایی باشد بر عهدۀ منبع feed است. اگر آیتم guid دارای ویژگی به نام “isPermalink” با یک مقدار true باشد، خوانندۀ آیتم میتواند فرض کند که آن یک permalink به آیتم است، که آدرسی است که میتواند در یک مرورگر وب نمایش داده شود و به تمامی آیتمی که توسط عنصر <item> توصیف شده است اشاره مینماید. به عنوان مثال:
<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2 (http://inessential.com/2002/09/01.php#a2) </guid>
ویژگی isPermalink اختیاریست و مقدار پیش فرض آن true است. اگر مقدار آن false باشد، میتوان فرض کرد که guid یک آدرس و یا پیوند به هر چیز خاص است.
• <comment> اگر این عنصر ارائه شود، آدرس صفحۀ توضیحات در مورد این آیتم است.
<comments>http://ekzemplo.com/entry/4403/comments (http://ekzemplo.com/entry/4403/comments)</comments>
• <author> این عنصر حاوی آدرس الکترونیکی مؤلف آیتم است. برای گروهبندی مجلات و روزنامه ها از طریق rss مؤلف که نویسندۀ مطلب است، کسی است که عنصر آیتم معرفی مینماید. برای وبلاگ های گروهی، مؤلف آیتم میتواند مدیر ویراستاری و یا مدیر سایت باشد. برای وبلاگی که توسط یک شخص منفرد تألیف شده است، منطقی به نظر میرسد که از عنصر <author> صرف نظر نمود.
<author>lawyer@boyer.net (Lawyer Boyer)</author>
تاریخچه RSS
قبل از RSS چندین فرمت مشابه، برای syndication وجود داشته، اما هیچکدام نتوانستند مورد علاقه کاربران قرار بگیرند و رایج شوند. برای مثال در سال 1997 ماکروسافت فرمتی را به نام Channel Definition Format برای خصوصیت Active Channel اینترنت اکسپلورر 4.0 ارائه داد که به تدریج در حال رایج شدن بود. دیو وینر (Dave Winer) نیز فرمت XML syndication ای را برای استفاده در وبلاگ خبری خود در سال 1977 طراحی کرد.
خلاصه سایت RDF (Resource Description Framework) اولین ورژن از RSS بود که در مارچ 1999 توسط دن لیبی (Dan Libby) در شرکت نت اسکپ (netscape) برای استفاده در پرتال my netscape ساخته شد. این ورژن بعد ها به RSS 0.9 معروف شد. در جولای 1999، لیبی در پاسخ به نظرات و پیشنهادات، یک نمونه اولیه (prototype) آزمایشی که RSS 0.91 نامیده میشد را فراهم کرد، که شکل و فرمت آن ساده تر و قسمت های مختلفی را که dave Winer طراحی کرده بود، در آن بهم پیوسته شده بود. با این پیشنهاد لیبی RSS 1.0 که "سند آینده" نامیده میشد شکل گرفت.
مدت زمان کمی بعد از آن، netscape علاقه خود را به RSS/XML از دست داد و توسعه این فرمت را رها کرد و فقط به استفاده زیاد از آن پرداخت. Working group و mailing list و مقدمه چینی کاربران گوناگون و نکات قابل توجه XML باعث ادامه توسعه RSS شد. در همین زمان Dave Winer به تنهایی یک ورژن اصلاح شده از RSS 0.91 مخصوص وب سایت userland را ارائه داد. که قبل از آن هم در محصولاتش از آن استفاده کرده بود. او مدعی شد که خصوصیات RSS 0.91 در مالکیت شرکت او یعنی userland Software میباشد.
گروه RSS-DEV در دسامبر 2000 بر پایه پیشنهاد و اصلاحات Tristan Louis، RSS 1.0 را تولید کرد. این ورژن مانند RSS 0.9 (نه مانند RSS 0.91 ) مبتنی بر خصوصیات RDF بود، اما پیمانهای تر، و با استفاده از واژههای استاندارد.
19 روز بعد، Dave Winner RSS 0.92 خودش را منتشر کرد. در آوریل 2001 او یک پیشنویس از RSS 0.93 را منتشر کرد که بسیار مشابه 0.92 بود. پیشنویس RSS 0.94 در ماه آگوست منتشر شد و یک صفت type به عنصر description اضافه شده بود.
در سپتامبر 2002، Dave Winner آخرین نگارش از RSS 0.92 را منتشر کرد که به RSS 2.0 معروف شد که اختصار Really Simple Syndication بود. در RSS 2.0 صفت type اضافه شده در RSS 0.94 حذف و اجازه اضافه کردن عناصر استفاده شده در XML به کاربران داده شده بود. چندین ورژن از RSS 2.0 انتشار پیدا کرد اما عدد ورژن آن تغییری نکرد.
در نوامبر 2002، New York Times به خوانندگانش قابلیت استفاده از RSS را در ارتباط با موضوعات مختلف ارائه داد.
در جولای 2003 Dave Winner و Userland Software مالکیت RSS 2.0 را به محل کار خود یعنی Harvard's Berkman Center for the Internet & Society ارجاع دادند. در جولای 2005، Sean B. Palmer، Christopher Schmidt و Cody Woodard یک پیشنویس مقدماتی از RSS 1.1 را ارائه دادند که در آن باگ های 1.0 حل شده بود.
در آوریل 2005 شرکت کامپیوتری Apple نرم افزار Safari 2.0 را با امکانات RSS Feed منتشر کرد. در دسامبر 2005، تیم IE ماکروسافت و تیم outlook در بلاگ های خود از فید آیکونی که اولین بار در firefox استفاده شده بود ( ) استفاده کردند.
سرانجام در فبریه 2006، Opera نیز آیکون نارنجی رنگ RSS را به Opera 9 اضافه کرد.