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و پیشنهاداتی در مورد آنها Pros Status Recommendation Don't use Use for basic syndication. Easy migration path to 2.0 if you need more flexibility Use 2.0 instead Use for RDFbased applications or if you need advanced RDFspecific modules Use for generalpurpose, metadata-rich
Obsoleted by 1.0 Officially obsoleted by 2.0, but still quite popular Obsoleted by 2.0 Stable core, active module development
Stable core, active module development
Drop dead simple
Allows richer metadata than 0.91 RDF-based, extensibility via modules, not controlled by a single vendor Extensibility via modules, easy migration
Owner Netscape UserLand
Version 0.90 0.91
UserLand
,0.93 ,0.92 0.94
RSS-DEV Working Group
1.0
UserLand
2.0
path from 0.9x branch
syndication
بعد از عنصر < >rssیک عنصر یکتای < >channelقرار می گیرد که حاوی اطلعاتی در مورد کانال ( )metadataو محتویات آن است.
برای مشاهدۀ یک نمونه فایل rssروی این لینک کلیک کنید. عناصر فرعی الزامی <>channelدر اینجا لیستی از عناصر فرعی الزامی کانال آورده شده است. جدول -2عناصر الزامی کانال
مثال GoUpstate.com News Headlines http://www.goupstate.c /om The latest news from GoUpstate.com, a Spartanburg Herald.Journal Web site
توضیحات نام کانال .چگونگی مراجعۀ کاربران به سرویس شما .اگر شما یک وب سایت htmlدر اختیار دارید که حاوی اطلعات مشابه با فایل rssشماست ،عنوان ( )titleکانال باید مشابه عنوان سایتتان باشد. آدرس ( )urlوب سایت htmlمرتبط با کانال. عبارت یا جمله ای که توضیحاتی در مورد کانال می دهد.
عنصر
<>title
<>link <>description
عناصر فرعی اختیاری <>channelدر اینجا لیستی از عناصر فرعی اختیاری کانال آورده شده است. جدول -3عناصر اختیاری کانال
مثال
en-us
Copyright 2002, Spartanburg Herald-
توضیحات زبانی که کانال به آن زبان نوشته شده است .این عنصر به برنامه های جمع آوری کننده ( )Aggregatorاین امکان را می دهد تا به عنوان مثال تمامی سایت های به زبان ایتالیایی را گروهبندی نمایند .لیست مقادیر مجاز تعریف شده برای این عنصر در دو لینک زیر موجود است: مقادیر تعریف شده از طرف Netscape مقادیر تعریف شده از طرف W3C تذکرات مربوط به حق کپی رایت برای محتویات موجود در کانال
عنصر <>language
<>copyright
مثال Journal
[email protected] ))George Matesky
[email protected] ))Betty Guernsey
Sat, 07 Sep 2002 00:00:01 GMT
Sat, 07 Sep 2002 09:42:31 GMT <category
>/category MightyInHouse Content System v2.3
http://blogs.law.harvard. edu/tech/rss
<cloud "domain="rpc.sys.com "port="80" path="/RPC2 registerProcedure="ping >/"ed" protocol="soap <>ttl<60>/ttl
توضیحات
عنصر
آدرس الکترونیکی فرد مسئول محتوای نوشتار آدرس الکترونیکی فرد مسئول موارد تکنیکی مربوط به کانال تاریخ انتشار محتوا در کانال .به عنوان مثال New York Timesکه به طور روزانه منتشر می گردد، تاریخ انتشار آن هر 24ساعت یکبار تغییر می یابد .تمامی تاریخ ها و زمان ها ( )date-timeدر RSSبا استاندارد RFC822مطابقت دارند. با این استثناء که سال ممکن است با دو یا چهار کاراکتر نمایش داده شود. آخرین تاریخی که محتوای کانال تغییر یافته است. مشخص کنندۀ دو یا چند دسته است که کانال به آنها تعلق دارد رشته ای ( )Stringکه معرفی کنندۀ برنامه ایست که کانال به وسیلۀ آن ایجاد شده است. آدرسی که به مستندات فرمت استفاده شده در فایل RSSاشاره می کند( .ممکن است این آدرس به صفحۀ جاری اشاره نماید). این امکان برای افرادیست که ممکن است به صورت اتفاقی با فایل RSS ی مربوط به مثل 25سال پیش بر روی یک وب سرور برخورد کنند و دچار سردرگمی گردند. به فرآیندها ( )Processesاین امکان را می دهد تا با پیاده سازی یک پروتکل تصویب-انتشار (publish- )subscribeبرای feedهای ،RSS از به هنگام سازی کانال مطلع گردند. مشخص کنندۀ مدت زمانی بر حسب دقیقه است که کانال می تواند قبل از بازخوانی ( )refreshشدن توسط منبع قبضه گردد. مشخص کنندۀ یک تصویر GIF، JPEG و یا PNGاست که می تواند توسط کانال نمایش داده شود. رده بندی PICSبرای کانال می باشد. مشخص کنندۀ یک textboxورودی (یک فیلد مقدار گیرنده) است که می تواند توسط کانال نمایش داده شود. تذکر به برنامه های جمع آوری کننده، که چه ساعاتی را می توانند از جمع
<>managingEditor <>webMaster <>pubDate
<>lastBuildDate <>category <>generator <>docs
<>cloud
<>ttl
<>image <>rating <>textInput <>skipHours
توضیحات
عنصر
مثال
آوری اطلعات صرف نظر کنند (در واقع زمان هایی که feedتغییر نمی یابد و اطلعات جدیدی تولید نمی شود را مشخص می نماید). مانند عنصر 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 انجام می دهد.
مثال: "
در این مثال ،برای درخواست آگاهی از کانال ،شما باید یک پیام 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 http://nytimes.com/2004/12/07FEST. html Some of the most heated chatter at
توضیحات
عنصر
عنوان آیتم
<>title
آدرس آیتم
<>link
خلصۀ آیتم
<>description
the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del .Cinema was being staged آدرس الکترونیکی مؤلف آیتم آیتم را در یک یا چند دسته قرار می دهد آدرس صفحه ای که برای توضیحات آیتم در نظر گرفته شده است یک شیئ مدیا ( )mediaکه به آیتم جاری الصاق شده است را توضیح میدهد رشته ای که به صورت یکتا آیتم را معرفی می کند زمان انتشار آیتم را مشخص می نماید نمایندۀ کانالیست که آیتم بدان تعلق دارد
<>author <>category <>comments <>enclosure <>guid <>pubDate <>source
جزئیات عناصر فرعی آیتم <>item•<>source
مقدار این عنصر نهم کانال rssای است که این آیتم بدان تعلق دارد و از عنصر titleکانال مشتق می گردد .این عنصر تنها یک ویژگی الزامی دارد ،آدرس ( ،)urlکه به صورت XMLشدۀ منبع ،لینک می شود.
><source url="http://www.tomalak.org/links2.xml">Tomalak's Realm
هدف این عنصر توزیع اعتبار برای لینک ها ،به منظور عمومی سازی منابع آیتم های خبریست .این عنصر می تواند در دستور postیک برنامۀ جمع آوری کننده ( )aggregatorمورد استفاده قرار گیرد .همچنین میتوان این عنصر را هنگامی که آیتمی از یک برنامۀ جمع آوری کننده به یک ابزار تألیف وبلگ فوروارد ( )forwardمی شود ،به صورت خودکار تولید کرد.
•<>enclosure
این عنصر حاوی سه ویژگی الزامی است .ویژگی آدرس ( )urlمشخص می نماید که پیوست ( )enclosureدر کجا قرار گرفته است .ویژگی lengthنمایندۀ اندازۀ پیوست بر حسب bitاست و ویژگی typeمشخص کنندۀ نوع آن است ،مثل یک نوع استاندارد .MIME آدرس باید یک آدرس HTTPباشد.
"<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3 >length="12216320" type="audio/mpeg" /
•<>category
این عنصر دارای یک ویژگی اختیاری است Domain .رشته ایست که بیانگر یک روش علمی طبقه بندی است .مقدار این عنصر یک رشتۀ قطعه بندی شده به
وسیلۀ )/( slashاست ،که بیانگر یک مکان سلسله مراتبی در روش طبقه بندی معین شده است. پردازنده ها ( )processorsمی توانند قراردادهایی برای تفسیر این طبقه بندی ها دایر نمایند .دو مثال در زیر آورده شده است: >Grateful DeadMSFT
شما می توانید هر تعداد عنصر categoryکه مورد نیاز شماست را برای domain های مختلف و یا برای حالتی که آیتمی دارای ارجاعات متعدد در بخش های مختلف یک domainاست ،به کار گیرید.
•<>pubDate
مقدار این عنصر یک تاریخ ( )dateاست ،که بیانگر زمان انتشار آیتم است .اگر این تاریخ زمانی در آینده باشد ،برنامه های جمع آوری کننده می توانند تصمیم بگیرند این آیتم را تا رسیدن به تاریخ یاد شده نشان ندهند. >Sun, 19 May 2002 15:21:36 GMT
•<>guid
عنصر guidنمایندۀ "معرف یکتای سراسری" است .لین عنصر رسته ایست که به صورت یکتا آیتم را معرفی می نماید .در هنگام ارائۀ آیتم ،یک برنامۀ جمع آوری کننده می تواند از این رشته برای پی بردن به جدید بودن آیتم استفاده نماید. >http://some.server.com/weblogItem3207
هیچ قانونی برای syntaxیک guidوجود ندارد .برنامه های جمع آوری کننده باید آنها را به صورت رشته نمایش دهند .مسئولیت ساختن رشته ای که دارای خاصیت یکتایی باشد بر عهدۀ منبع feedاست. اگر آیتم guidدارای ویژگی به نام “ ”isPermalinkبا یک مقدار trueباشد، خوانندۀ آیتم می تواند فرض کند که آن یک permalinkبه آیتم است ،که آدرسی است که می تواند در یک مرورگر وب نمایش داده شود و به تمامی آیتمی که توسط عنصر < >itemتوصیف شده است اشاره می نماید. به عنوان مثال: http://inessential.com/2002/09/01.php#a2 >
ویژگی isPermalinkاختیاریست و مقدار پیش فرض آن trueاست .اگر مقدار آن falseباشد ،می توان فرض کرد که guidیک آدرس و یا پیوند به هر چیز خاص است.
•<>comment
اگر این عنصر ارائه شود ،آدرس صفحۀ توضیحات در مورد این آیتم است. >http://ekzemplo.com/entry/4403/comments
•<>author
این عنصر حاوی آدرس الکترونیکی مؤلف آیتم است .برای گروهبندی مجلت و روزنامه ها از طریق rssمؤلف که نویسندۀ مطلب است ،کسی است که عنصر آیتم معرفی می نماید .برای وبلگ های گروهی ،مؤلف آیتم می تواند مدیر ویراستاری و یا مدیر سایت باشد. برای وبلگی که توسط یک شخص منفرد تألیف شده است ،منطقی به نظر می رسد که از عنصر < >authorصرف نظر نمود. >[email protected] (Lawyer Boyer)
منابعhttp://blogs.law.harvard.edu/tech/rss http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html?page=1 http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html?page=2