RSS는 버전도 다양하고 RSS를 지칭하는 말들도 다양하게 존재했다.
RSS 0.9는 RDF Site Summary의 약자로 Netscape에서 my.netscape.com 에서 사용하기 위해 디자인되었으며 기존의 scriptingNews format 을 지원하고 RDF를 통해 header를 구성하고 나머지는 xml 로 되어 있다. (1999년 3월)
RSS 0.91은 Rich Site Summary의 약자로 Netscape의 Dan Libby에 의해 스펙이 만들어졌으며 RDF header를 제외하고 scriptingNews 2.0b1 의 대다수 기능을 포함하고 있다. (1999년 7월)
RSS 1.0은 오라일리의 Rael Dornfest가 이끄는 RSS-DEV 에서 발표하였다. RDF와 namespace 기반으로 되어 있으며 앞선 버전들의 format을 모듈로 받아 들였다. (2000년 8월)
RSS 0.92는 0.91 버전에 선택 요소들을 포함하고 있다. (2000년 12월)
RSS 2.0은 Really Simple Syndication의 약자로 0.92버전에 선택 요소들을 포함하고 있으며 0.92버전과의 하위호환성을 위해 namespace 를 2.0 내의 요소들에게는 적용되지 않지만 RSS 2.0 feed 들에게 적용되게 하였다.
참고
- http://en.wikipedia.org/wiki/RSS
- http://cyber.law.harvard.edu/rss/rssVersionHistory.html
키보드를 잘못 건드려 모두 날라가는 불상사를 겪었다...
이런 젝일...
다소 잘못된 번역이 있을테니 지적해 주시기 바란다.
그럼 이중에서 RSS 2.0 규격에 대해 알아보자.
이 문서에서 다루는 내용은 Harvar의 Berkman Center에서 제공하는 RSS 2.0 Specification을 기준으로 한다.
선언
RSS는 xml 문서이므로 xml 문서선언이 이뤄져야 하고 <rss>를 root element로 갖는다.
<?xml version="1.0"?> <rss version="2.0">
본문 구조
본문은 다음 두개의 Section으로 이뤄져 있다.
<channel>
<item>
<channel> section은 현재 RSS를 제공하는 사이트(?)에 대한 정보를 담고 있으며
<item> 은 RSS로 제공되는 개별 내용이다.
마치 신문에서 <channel>은 신문사명, 제호 등 발간되는 신문에 대한 정보에 해당하고
<item>은 개별 기사에 해당한다.
<channel>은 optional 요소라고 하나 실질적으로 필수 요소의 역할을 한다.
개별 section의 하위 요소들에 대해 알아보자.
<channel> section
-
필수 하위 요소
Element 명 | 설명 | Example |
title |
현재 채널의 이름. Website에서 제공되는 정보는 동일 RSS에서 제공하는 정보와 동일해야 한다. Website의 사이트명과 동일해야 한다. |
yoonani's news |
link | 해당 Website 의 url | http://www.yoonani.pe.kr |
description | 채널에 대한 설명 | yoonani가 제공하는 정보입니다. |
선택 가능 하위 요소
Element 명 | 설명 | Example |
language |
W3C에서 정의한 채널에서 사용하는 언어 코드 |
en-us ko-kr |
copyright | 채널의 저작권 | http://creativecommons.org/licenses/by-nc-sa/2.0/ |
manageEditor | 채널 Editor의 email | yoonani@gmail.com |
webMaster | Webmaster email | yoonani@gmail.com |
pubDate | 정기적인 배포 날짜로 신문사의 경우 24시간 주기등을 사용한다.기본적으로 RFC 822에 의한 시간 포맷을 사용하나 년도에 대해서는 두자리, 네자리 모두 가능 | Sat, 07 Sep 2002 00:00:01 GMT+9 |
lastBuildDate | 채널의 내용이 마지막으로 바뀐 날짜 | |
category | 채널에서 제공하는 카테고리 정보로 <item>이 사용하는 방법과 동일하다. | <category>Info</category> |
generator | RSS를 제공하는 프로그램 명 | MightyInHouse Content System v2.3 |
docs | RSS file에서 사용하는 포맷에 대한 문서를 가리키는 URL | http://blogs.law.harvard.edu/tech/rss |
cloud | 채널에 대한 업데이트를 공지하는 cloud에 등록하는 과정을 허가한다. | <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/> |
ttl | 원본 내용을 다시 읽어오기 전 캐쉬되는 시간을 분으로 나타낸다. | <ttl>60</ttl> |
image | 채널에 표시될 GIF, JPEG, PNG 이미지를 지정한다. 예제의 하위 요소를 갖는다. |
<url> <title> <link> |
rating | 채널의 PICS 등급을 나타낸다. | |
textInput | 채널에 표시될 text 입력상자를 지정하는 것으로 예의 sub element를 통해 내용을 지정한다. | <title> <description> <name> <link> |
skipHours | RSS 정보를 읽어가는 측에 몇시간에 한번씩 정보를 확인하는지 알려준다. | |
skipDays | RSS 정보를 읽어가는 측에 며칠에 한번씩 정보를 확인하는지 알려준다. | |
<item> 요소
Element | 설명 | Example |
title | 해당 아이템의 제목 | Venice Film Festival Tries to Quit Sinking |
link | 해당 아이템의 URL | http://nytimes.com/2004/12/07FEST.html |
description | 아이템의 간략 내용 | 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. |
author | 저자의 이메일 | oprah@oxygen.net |
category | 해당 아이템의 카테고리 | |
comments | 해당 아이템의 댓글을 볼 수 있는 주소 | http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290 |
enclosure | 첨부한 미디어에 대한 설명 | |
guid | 아이템의 고유한 아이디 | http://inessential.com/2002/09/01.php#a2 |
pubDate | 해당 아이템의 작성 날짜 | Sun, 19 May 2002 15:21:36 GMT |
source | 아이템이 들어있는 RSS 채널 | |
간략히 RSS의 구조에 대해 알아보았으니...
다음엔 RSS Feeder를 만들고 이 Feeder로 부터 정보를 받아오는 Reader를 작성해 보자
댓글 없음:
댓글 쓰기