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

Cantos arredondados no Ruby on Rails - Um estudo de layouts

Cantos arredondados no Ruby on Rails - Um estudo de layouts

  • August 28, 2008

Estreiando esta nova sessão do meu blog, dedicada ao Ruby on Rails, decidi que ao invés de começa nos principios do RoR (o Nando Viera do Simples Ideias já fez isso bem o bastante) vou iniciar com umas das primeiras peças que criei que podem ser facilmente compartilhadas para que usem em seus sistemas.

Encontrei algumas soluções para cantos arredondados na web, mas eu queria utilizar a solução CurvyCorners que havia encontrado e achado interessante. Eu podia ter simplesmente adicionado o código todo de uma vez e ignorado qualquer coisa, mas decidi seguir a regra DRY (don’t repeat yourself) e comecei a procurar uma solucão para poder utilizar esse código diversas vezes.

A solução que encontrei é diretamente ligada as novas versões do Rails, a renderização de layouts (ou até a de partials tb deve funcionar). Com essa renderização eu poderia criar um bloco com o conteudo do que iria na div, e passar as variáveis que eu preciso. Aliado a isso usei tecnicas de “content_for” que me permitiram adicionar os parametros necessários no cabeçalho do site, sem ter de voltar lá, ou adicionar o código previamente.

Read More
Code Reviews - Not just a quality tool

Code Reviews - Not just a quality tool

  • May 17, 2016

I’m a big fan of Code Reviews, or Peer Reviews, within the work flow of a team.

Read More
php|tek09: Day #1

php|tek09: Day #1

  • May 20, 2009

Tutorial day at php|tek! The day begun with a PHP Breakfast, where I met guys like Matthew Weier O’Phinney and saw the guys from yesterday as well.

Read More