Um estudo em RSS Parte 2: O Formato RSS

No meu último artigo eu apresentei para todos o que é RSS e como montar um XML padrão pelo PHP. Agora é hora de ligar o XML com o RSS e explicar o formato RSS como um todo: suas variações e evolução.

O formato RSS não foi o primeiro utilizado para resumos de sites, em 1997 o formato Channel Definition Format da Microsoft apareceu no mercado junto de outros formatos, porém não até o RSS um formato obteve a popularidade e uso pelo publico em geral. A primeira versão, conhecida como RDF Site Summary, foi criada por Dan Libby em 1999 para uso no portal da Netscape. Este formato ficou conhecido como RSS 0.9 e foi seguida pelo RSS 0.91, baseado em alterações sugeridas pelo público.

Neste momento, devido ao desinteresse da Netscape pelo formato, uma batalha pela sua “propriedade” começou, e ficou conhecida como RSS Fork. De forma resumida Dave Winer continuou a linha 0.91 e um grupo de trabalho evoluiu o RSS para a versão 1.0, publicada por Tristan Louis em 2000. Este formato era mais modular, porém ainda baseado no RDF.

Dabe Winer continuou insistindo na versão 0.91 e após alguns tropeços finalmente lançou o formato RSS 2.0 em 2002, forçando o uso da sigla Really Simple Syndication. Esse formato se viu livre do RDF e tornou a sintaxe muito mais simples que anteriormente. Outro formato, conhecido como Atom, também surgiu em 2003, tendo como diferencial o fato de uma grande empresa (IETF) estar por trás do padrão e procurando dar continuidade ao formato já que o RSS 2.0 estava congelado.

A disputa entre RSS 2.0 e Atom segue, e para este artigo vou seguir a implementação 2.0, como é o formato utilizado por mim nos feeds que implementei, do ComuniWEB e deste blog.

RSS 2.0

Veja a estrutura básica de um feed RSS 2.0 :

 < ?xml version="1.0"?> Liftoff News http://liftoff.msfc.nasa.gov/ Liftoff to Space Exploration.

Star City http://liftoff.msfc.nasa.gov/news/ 2003/news-starcity.asp 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 Star City. Space Exploration http://liftoff.msfc.nasa.gov/ Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31st. The Engine That Does More http://liftoff.msfc.nasa.gov/news/ 2003/news-VASIMR.asp 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.

Observem a estrutura, temos a declaração padrão de xml e o elemento raiz “rss”. Dentro deste RSS temos o elemento “channel” que simboliza o canal, digamos que seja algo como as editorias de um jornal “esporte, política, etc…”. Dentro dele temos os “itens”, ou matérias.

Elemento channel

 Liftoff News http://liftoff.msfc.nasa.gov/ Liftoff to Space Exploration. en-us Tue, 10 Jun 2003 04:00:00 GMT Tue, 10 Jun 2003 09:41:01 GMT http://blogs.law.harvard.edu/tech/rss Weblog Editor 2.0 [email protected] [email protected] 

O elemento canal possui informações obrigatórias (3) e opcionais (inúmeras), vou me restringir aos mais importantes:

Obrigatórios:

  • Title: Título do Canal, ex: ComuniWEB – Últimas
  • Link: URL para o site que contém o canal
  • Description: Uma breve descrição do conteúdo do canal

Opcionais: Language: Língua do canal “pt-br,em-us,…” Ttl: “time to live”, tempo máximo que o canal deve ser mantido em cache

Para conhecer os outros elementos acesse a especificação RSS 2.0

Elemento item

 The Engine That Does More http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp 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. Tue, 27 May 2003 08:37:32 GMT http://liftoff.msfc.nasa.gov/2003/05/27.html#item571 

Este é o elemento chave do RSS, ele representa cada pedaço de conteúdo que será disponibilizado, seja ele uma matéria, dados de um evento, recados, itens de agenda, enfim qualquer forma de conteúdo. Diferente do caso do canal o elemento item só tem uma “amarração” pelomenos um destes três elementos deve estar presente: title, link, description.

Neste caso o elemento “link” aponta para a matéria e não apenas para o site. Outros elementos compõem o resultado final:

  • author: Autor do item, créditos
  • category: identifica uma categoria e pode conter um atributo domain que aponta para o url daquela categoria
  • comments: URL que aponta para uma pagina re comentários sobre o item
  • enclousure: permite anexar uma mídia externa, imagem, mp3, vídeo, etc…
  • guid: identificador único deste item
  • pubDate: data de publicação do item, formato: Sun, 19 May 2002 15:21:36 GMT
  • source: link de volta para o RSS original

Portanto está é a estrutura de um arquivo RSS 2.0, ele se mostra maleável o bastante para ser usado com conteúdos de diferentes formatos e com isso se encaixar ao conteúdo que você deseja fornecer. Espero ter mais uma vez clareado as idéias sobre essa tecnologia, e no próximo post podemos entrar na criação de um RSS a partir de uma base de dados de matérias utilizando XML DOM como foi apresentado no primeiro post .

comments powered by Disqus

Related Posts

php|tek09 Day #4

php|tek09 Day #4

  • May 25, 2009

And so comes the final day of the 2009 php|tek conference.

Read More
Productive Slacking

Productive Slacking

  • October 18, 2019

Back in 2016 I joined Usabilla, just around the time we were evaluating our work chat solutions.

Read More
The DMSTwigExtensionBundle

The DMSTwigExtensionBundle

  • November 30, 2012

When I started using Symfony one of the aspects that really caught my eye was Twig, it really got me back into using a template engine and I don’t think i can ever go back to mixing my HTML and PHP again.

Read More