RSS 구독 목록을 위한 OPML의 사용

  • OPML이란 무엇인가?

OPML은 Outline Processor Markup Language의 약자로서 직역을 하면 ‘개요 처리기를 위한 언어’ 정도로 해석된다. OPML은 서로 다른 운영체제와 환경에서 실행되는 응용프로그램간에 구조화된 개요정보를 교환하기 위한 XML 기반 형식이다라고 Dave Winer는 기술하고 있다. OPML은 원래 Radio UserLand에 의해 Outliner 어플리케이션을 위한 네이티브 파일 형식으로 개발 되었지만 이후 여러가지 다른 용도로 채택 되었다. 가장 공통적으로는 Web Feed와 Web Feed Aggregator 사이의 목록 교환이다. OPML 명세는 outline을 임의적인 요소의 계층적이고 질서 정연한 목록이라고 정의한다. 이 명세는 많은 유형의 목록 데이터를 적합하게 만들기 위해 개방되어 있다.

  • OPML의 활용

OPML은 인터넷 문서 수집을 위한 한 형식으로 그 특성상 RSS와 많이 비슷하고 Blog를 Channel별로 관리 할 수 있기 때문에 현재는 RSS Feed 목록을 교환하기 위한 목적으로 많이 사용되고 있다. 예를 들어 현재 사용하는 RSS 구독 서비스를 다른 RSS 구독 서비스로 교체할 경우 현재 사용하고 있는 구독 서비스에서 Feed의 목록을 OPML 파일을 내보내고 새로 교체 할 서비스에서 내보낸 OPML 파일을 가져오면 손 쉽게 RSS Feed들을 재등록 할 수 있다.

RSS Feed 목록을 교환하기 위해 OPML을 사용한 예를 살펴보자. 아래의 예제는 국내 RSS 구독 프로그램 중 하나인 “연모”라는 구독기에서 OPML 내보내기를 했을때 생성되는 OPML 파일이다.

<?xml version=”1.0″ encoding=”euc-kr”?>

<opml xmlns:xsd=”http://www.w3.org/2001/XMLSchema&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”&gt;

<head>

<title>Generated by Yeonmo – http://www.yeonmo.co.kr</title&gt;

</head>

<body>

<outline title=”Friend”>

<outline type=”rss” title=”Hee’s Weblog” xmlUrl=”https://mhjung.wordpress.com/feed&#8221; htmlUrl=”https://mhjung.wordpress.com&#8221; description=””/>

<outline type=”rss” title=”blog*witch” xmlUrl=”http://softwitch.net/blog/feed&#8221; htmlUrl=”http://softwitch.net/blog&#8221; description=””/>

</outline>

<outline title=”News”>

<outline title=”문화/생활”>

<outline type=”rss” title=”Google 뉴스 한국 – 문화/생활” xmlUrl=”http://news.google.co.kr/?ned=kr&topic=l&output=rss&#8221; htmlUrl=”http://news.google.co.kr/?ned=kr&topic=l&#8221; description=””/>

</outline>

<outline type=”rss” title=”Google 뉴스 한국” xmlUrl=”http://news.google.co.kr/?ned=kr&output=rss&#8221; htmlUrl=”http://news.google.co.kr/?ned=kr&#8221; description=””/>

<outline type=”rss” title=”- Google 뉴스” xmlUrl=”http://news.google.co.kr/?ned=kr&topic=po&output=rss&#8221; htmlUrl=”http://news.google.co.kr/?ned=kr&topic=po&#8221; description=””/>

</outline>

</body>

</opml>

현재 제공중인 OPML 2.0 Draft Spec과 조금 다르기는 하지만 간단하게 OPML이 어떻게 구성되는지 살펴 볼 수 있다. 우선 현재의 2.0 Draft Spec을 기준으로 OPML을 구성하고 있는 Element들에 대해 하나씩 알아보자. OPML 파일은 XML 1.0 형식을 따른다. <opml> 요소는 필수 속성으로 version이라는 속성을 가진다. version의 값은 현재로서는 1.0 또는 2.0이 될 것이지만 만약 1.1이라는 값을 본다면 1.0과 똑같이 다루면 된다. 또한 <opml> 요소는 하위 요소로 반드시 <head>와 <body> 요소를 가져야 한다. <head> 요소는 0개 이상의 하위 요소를 선택적으로 포함 할 수 있는데 RSS를 교환하기 위한 목적으로 사용할 수 있는 요소로는 <title>, <dateCreated>, <dateModified>, <ownerName>, <ownerEmail>, <ownerId>가 있다. 각 요소의 이름만 봐도 사용법을 유추 할 수 있을 것이다. <ownerId>의 경우 OPML 파일을 생성한 소유주의 Email이나 웹 페이지의 주소와 같이 문서의 소유주와 의사 소통 하거나 확인 할 수 있는 유일한 값을 사용한다. <body> 요소는 하나 이상의 <outline> 요소를 포함한다. <outline> 요소는 RSS를 교환하기 위한 목적으로 사용 할 경우 필수적으로 type, text, xmlUrl 속성을 포함한다. type의 값은 rss가 되고 text는 RSS의 channel의 하위요소인 title 요소의 값으로 초기화 된다. 하지만 text 속성은 사용자가 편집할 수 있기 때문에 항상 RSS의 title 요소에 의존해서는 안된다. xmlUrl은 RSS Feed 주소를 값으로 가진다. <outline>는 그 이외에도 0개 이상의 선택적 요소를 포함 할 수 있는데 description, htmlUrl, language, title, version과 같은 속성들을 추가적으로 가질 수 있다. description은 RSS의 channel의 하위 요소인 description 요소의 값이고 htmlUrl은 channel의 하위 요소인 link의 값이 된다. language의 값은 channel의 하위 요소인 language의 값을 따른다. title은 아마 text와 같은 값을 가질 것이고 RSS Feed 교환을 목적으로 사용 할 경우 생략 할 수 없다. version의 경우 공급되는 RSS의 버전에 따라 달라지고 값으로는 RSS 1.0을 위한 RSS1과 RSS 0.91, 0.92 또는 2.0을 위한 RSS, scriptingNews 형식을 위한 scriptingNews가 될 것이다. Atom Feed를 위한 값은 정해져 있지 않지만 분명 추가 제공될 것이라고 한다.

OPML은 현재 2.0 Draft Spec까지 나와있다. 더 자세한 사항을 보고 싶은 사람들은 아래 참고 자료들을 참조하면 좋을 것이다.

  • 참고

한글 : OPML 2.0 Draft Specification (Korean)

영문 : OPML 2.0 Draft Specification (English)

Advertisements

태그: ,

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중


%d 블로거가 이것을 좋아합니다: