RSS 2.0 Specification
'rss' Element
<rss version="2.0"> </rss>
RSS 2.0을 준수하는 문서는 문서 요소로 'rss' 이름의 Element를 가져야 합니다. 'rss' Element는 attribute로 version을 반드시 가져야 하며 그 값은 항상 "2.0"입니다. 'rss' Element는 'channel' 이름의 Element를 자식으로 갖습니다.
1. 'channel' Element
<rss version="2.0"> <channel> </channel> </rss>
채널(channel)은 웹 사이트에 대응되는 개념입니다. 자식 Element로 3개의 필수 요소와 15개의 선택 요소를 갖습니다.
1.1 'title' Element (필수 요소)
<rss version="2.0"> <channel> <title>{channel_title}</title> </channel> </rss>
채널의 이름입니다. 웹 사이트의 이름과 같게 지정하면 됩니다.
1.2 'link' Element (필수 요소)
<rss version="2.0"> <channel> <link>{channel_link}</link> </channel> </rss>
이 RSS를 공급하는 웹 사이트의 주소입니다.
1.3 'description' Element (필수 요소)
<rss version="2.0"> <channel> <description>{channel_link}</description> </channel> </rss>
이 채널(웹 사이트)을 소개하거나 그 내용을 설명하는 홍보 문장입니다.
1.4 'language' Element
<rss version="2.0"> <channel> <language>{channel_language}</language> </channel> </rss>
이 채널의 주 언어를 지정합니다. ISO 639 표준에 따릅니다.
AA | 함어(Afar) | IK | 이누이트어(Inupiak) | SA | 산스크리트어(Sanskrit) |
AB | 압하지아어(Abkhazian) | ID | 인도네시아어(Indonesian) | SD | 신드어(Sindhi) |
AF | 아프리칸스(Afrikaans) | IS | 아이슬란드어(Icelandic) | SG | 상고어(Sangho) |
AM | 아마른냐(Amharic) | IT | 이탈리아어(Italian) | SH | 세르보크로아티아어(Ser-Croatian) |
AR | 아랍어(Arabic) | IU | 이누이트어(Inuktitut) | SI | 스리랑카어(Singhalese) |
AS | 아샘어(Assamese) | JA | 일본어(Japanese) | SK | 슬로바키아어(Slovak) |
AY | 아이마라어(Aymara) | JV | 자바어(Javanese) | SL | 슬로베니아어(Slovenian) |
AZ | 아제르바이잔어(Azerbaijani) | KA | 조지아어(Georgian) | SM | 사모아어(Samoan) |
BA | 바슈키르어(Bashkir) | KK | 카자흐어(Kazakh) | SN | 소나어(Shona) |
BE | 벨라루시어(Byelorussian) | KL | 그린란드어(Greenlandic) | SO | 소말리아어(Somali) |
BG | 불가리아어(Bulgarian) | KM | 캄보디아어(Cambodian) | SQ | 알바니아어(Albanian) |
BH | 비하리어(Bihari) | KN | 칸나다어(Kannada) | SR | 세르비아어(Serbian) |
BI | 비슬라마어(Bislama) | KO | 한국어(Korean) | SS | 시스와티어(Siswati) |
BN | 벵골어(Bengali) | KS | 카슈미르어(Kashmiri) | ST | 세소토어(Sesotho) |
BO | 티베트어(Tibetan) | KU | 쿠르드어(Kurdish) | SU | 순다어(Sundanese) |
BR | 브르타뉴어(Breton) | KY | 키르기즈어(Kirghiz) | SV | 스웨덴어(Swedish) |
CA | 카탈로니아어(Catalan) | LA | 라틴어(Latin) | SW | 스와힐리어(Swahili) |
CO | 코르시카어(Corsican) | LN | 링갈라어(Lingala) | TA | 타밀어(Tamil) |
CS | 체코어(Czech) | LO | 라오스어(Laothian) | TE | 텔루구어(Telugu) |
CY | 웨일즈어(Welsh) | LT | 리투아니아어(Lithuanian) | TG | 타지크어(Tajik) |
DA | 덴마크어(Danish) | LV | 라트비아어(Latvian) | TH | 태국어(Thai) |
DE | 독일어(German) | MG | 마다가스카르어(Malagasy) | TI | 티그리니아어(Tigrinya) |
DZ | 부탄어(Bhutani) | MI | 마오리어(Maori) | TK | 투르크멘어(Turkmen) |
EL | 그리스어(Greek) | MK | 마케도니아어(Macedonian) | TL | 타갈로그어(Tagalog) |
EN | 영어(English) | ML | 말라얄람어(Malayalam) | TN | 세츠와나어(Setswana) |
EO | 에스페란토(Esperanto) | MN | 몽골어(Mongolian) | TO | 통가어(Tonga) |
ES | 스페인어(Spanish) | MO | 몰도바어(Moldavian) | TR | 터키어(Turkish) |
ET | 에스토니아어(Estonian) | MR | 마라타어(Marathi) | TS | 총가어(Tsonga) |
EU | 바스크어(Basque) | MS | 말레이어(Malay) | TT | 타타르어(Tatar) |
FA | 페르시아어(Persian) | MT | 몰타어(Maltese) | TW | 트위어(Twi) |
FI | 핀란드어(Finnish) | MY | 버마어(Burmese) | UG | 위구르어(Uigur) |
FJ | 피지어(Fiji) | NA | 나우루어(Nauru) | UK | 우크라이나어(Ukrainian) |
FO | 페로어(Faroese) | NE | 네팔어(Nepali) | UR | 우르두어(Urdu) |
FR | 프랑스어(French) | NL | 네덜란드어(Dutch) | UZ | 우즈벡어(Uzbek) |
FY | 프리지아어(Frisian) | NO | 노르웨이어(Norwegian) | VI | 베트남어(Vietnamese) |
GA | 아일랜드어(Irish) | OC | 프로방스어(Occitan) | VO | 볼라퓌크(Volapuk) |
GD | 스코틀랜드 게일어 (Scots Gaelic) | OM | 오로모어(Afan) | WO | 월로프어(Wolof) |
GL | 갈리시아어(Galician) | OR | 오리야어(Oriya) | XH | 코사크어(Xhosa) |
GN | 과라니어(Guarani) | PA | 펀자브어(Punjabi) | YI | 이디시어(Yiddish) |
GU | 구자라트어(Gujarati) | PL | 폴란드어(Polish) | YO | 요루바어(Yoruba) |
HA | 하우사어(Hausa) | PS | 파슈토어(Pashto) | ZA | 좡어(Zhuang) |
HE | 히브리어(Hebrew) | PT | 포르투갈어(Portuguese) | ZH | 중국어(Chinese) |
HI | 힌디어(Hindi) | QU | 케추아어(Quechua) | ZU | 줄루어(Zulu) |
HR | 크로아티아어(Croatian) | RM | 레토로만어(Rhaeto-Romance) | ||
HU | 헝가리어(Hungarian) | RN | 쿠룬디어(Kurundi) | ||
HY | 아르메니아어(Armenian) | RO | 루마니아어(Romanian) | ||
IA | 국제어(Interlingua) | RU | 러시아어(Russian) | ||
IE | 인공어(Interlingue) | RW | 키냐르완다어(Kinyarwanda) |
1.5 'copyright' Element
<rss version="2.0"> <channel> <copyright>{channel_copyright}</copyright> </channel> </rss>
저작권 관련 문구를 넣습니다.
1.6 'managingEditor' Element
<rss version="2.0"> <channel> <managingEditor>{channel_managingEditor}</managingEditor> </channel> </rss>
게시글 편집자 이메일 주소를 적습니다.
1.7 'webMaster' Element
<rss version="2.0"> <channel> <webMaster>{channel_webMaster}</webMaster> </channel> </rss>
사이트 관리자 이메일 주소를 적습니다.
1.8 'pubDate' Element
<rss version="2.0"> <channel> <pubDate>{channel_pubDate}</pubDate> </channel> </rss>
이 RSS의 발행 날짜와 시각을 적습니다. RFC 822 형식에 맞춰서 적습니다.
RFC 822에 따른 날짜와 시각 표시
{day1}, {day2} {month} {year} {hour}:{minute}:{second} {zone}의 형식을 갖춘 텍스트입니다.
{day1} = 요일을 나타냅니다. "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" 중 하나입니다. 이 항목은 선택 사항이며 표시하고자 할 때 쉼표를 붙입니다. (예: "Fri, ")
{day2} = 일을 나타냅니다. "01", "02", ..., "31"까지의 2자리 수로 표시합니다.
{month} = 월을 나타냅니다. "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 중 하나입니다.
{year} = 연을 나타냅니다.
{hour}:{minute}:{second} = 시각을 나타냅니다. "00:00:00" 부터 "23:59:59" 사이여야 합니다.
{zone} = 앞의 시각 및 날짜가 어느 시간대를 기준으로 했는지를 나타냅니다. GMT 기준 시차로 표현할 수도 있고 문자열로도 표현할 수 있습니다.
- "UT"
천체의 운동으로 관측한 세계시입니다. - "UTC"
UT를 일정한 시기마다 보정하여 얻는 시각입니다. 1972년 1월 1일 자정을 기준으로 한 협정시입니다. - "GMT"
그리니치 시간입니다. - "EST", "EDT"
미국 동부 시각입니다. 각각 UT - 5, UT - 4의 시차가 있고 서머타임 적용 기간에는 EDT, 서머타임을 적용하지 않는 기간에는 EST를 사용합니다. - "CST", "CDT"
미국 중부 시각입니다. UT - 6, UT - 5의 시차가 있고 서머타임 적용 기간에는 CDT, 그 외에는 CST로 표시합니다. - "MST", "MDT"
미국 산악 표준시입니다. UT - 7, UT - 6의 시차가 있고 서머타임 적용 기간에는 MDT, 그 외에는 MST로 표시합니다. - "PST", "PDT"
미국 태평양 시각입니다. UT - 8, UT - 7의 시차가 있고 서머타임 적용 기간에는 PDT, 그 외에는 PST로 표시합니다. - NATO 음성 부호 (J: juliett은 사용하지 않음)
"A" (alpha): UT - 1. "B" (bravo): UT - 2. "C" (charlie): UT - 3. "D" (Delta): UT - 4. "E" (echo): UT - 5. "F" (foxtrot): UT - 6. "G" (golf): UT - 7. "H" (hotel): UT - 8. "I" (india): UT - 9. "K" (kilo): UT - 10. "L" (lima): UT - 11. "M" (mike): UT - 12. "N" (november): UT + 1. "O" (oscar): UT + 2. "P" (papa): UT + 3. "Q" (quebec): UT + 4. "R" (romeo): UT + 1. "S" (sierra): UT + 2. "T" (tango): UT + 3. "U" (uniform): UT + 4. "V" (victor): UT + 1. "W" (whiskey): UT + 2. "X" (x-ray): UT + 3. "Y" (yankee): UT + 4. "Z" (zulu): UT. - 시차 직접 지정
{"+" 또는 "-"}{시간2자리}{분2자리}로 표현합니다. UT보다 2시간 30분 이전 시간대라면 "-0230"으로 표현합니다.
예를 들어 한국 시간으로 1980년 12월 1일 오후 7시 30분 15초를 표현한다면
Mon, 01 Dec 80 19:30:15 +0900 또는 01 Dec 80 19:30:15 +0900 또는 Mon, 01 Dec 1980 19:30:15 +0900와 같이 적으면 됩니다.
1.9 'lastBuildDate' Element
<rss version="2.0"> <channel> <lastBuildDate>{channel_lastBuildDate}</lastBuildDate> </channel> </rss>
이 채널에서 게시물이 마지막으로 수정된 시각을 적습니다. 마찬가지로 RFC 822 규격에 따릅니다.
1.10 'category' Element
<rss version="2.0"> <channel> <category>{channel_category}</category> </channel> </rss>
이 채널의 주제 또는 분류를 적습니다. 게시물에 붙는 'category'에 대한 규칙과 같은 규칙이 적용되며 하나 이상의 'category' 태그를 가질 수 있습니다.
1.11 'generator' Element
<rss version="2.0"> <channel> <generator>{channel_generator}</generator> </channel> </rss>
이 RSS를 발행하기 위해 사용된 소프트웨어의 이름을 적습니다.
1.12 'docs' Element
<rss version="2.0"> <channel> <docs>{channel_docs}</docs> </channel> </rss>
이 RSS를 수신할 수 있는 주소를 적습니다.
1.13 'cloud' Element
<rss version="2.0"> <channel> <cloud domain="{channel_cloud_domain}" port="{channel_cloud_port}" path="{channel_cloud_port}" registerProcedure="{channel_cloud_registerProcedure}" protocol="{channel_cloud_prococol}" /> </channel> </rss>
실시간 통지와 의견 교환 등 RSS Cloud 관련 기능을 지정하는 노드입니다.
protocol은 통신 방식으로 xml-rpc, http-post, soap 1.1 등이 지정될 수 있습니다. 나머지 항목은 메시지를 전송할 경로 및 프로시저입니다.
예를 들어 xml-rpc를 사용하며 domain="rpc.sys.com" port="80" path="/rpc" registerProcedure="myCloud.rssPleaseNotify"로 지정되었다면, rpc.sys.com:80/rpc에서 myCloud.rssPleaseNotify 프로시저를 실행하여 피드를 전송한다는 뜻입니다.
1.14 'ttl' Element
<rss version="2.0"> <channel> <ttl>{channel_ttl}</ttl> </channel> </rss>
새로 수신할 때까지 캐싱할 수 있는 횟수를 제한합니다.
1.15 'image' Element
<rss version="2.0"> <channel> <image> </image> </channel> </rss>
이 채널을 대표하는 로고 등의 그림을 지정합니다. 3개의 필수 요소가 3개의 선택 요소를 자식 엘리먼트로 가질 수 있습니다.
1.15.1 'url' Element (image 태그의 필수 요소)
<rss version="2.0"> <channel> <image> <url>{channel_image_url}</url> </image> </channel> </rss>
그림 파일의 위치를 나타내는 URL입니다. HTML의 img 태그 중 src 속성과 같은 용도입니다.
1.15.2 'title' Element (image 태그의 필수 요소)
<rss version="2.0"> <channel> <image> <title>{channel_image_title}</title> </image> </channel> </rss>
그림 파일의 제목 또는 설명을 나타내는 텍스트입니다. HTML의 img 태그 중 alert 속성과 같은 용도입니다.
1.15.3 'link' Element (image 태그의 필수 요소)
<rss version="2.0"> <channel> <image> <link>{channel_image_link}</link> </image> </channel> </rss>
그림 파일을 클릭할 때 이동할 URL입니다.
1.15.4 'width' Element
<rss version="2.0"> <channel> <image> <width>{channel_image_width}</width> </image> </channel> </rss>
그림의 폭입니다. 기본값은 88, 최대 144 픽셀입니다.
1.15.5 'height' Element
<rss version="2.0"> <channel> <image> <height>{channel_image_height}</height> </image> </channel> </rss>
그림의 높이입니다. 기본값은 31, 최대 400 픽셀입니다.
1.16 'textInput' Element
<rss version="2.0"> <channel> <textInput> </textInput> </channel> </rss>
채널에 표시될 수 있는 텍스트 상자를 지정합니다. 주로 게시물 검색이나 피드백 관련 기능을 구현하기 위해 활용될 수 있습니다. 대부분의 RSS 수집기는 이 태그를 무시합니다. 4개의 엘리먼트를 필수 요소로 가집니다.
1.16.1 'description' Element (textInput의 필수 요소)
<rss version="2.0"> <channel> <textInput> <description>{channel_textInput_description}</description> </textInput> </channel> </rss>
이 텍스트 상자에 대한 설명입니다.
1.16.2 'name' Element (textInput의 필수 요소)
<rss version="2.0"> <channel> <textInput> <name>{channel_textInput_name}</name> </textInput> </channel> </rss>
이 텍스트 상자의 이름입니다. CGI로 쿼리를 전송할 때 이 텍스트 상자를 통해 보내는 정보의 변수명으로 쓰입니다.
1.16.3 'title' Element (textInput의 필수 요소)
<rss version="2.0"> <channel> <textInput> <title>{channel_textInput_title}</title> </textInput> </channel> </rss>
Submit 단추에 보여줄 '검색' 또는 '등록' 등의 단어입니다.
1.16.4 'link' Element (textInput의 필수 요소)
<rss version="2.0"> <channel> <textInput> <link>{channel_textInput_link}</link> </textInput> </channel> </rss>
Submit 단추를 눌렀을 때 쿼리를 받을 CGI의 URL을 지정합니다.
textInput의 예시:
<rss version="2.0"> <channel> <textInput> <description>Google Search</description> <title>Keyword = </title> <name>q</name> <link>http://www.google.com/search?</link> </textInput> </channel> </rss>
1.17 'skipHours' Element
<rss version="2.0"> <channel> <skipHours> </skipHours> </channel> </rss>
0시부터 23시의 범위를 가지며 RSS 수집기가 이 시간대에는 수신을 하지 않도록 지정합니다.
1.18 'skipDays' Element
<rss version="2.0"> <channel> <skipDays> </skipDays> </channel> </rss>
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday 및 Sunday 중 하나이며 RSS 수집기가 여기서 지정한 요일에는 수신을 하지 않도록 지정합니다.
1.19 'item' Element
<rss version="2.0"> <channel> <item> </item> </channel> </rss>
채널에 올라온 게시물을 나타냅니다. 3개의 필수 엘리먼트와 7개의 선택 요소를 갖습니다.
1.19.1 'title' Element (item의 필수 요소)
<rss version="2.0"> <channel> <item> <title>{channel_item_title}</title> </item> </channel> </rss>
게시물의 제목입니다.
1.19.2 'link' Element (item의 필수 요소)
<rss version="2.0"> <channel> <item> <link>{channel_item_link}</link> </item> </channel> </rss>
게시물의 URL입니다.
1.19.3 'description' Element (item의 필수 요소)
<rss version="2.0"> <channel> <item> <link>{channel_item_link}</link> </item> </channel> </rss>
게시물의 본문 또는 본문 중 일부입니다.
1.19.4 'author' Element
<rss version="2.0"> <channel> <item> <author>{channel_item_author}</author> </item> </channel> </rss>
게시물 작성자의 이메일 주소입니다.
1.19.5 'category' Element
<rss version="2.0"> <channel> <item> <category>{channel_item_category}</category> </item> </channel> </rss>
게시물이 속한 범주, 분류입니다.
1.19.6 'comments' Element
<rss version="2.0"> <channel> <item> <comments>{channel_item_comments}</comments> </item> </channel> </rss>
게시물에 대한 댓글을 읽을 수 있는 주소입니다.
1.19.7 'enclosure' Element
<rss version="2.0"> <channel> <item> <enclosure url="{channel_item_enclosure_url}" length="{channel_item_enclosure_length}" type="{channel_item_enclosure_type}" /> </item> </channel> </rss>
게시물에 첨부된 파일과 관련된 노드입니다. 첨부파일의 주소인 url, 파일의 크기를 바이트 단위로 나타낸 length, 파일의 MIME 형식을 나타내는 type 속성을 가집니다.
1.19.8 'guid' Element
<rss version="2.0"> <channel> <item> <guid>{channel_item_guid}</guid> <!-- 또는 --> <guid isPermaLink="{channel_item_guid_isPermaLink}">{channel_item_guid}</guid> </item> </channel> </rss>
이 게시물만을 프로그램적으로 식별할 수 있는 고유 문자열입니다. isPermaLink 속성이 true라면 이 게시물에 지정된 GUID가 웹 브라우저로 열어볼 수 있는 URL임을 지정합니다.
1.19.9 'pubDate' Element
<rss version="2.0"> <channel> <item> <pubDate>{channel_item_pubDate}</pubDate> </item> </channel> </rss>
이 게시물이 등록된 날짜입니다.
1.19.10 'source' Element
<rss version="2.0"> <channel> <item> <source url="{channel_item_source_url}">{channel_item_source}</source> </item> </channel> </rss>
이 게시물이 다른 RSS에서 온 것이라면 해당 RSS의 이름({channel_item_source})과 주소({channel_item_source_url})를 나타냅니다.
RSS 2.0으로 작성한 RSS 예제
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Liftoff News</title> <link>http://liftoff.msfc.nasa.gov/</link> <description>Liftoff to Space Exploration.</description> <textinput> <description>Search Google</description> <title>Search</title> <link>http://www.google.no/search?</link> <name>q</name> </textinput> <language>en-us</language> <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>Weblog Editor 2.0</generator> <managingEditor>editor@example.com</managingEditor> <webMaster>webmaster@example.com</webMaster> <item> <title>Star City</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link> <description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description> <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> </item> <item> <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description> <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> </item> <item> <title>The Engine That Does More</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description> <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> </item> <item> <title>Astronauts' Dirty Laundry</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link> <description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description> <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid> </item> </channel> </rss>
참고 사이트
- http://validator.w3.org/feed/docs/rss2.html#ltpubdategtSubelementOfLtitemgt
- http://cyber.law.harvard.edu/rss/rss.html
- http://en.wikipedia.org/wiki/NATO_phonetic_alphabet
- http://www.zeali.net/mirrors/w3cshool/rss/rss_tag_textinput.asp.html
- http://www.w3schools.com/rss/rss_tag_cloud.asp
- http://www.w3.org/Protocols/rfc822/#z28
'자료실' 카테고리의 다른 글
ATOM 1.0 XML 포맷에 대한 설명 (0) | 2014.12.31 |
---|---|
RSS 1.0 XML 포맷에 대한 설명 (0) | 2014.12.25 |
히브리어 문자의 자음과 모음의 종류 및 발음 해설 (0) | 2014.11.07 |
Fake IME 예제입니다. (0) | 2014.09.24 |
핸디소프트 아리랑 (0) | 2011.12.17 |