E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale XML

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  XML  /  Diverse (2)

Formatul RSS - Partea a II-a

10.03.2009
Formatul RSS - Partea a II-a

Partea a doua a acestui tutorial explica avantajele si dezavantajele diferitelor formate de RSS (1.0 si 2.0).

Total vizualizari: 4619 4619 afisari   |   Comentarii  1   |   Rating   |   (1 vot)   |   Timp necesar: 35 min 35 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  Mnot.net   
Autor:  Mark Nottingham
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1
comenteaza printeaza

Versiuni si module RSS

La momentul actual este folosit un numar mare de versiuni si module RSS, dintre care cele mai cunoscute sunt RSS 1.0 si RSS 2.0. Desigur, fiecare versiune are avantajele si dezavantajele ei. RSS 2.0 este cunoscut pentru simplitatea lui, in timp ce RSS 1.0 este mai usor de extins si are specificatii complete. Ambele sunt formate XML si au aceeasi structura de baza.

Ca alternativa, ai putea apela la Atom, care a fost creat de IETF in incercarea de a defini un standard bine document si pus la punct.

RSS 2.0

Pentru aceasta versiune, RSS s-ar putea traduce ca "Really Simple Syndication" (publicare foarte simpla), deoarece simplitatea este punctul sau forte.
Aceasta ramura a RSS este bazata pe RSS 0.91, care a fost pentru prima data documentat de Netscape si redefinit apoi de Userland.

In 2.0.1 - ultima versiune stabila - sunt canale de metadate precum link, title, description, image (care iti permite sa specifici o imagine thumbnail care sa fie afisata impreuna cu resursa). Alte campuri, cum ar fi webmaster si managingEditor, sunt utilizate pentru a identifica cine este responsabil pentru resursa, iar lastbuildDate arata cand a fost ultima oara actualizata resursa.

Elementele includ si alte facilitati aditionale, cum ar fi enclosure (anexa), care permite ca atasamentele sa fie downloadate automat. Totusi, nu te astepta ca aceste caracteristici sa fie suportate de toate aplicatiile. In plus, poti include campul guid, care identifica un element in mod unic, permitand o functionalitate avansata in unele aplicatii.

Iata un exemplu minimal de resursa RSS 2.0:

<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Exemplu</title>
    <link>http://example.com/</link>
    <description>Exemplu de canal</description>
    <item>
       <title>Stiri din 2 septembrie</title>
       <link>http://example.com/2002/09/01</link>
       <description>alte lucruri care s-au intamplat azi </description>
    </item>
    <item>
       <title>Stiri din 1 septembrie</title>
       <link>http://example.com/2002/09/02</link>
    </item>
  </channel>
</rss>

Ghidul pentru RSS 2.0 creat de UserLand sustine ca acest format este "inghetat", in sensul ca nu se mai fac adaugiri si modificari, exceptand anumite clarificari din documentatie.

Cu toate acestea, se pot adauga si extensii ca module separate, utilizand XML Namespaces pentru a evita conflictele cu numele deja existente. De exemplu, ai putea include un modul ISBN care urmateste o lista de carti:

<item xmlns:book="http://namespace.example.com/book/1.0"
 rdf:about="http://www.amazon.com/exec/obidos/tg/detail/-/0553575376">
  <title>Excession</title>
  <link>http://www.amazon.com/exec/obidos/tg/detail/-/0553575376</link>
  <book:isbn>0553575376</book:isbn>
</item>

Totusi, in general este recomandat sa cauti module RSS deja create, in loc sa definesti unele proprii. Desigur, acest lucru nu este valabil daca functionalitatea pe care o doresti tu nu a mai fost implementata.

RSS 1.0

RSS 1.0 poate fi definit ca "RSS Site Summary" (Rezumatul RSS al site-ului tau). Aceasta caracteristica a RSS incorporeaza RDF, un standard pentru metadate. Pentru ca RSS 1.0 foloseste RDF, orice procesor RDF poate intelege RSS fara a sti nimic despre structura acestuia.

RSS 1.0 utilizeaza XML Namespaces pentru a permite extensiile, intr-un mod similar cu RSS 2.0.

Resursele RSS 1.0 sunt asemanatoare cu cele ale versiunii RSS 2.0, avand cateva diferente minore.
Intreaga resursa este delimitata de tag-urile <rdf:RDF></rdf:RDF> (pentru ca procesorul sa stie ca este RDF).
Fiecare <item> are un atribut rdf: about, care de obicei, dar nu intotdeauna, este acelasi cu <link>; Astfel, fiecare element are un identificator.
Exista un tag <items> in canalul metadata care contine o lista de elemente, astfel incat procesorul RDF sa poata urmari relatia dintre ele.
Unele metadate folosesc atributul rdf: resource pentru a retine linkurile, in loc de a le pune in interiorul elementului.
Iata un exemplu de un feed RSS 1.0.

Modulul DublinCore

Cel mai bun exemplu de modul pentru versiunea RSS 1.0 este modulul DublinCore. Acesta este un set de metadate dezvoltat de un grup de informaticieni care standardizeaza un set de campuri, folositor pentru descrierea documentelor. Modulul DublinCore foloseste aceste metadate pentru a include informatia atat in cadrul resursei (in canalul de metadate) , cat si in cadrul fiecarui element in parte. Acest modul include elemente folositoare precum dc:date (date calendaristice), dc:subject (utilizat pentru a imparti elementele pe categorii), dc:rights (pentru a specifica drepturile de proprietate asociate fiecarui element sau resursa).
Iata un exemplu de resursa RSS 1.0 care foloseste modulul DublinCore:

<?xml version="1.0"?>
<rdf:RDF 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="http://example.com/news.rss">
    <title>Exemplu</title>
    <link>http://example.com/</link>
    <description>Exemplu de canal </description>
    <items>
      <rdf:Seq>
        <rdf:li resource="http://example.com/2002/09/01/"/>
        <rdf:li resource="http://example.com/2002/09/02/"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://example.com/2002/09/01/">
     <title>Stiri din 1 septembrie</title>
     <link>http://example.com/2002/09/01/</link>
     <description>alte lucruri care s-au intamplat astazi </description>
     <dc:date>2002-09-01</dc:date>
  </item>
  <item rdf:about="http://example.com/2002/09/02/">
     <title> Stiri din 2 septembrie</title>
     <link>http://example.com/2002/09/02/</link>
     <dc:date>2002-09-02</dc:date>
  </item>
</rdf:RDF>

Dupa cum poti observa, RSS 1.0 este mai complex decat versiunea 2.0, acest lucru datorandu-se in mare parte necesitatii de a fi compatibil cu alte versiuni RSS si de a contine tag-urile necesare procesoarelor RDF.

Atom

Ambele versiuni de RSS, 1.0 si 2.0, au specificatii informale: ele nu sunt publicate de o organizatie cunoscuta sau de un consortiu industrial, ci de un grup mic de oameni. Unii programatori sunt ingrijorati de acest aspect, deoarece unele specificatii pot fi schimbate dupa cum doresc acesti oameni. Pe de alta parte, o structura standardizata ofera stabilitate pentru ca limiteaza schimbarile si are proceduri clare pentru executarea acestora. Pentru a introduce o asemenea stabilitate in procesul de publicare al feed-urilor, s-au pus bazele unei organizatii denumita IETF, ce are ca scop definirea unui standard intitulat Atom. Acesta este un format XML asemanator cu cele doua versiuni de RSS prezentate anterior. Iata un exemplu de cod:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Exemplu de feed</title> 
  <link href="http://example.org/"/>
  <updated>2003-12-13T18:30:02Z</updated>
  <author> 
    <name>John Doe</name>
  </author> 
  <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
 
  <entry>
    <title>Atom-Powered Robots Run Amok</title>
    <link href="http://example.org/2003/12/13/atom03"/>
    <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
    <updated>2003-12-13T18:30:02Z</updated>
    <summary>Some text.</summary>
  </entry>
</feed>

Dupa cum poti vedea, Atom include un element feed care contine atat metadatele title, link, etc., cat si un element <entry>, analog <items> din RSS 1.0 si 2.0. In tag-ul <entry> se pot defini alte metadate, cum ar fi title, link, id (in loc de rdf:about din RSS 1.0 si guid din RSS 2.0) si summary (ce inlocuieste description).

Deoarece Atom este un standard destul de nou, el nu se bucura de aceeasi raspandire ca RSS 1.0 si 2.0. Cu toate acestea, este posibil ca dezvoltarea lui sa fie destul de rapida datorita nevoii de standardizare in publicarea resurselor.

Ce format ar trebui sa alegi?

Una dintre problemele publicarii este numarul mare de formate care sunt utilizate. Pe langa cele prezentate mai sus mai sunt foarte multe (0.9, 0.91, 0.92 ) care sunt des intalnite pe internet.

Cu toate aceste, decizia nu este atat de grea pe cat pare. Multe aplicatii folosesc librarii ce definesc majoritatea formatelor de publicare, astfel incat pot interpreta cea mai mare parte a resurselor.

In concluzie, alegerea formatului depinde de fiecare. Versiunea RSS 1.0 este extensibila si utila daca vrei sa o integrezi intr-un sistem de Web semantic, RSS 2.0 este foarte usor de utilizat, iar Atom este un standard care aduce stabilitate.

Trucuri pentru a crea resurse cat mai bune

RSS si Atom sunt usor de folosit, dar ca orice format nou, poti intalni ceva probleme in utilizarea lor. In aceasta sectiune poti citi despre cele mai intalnite dintre acestea:
- Utilizeaza intrari distincte: asigura-te ca aplicatiile pot separa intrarile, folosind identificatori unici precum rdf:about (RSS 1.0), guid (RSS 2.0) si id (Atom). Pe viitor, asta te va scuti de multe dureri de cap.
- Scrie metadate semnificative: informatiile continute in metadate au un scop bine definit. De exemplu, daca incluzi doar <title>, oamenii nu vor sti despre ce tip de continut este vorba. Din acelasi motiv, daca incluzi un intreg articol in <description>, acesta va aglomera resursa, care nu va mai prezenta interes pentru utilizatori. In general, trebuie sa incluzi in resursa atat cat sa ajute oamenii sa decida daca sa deschida sau nu linkurile respective.
- Codarea HTML: desi este tentant, incearca sa te abtii in a utiliza tag-uri HTML (precum a href="", <b> sau <p>) in resursa RSS, deoarece nu ai de unde sa stii cum va fi afisat continutul acesteia. Daca trebuie sa incluzi taguri in resursa (spre exemplu, titlul unei intrari este "Ode to <title>") asigura-te ca folosesti caracterele speciale < si > in loc de parantezele unghiulare.
- Entitati XML: aminteste-ti ca XML nu are elemente predefineste cum are HTML, si de aceea nu vei putea utiliza caractere speciale cum ar fi   sau ©, decat daca le definesti in XML. Ca alternativa, poti folosi un set de caractere extins care cuprinde toate simbolurile de care ai nevoie.
- Codificarea caracterelor: unele aplicatii genereaza resurse utilizand seturi de caractere Windows, prost etichetate. Cel mai bine este sa codifici resursa ca UTF-8 si sa o validezi cu un parser XML.
- Comunicarea cu utilizatorii: nu folosi intrari in resursa pentru a comunica cu utilizatorii. Spre exemplu, unele resurse includ in mod gresit termeni de copyright in campul <description>. Foloseste elementul sau modulul potrivit pentru acest lucru.
- Comunicarea intre calculatoare: foloseste codul HTTP potrivit daca resursa a fost relocata (de obicei 301 move permanently) sau daca nu mai este valabila (401 Gone sau 404 Not Found)
- Validarea: foloseste Feed Validator pentru a detecta orice problema din resursa; merge si pentru RSS si Atom. Trebuie sa o verifici de mai multe ori deoarece asa poti detecta si erorile care apar intamplator.

Aplicatii utile

Aceasta este o lista de instrumente necesare pentru crearea resurselor si verificarea lor. Trebuie sa observi ca sunt mai multe colectii care te ajuta sa analizezi resursele.
xpath2rss - instrumente pentru evaluarea site-urilor folosind expresii X-path.
Site Summaries in XHTML - serviciu online care utilizeaza hinturi din codul HTML pentru a alcatui un feed.
myRSS - un serviciu online de evaluare. Nu necesita niciun marcaj special.
RSS.py - libraria Pyhton pentru generarea si validarea RSS
Rome - libraria Java pentru generarea si validarea resurselor RSS si Atom si convertirea intre formate.
XML: RSS - modul Perl pentru generarea si validarea RSS
Online validator: validarea resursele RSS 1.0, 2.0 si Atom.

Pagina:
1
comenteaza printeaza
Alte tutoriale XML:
Noteaza acest tutorial
Rating tutorial
 
(1 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
victor , Miercuri, 19 Noiembrie 2014, ora 12:19
#1

Salut,
Momentan "aprofundez" XML si m-am confruntat cu o problema . Iata despre ce este vorba: am creat un RSS reader care incarca in pagina 10 tutoriale video de pe portalul Develop php. Un click pe oricare dintre titluri aduce in pagina tutorialul dorit. Eu as vrea sa fac mai simplu: sa pun linkurile intr-un dropdown list si apoi prin selectarea unei anumite adrese sa se emita continutul RSS aflat pe aceasta.
Am reusit sa aduc in lista linkurile, dar selectia nu ma duce mai departe...
Exista vreo solutie ? Multumesc mult !

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4180
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4085
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4060
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3875
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Photoshop RoR Illustrator Powerpoint HTML Verilog XHTML SWF Java Lightroom Outlook Bridge XML Action Script Javascript Python Flash MySQL Ruby on Rails JSON Vista Word AJAX Dreamweaver COREL DRAW Gimp Fotografie CSS SEO Sony Vegas Fireworks Swift 3D StyleSheet PSD Excel PHP
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software