펀글...
목차
이 예제 파일들은 더 이상 존재 하지 않는 파일들과 서비스를 가르킬지도 모르니 주의해야 한다. 0.91버전의 예제는 0.91버전의 문서가 작성될때 만들어 졌다. 예제의 흔적을 유지하는 것은 좋은 생각이다.
이 문서는 RSS 0.91 (2000년 6월)의 기본적인 명세로 시작하여, RSS 0.92 (2000년 12월)와 RSS 0.94 (2002년 8월)에 서 소개된 새로운 특징들 포함한 모든 변화나 추가된 것들을 포함한다.
변경사항에 관한 것은 이곳 을 방문하면 된다.
첫번째로 우리는 문서에서 필수적으로 사용해야 되거나, 선택적으로 사용해야 되는 <channel>의 하위 요소와 <item>의 하위 요소에 대해 기술할 것이다. 마지막 섹션에서는 자주 묻는 질문과 앞으로 어떻게 발전할 것인지에 대한 로드맵 그리고 RSS를 확장시킬때 필요한 가이드라인에 대해 기술할 것이다.
<url>은 채널에 표시되는 GIF, JPEG, PNG 이미지의 URL이다.
<title> 채널이 HTML로 표시될때 HTML <img>태그의 ALT속성에서 사용되는 것으로 이미지를 설명한다.
<link>는 채널이 표시될때, 사이트에 링크된 이미지의 URL이다.(실제적으로 이미지의 <title>과 <link>는 채널의 <title>과 <link>와 같은 값을 가져야 한다. -- ?)
선택 요소에는 픽셀로 이미지의 넓이와 높이를 가르키는 <width>와 <height>가 있다.
<description>은 HTML이 표시될때, 이미지 폼(type=image)형태의 링크에 있는 TITLE 내용을 가지고 있다.
넓이의 최대값은 144이고, 기본값은 88이다.
높이의 최대값은 400이고, 기본값은 31이다.
이것은 HTTP-POST, XML-RPC, SOAP 1.1에서 실행될 수 있는 rssCloud 인터페이스를 지원하는 웹서비스를 지정한다.
이것의 목적은 cloud로 등록하는 프로세스들이 채널에 갱신 공지를 받을 수 있도록 하고, RSS 피드를 위한 가변은 발행-등록 프로토콜을 구현하는 것이다.
위의 예제에서 보여줄 채널에 요청 통지를 하기 위해서, 당신은 XML-RPC 메시지를 radio.xmlstoragesystem.com/RPC2에 80포토로 보내야 한다.
이 프로시저는 xmlStorageSystem.rssPleaseNotify를 호출 할 것이다.
이 요소에 대한 완전한 설명과 rssCloud인터페이스에 대한 정보는 이곳을 참조하기 바란다.
ttl은 수명주기를 나타낸다. 이것은 채널이 소스로부터 리프레싱 되기 전에 캐쉬될 수 있는 분을 나타낸다. 이것은 RSS 소스들이 Gnutella와 같은 파일 공유 네트워크에서 사용될 수 있도록 한다.
예: <ttl>60</ttl>
채널은 선택적으로 <textInput> 하위 요소를 포함할 수 있고, 이것은 4개의 필수 하위 요소를 가지고 있다.
<title> -- text input 영역의 submit 버튼의 이름.
<description> -- text input 영역의 설명.
<name> -- text input 영역에 text객체의 이름.
<link> -- text input에서 처리를 요청하는 CGI 스크립트의 URL.
<textInput>요소의 목적은 약간 모호하다. 당신은 검색엔진 박스를 지정하기 위해 사용할 수 있다. 또는 독자가 피드백하는 것을 허용하기 위해 사용할 수 도 있다. 대부분의 수집기(aggregators ?)는 이것을 무시한다.
이 값은 <title>로 부터 파생된, 아이템을 가져온 RSS 채널의 이름이다.
이것은 소스의 XMLization(이게 뭔지...?)에 링크되는, url이라는 하나의 필수 속성을 가지고 있다.
이 요소의 목적은 링크의 신뢰성을 전파(propogate -> propagate이지 않을까)하고, 뉴스 아이템의 소스를 발행하는 것이다. 이것은 원격의 사용자 수집기(aggregator?)에서 post 명령에 사용할 수 있다. 이것은 수집기에서 웹로그 저작 툴로 아이템을 전달할 때 자동으로 생성 되어야 한다.
이것은 3가지 선택 속성을 가지고 있다. url은 포함된 대상의 위치를 나타내며, length는 바이트로 크기를 표시하고, type은 표준 MIME 타입을 나타낸다.
url은 http url이어야 한다.
이 요소의 사용 예에 대해서는 이곳을 참조하기 바란다.
<category> is an optional sub-element of <item>.
이것은 카테고리 분류를 구분하는 문자열인 한개의 선택적 속성 domain을 가지고 있다.
이 요소의 값은 나타난 분류에서 계층적 위치를 알려주슨 문자열을 슬래쉬로 구분한다. 프로세서는 카테고리의 해석을 위한 규정을 제정할 수 있다. 아래에 두개의 예를 제공한다.
서로 다른 도메인에서 당신이 필요한 만큼의 카테고리 요소를 포함시킬 수 있고, 한 항목을 동일한 도메인의 다른 부분에서 상호 참조할 수 있다.
<pubDate> is an optional sub-element of <item>.
이 값은 아이템이 발행된 시기의 날짜이다. 미래 날짜인 경우 수집기(aggregators?>는 해당 날짜까지 아이템을 표시하지 않도록 설정할 수 있다.
guid는 globally unique identifier의 악자이다. 이 것은 아이템을 고유하게 식별하는 문자열이다. 현 시점에서 수집기(aggregator?)는 이 문자열을 사용하여 아이템이 새로운 것인지를 확인할 수 있다.
guid문법에는 규칙이 없다. 수집기(aggregator?)는 이것들을 문자로 보아야 한다. 피드의 소스에 따라 이 문자열의 고유성을 설정할 수 있다.
guid 요소에 true값인 "isPermaLink"라는 이름의 속성이 있을 경우, 리더는 아이템에 대한 permalink, 웹브라우저에서 열릴 수 있고 <item>요소에 의해 설명되는 전체 아이템을 가르키고 있다고 추정할 수 있다. 예를 들면:
isPermaLink는 선택사항이며, 기본값은 true이다. 이 값이 false이면, guid는 url, 특정한 어떤것에 대한 url이 아니라고 추정할 수 있다.
현재, 이것은 아이템의 설명 페이지의 url이다.
이것은 아이템 저자의 이메일 주소이다. RSS를 통해 배급되는 신문이나 잡지의 경우 저자는 <item>이 설명하는 기사를 작성한 사람이다. 팀블로그(collaborative weblogs)인 경우 아이템의 제작자는 웹마스터 또는 관리하는 편집자 이다. 한명에 의해 작성된 웹로그인 경우 <author>요소를 생략하는 것이 좋다.
RSS 2.0 이전에는 오직 http://, ftp://만 허용되었지만, 실질적으로 콘텐츠 개발자나 수집기(aggregator?)에 의해 다른 URI 스키마들이 지원되었다. 수집기(aggregator?)는 지원하는 URI 스키마를 제한 할 수 있다. 콘텐츠 개발자는 모든 수집기(aggregator?)가 모든 스키마를 지원한다고 가정해서는 안된다.
RSS 0.91에서는 여러 요소들이 500또는 1000문자열로 제한되었다. 0.91에서는 <channel>안의 <items>가 15개를 초과할 수 없다. RSS 0.92이상에서는 문자열 크기나 XML 레벨에 대한
제한이 없다. 프로세서는 자시의 제한을 설정할 수 있으며, 생성자(generators?)는 채널에 특정 갯수의 <item>을 나타낼 수 없도록 설정할 수 있다.
RSS 2.0에는 위에서 설명한 채널-레벨 카테고리를 사용하여, 채널을 카탈로그 시스템의 식별자로 연결하는 규정이 있다.(해석하고도 참...) 예를 들면, Syndic8 식별자에 채널을 연결 하려면, <channel>의 하위 요소로 domain에 "Syndic8"을 카테고리 요소에 포함하고, Syndic8 데이터베이스에 당신의 채널 식별자를 평가한다. 뉴스를 작성하기 위한 적당한 카테고리 요소는 <category domain="Syndic8">1765</category>이다.
<guid>에 관한여 빈번한 질문중 하나는 <link>와의 비교이다. 그것들은 같지 않죠? 예, 몇몇의 콘텐츠 시스템에서는 같지만, 다른 것들에서는 그렇지 않다. 일부 시스템에서 <link>는 웹로그 아이템에 대한 permalink이다. 그러나 다른 시스템에서 각각의 <item>은 보다 긴 기사의 줄거리이며, <link>는 기사를 가리키고, <guid>는 웹로그 항목에 대한 permalink이다. 모든 경우에서, 당신은 guid를 제공하고 가능하면 permalink를 만드는 것이 좋다. 이것은 수집기(aggregators?)가 편집 변경사항이 있어도 아이템을 반복하지 않게 한다.
당신이 RSS 2.0 포맷에 대해 질문이 있다면, Sjoerd에 의해 운영되는 RSS2-Support 메일리스트에 포스트 하면 된다. 이 곳은 질의응답 목록은 아니지만, RSS 2.0 포맷을 사용하거나 콘텐츠를 생성하는 사용자, 저자, 개발자들에게 도움을 줄 수 있는 리소스이다.
RSS는 199년에 만들어졌으며, 간단하고 이해하기 쉬운 포맷을 만든다는 매우 신중한 목표를 가지고 있다. 이 것이 인기있는 포맷이 되자, 개발자들은 W3C에서 지정된 네임스페이스에서 정의한 모듈을 사용하여 이를 확장하려고 했다.
RSS 2.0에는 단순한 규칙뿐만아니라 이러한 능력도 추가되었다. RSS 피드에 이 페이지에서 설명하지 않은 것들을 포함하려면, 네임스페이스에서 정의된 요소들이어야 한다.
이 문서에서 정의한 요소는 네임스페이스의 멤버는 아니기 때문에, RSS 2.0 버전은 이전 버전과 호환될 수 있다 -- RSS 2.0은 버전 0.91 또는 0.92 파일에서도 호환된다. RSS 2.0의 요소가 네임스페이스에 있는 경우 이 제한사항을 어기게 되며, 0.9X 버전의 파일들은 2.0 파일들과 호환되지 않는다.
이곳에 Mark Pilgrim에 의해 제작된 네임스페이스에안에 있는 요소들을 파일에 사용하는 예제가 있다.
RSS는완벽한 포맷은 아니지만, 매우 널리 사용되고 있으며 광범위하게 지원된다. 안정된 규격은 RSS가 오랫동안 필요로 한 것이다. 이러한 작업의 목적은 이 것이 변경되지 않도록 하고 개발 중인 시장에서 성장을 촉진시키며, 새로운 신디케이션의 혁신을 위한 경로를 명확하게 하기 위한 것이다. 따라서 모든 실질적인 목적을 위한 RSS 규격은 버전 2.0.1에서 동결되었다. 우리는 포맷에 새로운 요소를 추가하기 위해서가 아니라 명세를 명확하게 하기 위한 목적으로 버전 2.0.2, 2.0.3등이 가능할 수 있다. 네임스페이스를 사용하는 모듈에서, 그리고 완전하게 새로운 신디케이션 포맷을 위해서 새로운 이름의 작업이 추가로 필요할 수 있다.
목차
RSS는 무엇인가?
RSS는 웹콘텐츠 배포 포맷이다.
그것은 Really Simple syndication의 약자이다.
RSS는 XML에서 파생되었다. 모든 RSS파일은 World Wide Web콘소시엄(W3C) 웹사이트에서 발표한 XML 1.0 명세를 준수해야 한다.
RSS 문서의 최상위 요소는 <rss>이고, 필수 속성으로 RSS 문서가 따라야 할 버전을 알려주는 version 속성이 있다. 문서가 지금 이 명세를 따르게 되면, 그 RSS문서의 버전은 2.0이 될것이다.
<rss>요소의 하부에는 채널(메타데이터)과 내용에 관한 정보를 포함하는, <channel> 요소가 하나 있다.
예제 파일
여기에 RSS 0.91, 0.92 and 2.0 예제 파일이 있다.이 예제 파일들은 더 이상 존재 하지 않는 파일들과 서비스를 가르킬지도 모르니 주의해야 한다. 0.91버전의 예제는 0.91버전의 문서가 작성될때 만들어 졌다. 예제의 흔적을 유지하는 것은 좋은 생각이다.
이 문서에 관하여
이 문서는 2002년 가을 RSS 2.0.1 버전에 관한 것이다.이 문서는 RSS 0.91 (2000년 6월)의 기본적인 명세로 시작하여, RSS 0.92 (2000년 12월)와 RSS 0.94 (2002년 8월)에 서 소개된 새로운 특징들 포함한 모든 변화나 추가된 것들을 포함한다.
변경사항에 관한 것은 이곳 을 방문하면 된다.
첫번째로 우리는 문서에서 필수적으로 사용해야 되거나, 선택적으로 사용해야 되는 <channel>의 하위 요소와 <item>의 하위 요소에 대해 기술할 것이다. 마지막 섹션에서는 자주 묻는 질문과 앞으로 어떻게 발전할 것인지에 대한 로드맵 그리고 RSS를 확장시킬때 필요한 가이드라인에 대해 기술할 것이다.
필수 채널 요소
여기에 각각의 요소에 대한 간단한 설명, 예제, 활용될 수 있는 곳과 같은 것을 가리키는 좀더 상세하게 설명한 필수 채널 요소 목록이 있다.Element | Description | Example |
---|---|---|
title | 채널의 이름, 이것은 당신의 서비스가 사람들에게 어떻게 인용되는지에 관한 것이다. 만약 당신이 RSS파일 과 같은 정보를 제공하는 HTML웹사이트를 가지고 있다면, 당신의 채널 이름은 웹사이트의 이름과 같을 것이다. | GoUpstate.com News Headlines |
link | 채널에 대응하는 HTML 웹사이트의 URL. | http://www.goupstate.com/ |
description | 채널을 기술하는 어구 또는 문장. | The latest news from GoUpstate.com, a Spartanburg Herald-Journal Web site. |
선택 채널 요소
여기에 선택 채널 요소 목록이 있다.Element | Description | Example |
---|---|---|
language | language는 채널안에서 쓰여진다. language는 수집기(aggregators?)들이 이탈리아어로 된 사이트들을 그룹화 하는 것을 허용한다. 이 요소에 허용되는 값으 목록은 넷스케이프에서 제공된 것은 여기에서 확인할 수 있다. 또한 W3C에서정의된 값 들을 사용할지도 모른다.. | en-us |
copyright | 채널에 있는 콘텐츠에 대한 저작권을 표시한다. | Copyright 2002, Spartanburg Herald-Journal |
managingEditor | 편집된 콘텐츠(논설)에 대한 책임을 가지고 있는 사람에 대한 이메일 주소를 표시한다. | geo@herald.com (George Matesky) |
webMaster | 채널에 대한 기술적인 문제에 책임이 있는 사람을 위한 이메일 주소를 표시한다. | betty@herald.com (Betty Guernsey) |
pubDate | 채널에 있는 콘텐츠가 배포된 날짜를 표시한다. 예를 들면 뉴욕 타임즈는 24시간만다 한번씩 하루마다 간행된다. 그 때 채널의 배포날짜가 변경된다. RSS에 있는 모든 날짜, 시간은 2자리나 4자리로 표시될 수 있는 년도를 제외하고는 RFC 822 명세를 따른다. | Sat, 07 Sep 2002 0:00:01 GMT |
lastBuildDate | 채널의 콘텐츠가 변한 마지막 날짜를 표시한다. | Sat, 07 Sep 2002 9:42:31 GMT |
category | 채널이 속하는 하나이상의 분류(category)를 표시한다. <item>의 하위 요소인 category와 같은 규칙을 준수한다. 더욱 자세한 정보는 이곳에 있다. | <category>Newspapers</category> |
generator | 채널을 생성할때 사용한 프로그램을 표시한다. | MightyInHouse Content System v2.3 |
docs | RSS에서 사용된 포맷에 관한 문서를 가리키고 있는 URL을 표시한다. 이것은 아마도 이 페이지를 가리키는 것이다. 이것은 지금으로 부터 25년 후의 웹서버에 있는 RSS파일을 우연히 보게 될것을 불안해 하는 사람들을 위한 것이다. | http://backend.userland.com/rss |
cloud | cloud로 등록하는 프로세스들이 채널에 갱신 공지를 받을 수 있도록 하고, RSS 피드를 위한 가벼운 발행-등록 프로토콜을 구현해 주고 있다. 더 자세한 정보는 이곳을 참조하기 바란다. | <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/> |
ttl | ttl은 수명주기를 표시한다. 이것은 채널이 소스로부터 리프레싱 되기 전에 캐쉬될수 있는 분을 나타낸다. 더욱 자세한 정보은 이곳을 참조하기 바란다. |
<ttl>60</ttl> |
image | 채널에 표시될 수 있는 GIF, JPEG, PNG 이미지들을 지정한다. 더욱 자세한 정보는 이곳을 참조하기 바란다. | |
textInput | 채널에 표시될 수 있는 "text input box(form)를 지정한다. 더욱 자세한 정보는 이곳을 참조하기 바란다. | |
skipHours | 수집기(aggregators?)들이 콘텐츠 수집을 건너 뛸 수 있는 시간을 알려주는 힌트이다. 더욱 자세한 정보는 이곳을 참조하기 바란다. | |
skipDays | 수집기(aggregators?)들이 콘텐츠 수집을 건너뛸 수 있는 날짜를 알려주는 힌트이다. 더욱 자세한 정보는 이곳을 참조하기 바란다. |
<channel>의 하위 요소 <image>
<image>는 <channel>의 선택 하위 요소이고, 각각 세개의 필수와 선택 요소들을 가지고 있다.<url>은 채널에 표시되는 GIF, JPEG, PNG 이미지의 URL이다.
<title> 채널이 HTML로 표시될때 HTML <img>태그의 ALT속성에서 사용되는 것으로 이미지를 설명한다.
<link>는 채널이 표시될때, 사이트에 링크된 이미지의 URL이다.(실제적으로 이미지의 <title>과 <link>는 채널의 <title>과 <link>와 같은 값을 가져야 한다. -- ?)
선택 요소에는 픽셀로 이미지의 넓이와 높이를 가르키는 <width>와 <height>가 있다.
<description>은 HTML이 표시될때, 이미지 폼(type=image)형태의 링크에 있는 TITLE 내용을 가지고 있다.
넓이의 최대값은 144이고, 기본값은 88이다.
높이의 최대값은 400이고, 기본값은 31이다.
<channel>의 하위 요소 <cloud>
<cloud>는 <channel>의 선택 하위 요소이다.이것은 HTTP-POST, XML-RPC, SOAP 1.1에서 실행될 수 있는 rssCloud 인터페이스를 지원하는 웹서비스를 지정한다.
이것의 목적은 cloud로 등록하는 프로세스들이 채널에 갱신 공지를 받을 수 있도록 하고, RSS 피드를 위한 가변은 발행-등록 프로토콜을 구현하는 것이다.
<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc" />
위의 예제에서 보여줄 채널에 요청 통지를 하기 위해서, 당신은 XML-RPC 메시지를 radio.xmlstoragesystem.com/RPC2에 80포토로 보내야 한다.
이 프로시저는 xmlStorageSystem.rssPleaseNotify를 호출 할 것이다.
이 요소에 대한 완전한 설명과 rssCloud인터페이스에 대한 정보는 이곳을 참조하기 바란다.
<channel>의 하위 요소 <ttl>
<tt>은 <channel>의 하위 선택 요소이다.ttl은 수명주기를 나타낸다. 이것은 채널이 소스로부터 리프레싱 되기 전에 캐쉬될 수 있는 분을 나타낸다. 이것은 RSS 소스들이 Gnutella와 같은 파일 공유 네트워크에서 사용될 수 있도록 한다.
예: <ttl>60</ttl>
<channel>의 하위 요소 <textInput>
채널은 선택적으로 <textInput> 하위 요소를 포함할 수 있고, 이것은 4개의 필수 하위 요소를 가지고 있다.<title> -- text input 영역의 submit 버튼의 이름.
<description> -- text input 영역의 설명.
<name> -- text input 영역에 text객체의 이름.
<link> -- text input에서 처리를 요청하는 CGI 스크립트의 URL.
<textInput>요소의 목적은 약간 모호하다. 당신은 검색엔진 박스를 지정하기 위해 사용할 수 있다. 또는 독자가 피드백하는 것을 허용하기 위해 사용할 수 도 있다. 대부분의 수집기(aggregators ?)는 이것을 무시한다.
<item>의 요소
채널은 하나이상의 <item>을 가지고 있다. 아이템은 "이야기"로 표현 될 수 있다. -- 뉴스나 잡지의 이야기처럼; 이것은 이야기의 줄거리를 표시하고 이야기의 소스를 가리키느 링크가 있다. 아이템은 텍스트(entity-encoded HTML을 허용하는)를 포함하는 description을 가지고 있기 때문에 그 자체로 완전하며, link와 title을 생략할 수 있다. 아이템의 모든 요소들은 선택사항이지만 최소한 title이나 description 하나는 있어야 한다.Element | Description | Example |
---|---|---|
title | 아이템의 제목. | Venice Film Festival Tries to Quit Sinking |
link | 아이템의 URL. | http://www.nytimes.com/2002/09/07/movies/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 | 아이템이 속한 하나 또는 그이상의 카테고리 더욱 자세한 사항은 이곳을 참조. | Simpsons Characters |
comments | 아이템에 관한 도움말을 제공하는 페이지의 URL 더욱 자세한 사항은 이곳을 참조. | http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290 |
enclosure | 아이템에 첨부된 미디어 객체를 표시한다. 더욱 자세한 사항은 이곳을 참조. | <enclosure url="http://live.curry.com/mp3/celebritySCms.mp3" length="1069871" type="audio/mpeg"/> |
guid | 아이템의 유일한 아이디 더욱 자세한 사항은 이곳을 참조. | <guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid> |
pubDate | 아이템이 발행된 날짜를 지정한다. 더욱 자세한 사항은 이곳을 참조. | Sun, 19 May 2002 15:21:36 GMT |
source | 아이템을 가져온 RSS 채널 더욱 자세한 사항은 이곳을 참조. | <source url="http://www.quotationspage.com/data/qotd.rss">Quotes of the Day</source> |
<item>의 하위 요소 <source>
<source>은 <item>의 선택 하위 요소 이다.이 값은 <title>로 부터 파생된, 아이템을 가져온 RSS 채널의 이름이다.
이것은 소스의 XMLization(이게 뭔지...?)에 링크되는, url이라는 하나의 필수 속성을 가지고 있다.
<source url="http://static.userland.com/tomalak/links2.xml">Tomalak's Realm</source>
이 요소의 목적은 링크의 신뢰성을 전파(propogate -> propagate이지 않을까)하고, 뉴스 아이템의 소스를 발행하는 것이다. 이것은 원격의 사용자 수집기(aggregator?)에서 post 명령에 사용할 수 있다. 이것은 수집기에서 웹로그 저작 툴로 아이템을 전달할 때 자동으로 생성 되어야 한다.
<item>의 하위 요소 <enclosure>
<enclosure>는 <item>의 선택 하위 요소이다.이것은 3가지 선택 속성을 가지고 있다. url은 포함된 대상의 위치를 나타내며, length는 바이트로 크기를 표시하고, type은 표준 MIME 타입을 나타낸다.
url은 http url이어야 한다.
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />
이 요소의 사용 예에 대해서는 이곳을 참조하기 바란다.
<item>의 하위 요소 <category>
<category>는 <item>의 선택 하위 요소이다.<category> is an optional sub-element of <item>.
이것은 카테고리 분류를 구분하는 문자열인 한개의 선택적 속성 domain을 가지고 있다.
이 요소의 값은 나타난 분류에서 계층적 위치를 알려주슨 문자열을 슬래쉬로 구분한다. 프로세서는 카테고리의 해석을 위한 규정을 제정할 수 있다. 아래에 두개의 예를 제공한다.
<category>Grateful Dead</category>
<category domain="http://www.fool.com/cusips">MSFT</category>
서로 다른 도메인에서 당신이 필요한 만큼의 카테고리 요소를 포함시킬 수 있고, 한 항목을 동일한 도메인의 다른 부분에서 상호 참조할 수 있다.
<item>의 하위 요소 <pubDate>
<pubDate>는 <item>의 선택 하위 요소이다.<pubDate> is an optional sub-element of <item>.
이 값은 아이템이 발행된 시기의 날짜이다. 미래 날짜인 경우 수집기(aggregators?>는 해당 날짜까지 아이템을 표시하지 않도록 설정할 수 있다.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
<item>의 하위 요소 <guid>
<guid>는 <item>의 선택 하위 요소이다.guid는 globally unique identifier의 악자이다. 이 것은 아이템을 고유하게 식별하는 문자열이다. 현 시점에서 수집기(aggregator?)는 이 문자열을 사용하여 아이템이 새로운 것인지를 확인할 수 있다.
<guid>http://some.server.com/weblogItem3207</guid>
guid문법에는 규칙이 없다. 수집기(aggregator?)는 이것들을 문자로 보아야 한다. 피드의 소스에 따라 이 문자열의 고유성을 설정할 수 있다.
guid 요소에 true값인 "isPermaLink"라는 이름의 속성이 있을 경우, 리더는 아이템에 대한 permalink, 웹브라우저에서 열릴 수 있고 <item>요소에 의해 설명되는 전체 아이템을 가르키고 있다고 추정할 수 있다. 예를 들면:
<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>
isPermaLink는 선택사항이며, 기본값은 true이다. 이 값이 false이면, guid는 url, 특정한 어떤것에 대한 url이 아니라고 추정할 수 있다.
<item>의 하위 요소 <comments>
<comments>는 <item>의 선택 하위 요소이다.현재, 이것은 아이템의 설명 페이지의 url이다.
<comments>http://rateyourmusic.com/yaccs/commentsn/blogId=705245&itemId=271</comments>
<item>의 하위 요소 <author>
<author>는 <item>의 선택 하위 요소 이다.이것은 아이템 저자의 이메일 주소이다. RSS를 통해 배급되는 신문이나 잡지의 경우 저자는 <item>이 설명하는 기사를 작성한 사람이다. 팀블로그(collaborative weblogs)인 경우 아이템의 제작자는 웹마스터 또는 관리하는 편집자 이다. 한명에 의해 작성된 웹로그인 경우 <author>요소를 생략하는 것이 좋다.
<author>lawyer@boyer.net (Lawyer Boyer)</author>
추가 설명
RSS는 <link>와 <url>요소에 있는 첫번째 비공백 문자에 제한을 건다. 이러한 요소의 데이터는 http://, https://, news://, mailto:, ftp://와 같은 IANA-registered URI 스키마여야 한다.RSS 2.0 이전에는 오직 http://, ftp://만 허용되었지만, 실질적으로 콘텐츠 개발자나 수집기(aggregator?)에 의해 다른 URI 스키마들이 지원되었다. 수집기(aggregator?)는 지원하는 URI 스키마를 제한 할 수 있다. 콘텐츠 개발자는 모든 수집기(aggregator?)가 모든 스키마를 지원한다고 가정해서는 안된다.
RSS 0.91에서는 여러 요소들이 500또는 1000문자열로 제한되었다. 0.91에서는 <channel>안의 <items>가 15개를 초과할 수 없다. RSS 0.92이상에서는 문자열 크기나 XML 레벨에 대한
제한이 없다. 프로세서는 자시의 제한을 설정할 수 있으며, 생성자(generators?)는 채널에 특정 갯수의 <item>을 나타낼 수 없도록 설정할 수 있다.
RSS 2.0에는 위에서 설명한 채널-레벨 카테고리를 사용하여, 채널을 카탈로그 시스템의 식별자로 연결하는 규정이 있다.(해석하고도 참...) 예를 들면, Syndic8 식별자에 채널을 연결 하려면, <channel>의 하위 요소로 domain에 "Syndic8"을 카테고리 요소에 포함하고, Syndic8 데이터베이스에 당신의 채널 식별자를 평가한다. 뉴스를 작성하기 위한 적당한 카테고리 요소는 <category domain="Syndic8">1765</category>이다.
<guid>에 관한여 빈번한 질문중 하나는 <link>와의 비교이다. 그것들은 같지 않죠? 예, 몇몇의 콘텐츠 시스템에서는 같지만, 다른 것들에서는 그렇지 않다. 일부 시스템에서 <link>는 웹로그 아이템에 대한 permalink이다. 그러나 다른 시스템에서 각각의 <item>은 보다 긴 기사의 줄거리이며, <link>는 기사를 가리키고, <guid>는 웹로그 항목에 대한 permalink이다. 모든 경우에서, 당신은 guid를 제공하고 가능하면 permalink를 만드는 것이 좋다. 이것은 수집기(aggregators?)가 편집 변경사항이 있어도 아이템을 반복하지 않게 한다.
당신이 RSS 2.0 포맷에 대해 질문이 있다면, Sjoerd에 의해 운영되는 RSS2-Support 메일리스트에 포스트 하면 된다. 이 곳은 질의응답 목록은 아니지만, RSS 2.0 포맷을 사용하거나 콘텐츠를 생성하는 사용자, 저자, 개발자들에게 도움을 줄 수 있는 리소스이다.
RSS 확장
RSS는 199년에 만들어졌으며, 간단하고 이해하기 쉬운 포맷을 만든다는 매우 신중한 목표를 가지고 있다. 이 것이 인기있는 포맷이 되자, 개발자들은 W3C에서 지정된 네임스페이스에서 정의한 모듈을 사용하여 이를 확장하려고 했다.RSS 2.0에는 단순한 규칙뿐만아니라 이러한 능력도 추가되었다. RSS 피드에 이 페이지에서 설명하지 않은 것들을 포함하려면, 네임스페이스에서 정의된 요소들이어야 한다.
이 문서에서 정의한 요소는 네임스페이스의 멤버는 아니기 때문에, RSS 2.0 버전은 이전 버전과 호환될 수 있다 -- RSS 2.0은 버전 0.91 또는 0.92 파일에서도 호환된다. RSS 2.0의 요소가 네임스페이스에 있는 경우 이 제한사항을 어기게 되며, 0.9X 버전의 파일들은 2.0 파일들과 호환되지 않는다.
이곳에 Mark Pilgrim에 의해 제작된 네임스페이스에안에 있는 요소들을 파일에 사용하는 예제가 있다.
로드맵
RSS는완벽한 포맷은 아니지만, 매우 널리 사용되고 있으며 광범위하게 지원된다. 안정된 규격은 RSS가 오랫동안 필요로 한 것이다. 이러한 작업의 목적은 이 것이 변경되지 않도록 하고 개발 중인 시장에서 성장을 촉진시키며, 새로운 신디케이션의 혁신을 위한 경로를 명확하게 하기 위한 것이다. 따라서 모든 실질적인 목적을 위한 RSS 규격은 버전 2.0.1에서 동결되었다. 우리는 포맷에 새로운 요소를 추가하기 위해서가 아니라 명세를 명확하게 하기 위한 목적으로 버전 2.0.2, 2.0.3등이 가능할 수 있다. 네임스페이스를 사용하는 모듈에서, 그리고 완전하게 새로운 신디케이션 포맷을 위해서 새로운 이름의 작업이 추가로 필요할 수 있다.'IT-Consultant' 카테고리의 다른 글
Java 자바] switch문, case문, default문; 스위치 문 사용 예제 (0) | 2009.12.24 |
---|---|
HP 2100 프린터 드라이버 (0) | 2009.12.22 |
StartUML 사용자 설명서 (0) | 2009.12.15 |
Java 언어로 배우는 디자인 패턴 입문 (멀티 쓰레드 편) (0) | 2009.12.14 |
.cvsignore 사용방법 (0) | 2009.12.14 |