Detta dokument anger Atom, ett XML-baserat webbinnehåll och metadata syndikering format.  Atom är ett XML-baserat dokumentformat som beskriver förteckningar över relaterad information som kallas "feeds". Foder består av ett antal objekt, så kallade "enheter", var och en med en extensibel uppsättning bifogade metadata. Till exempel har varje post en titel. Det primära användningsfall som Atom adresser är syndikering av webbinnehåll såsom webbloggar och nyhetsrubriker till webbplatser samt direkt till användaragenter. Denna förordning träder i kraft den tjugonde dagen efter det att den har offentliggjorts i Europeiska unionens officiella tidning.] </i> </p> </div> </innehåll > </entry > </feed > XML-namnrymderna URI [W3C. REC-xml-names-19990114] för XML-dataformatet som beskrivs i denna specifikation är: För enkelhetens skull kan detta dataformat kallas "Atom 1.0". Denna specifikation använder "Atom" internt. Denna specifikation beskriver överensstämmelse i termer av två artefakter: Atom Feed Documents och Atom Entry Documents. Dessutom ställer den vissa krav på atomprocessorer. I denna specifikation används namnrymdsprefixet "atom" för den URI-namnrymd som anges i avsnitt 1.2 ovan. Observera att valet av prefix för namnrymden är godtyckligt och inte semantiskt signifikant. Atom anges med hjälp av termer från XML Infoset [W3C. REC-xml-infoset-20040204]. Denna specifikation använder dock en shorthand för två gemensamma termer: frasen "Informationsobjekt" utelämnas vid namn på elementinformationsobjekt och Attributinformationsobjekt. Därför, när denna specifikation använder termen "element", hänvisar den till en Element Information Item i Infoset termer. Likaså, när det använder termen "attribute", det hänvisar till en Attribut information objekt. Vissa delar av denna specifikation illustreras med fragment av en icke-normativ RELAX NG Kompakt schema [RELAX-NG]. Texten i denna specifikation innehåller dock en definition av överensstämmelse. Ett fullständigt schema finns i bilaga B. Nyckelorden "MUST", "MUST INTE", "KRÄVS", "SHALL", "FULLE INTE", "FULLE INTE", "REKOMMENDERADE", "MAJ" och "OPTIONAL" i detta dokument ska tolkas på det sätt som beskrivs i BCP 14, [RFC2119], i enlighet med dessa överensstämmelsemål.  Många av Atoms element delar några gemensamma strukturer. I detta avsnitt definieras dessa strukturer och deras krav på lämplig hänvisning genom lämpliga definitioner. När ett element identifieras som en särskild typ av konstruktion, ärver det motsvarande krav från den konstruktionens definition i detta avsnitt. Observera att det INTE FÅR finnas något blanktecken i en Date-konstruktion eller i någon IRI. Vissa XML-avgivande implementationer infogar felaktigt blanktecken runt värden som standard, och sådana implementationer avger ogiltiga Atom-dokument.  Textkonstrueringar Textkonstruktioner MAJ har ett "typ"-attribut. Vid närvarande, värdet MÅSTE vara en av "text", "html", eller "xhtml". Om attributet "typ" inte tillhandahålls, måste atomprocessorerna bete sig som om det fanns med ett värde av "text". Till skillnad från atomen:innehållselementet som definieras i avsnitt 4.1.3 får MIME-mediatyper [MIMEREG] INTE användas som värden för attributet "typ" på textkonstruktioner. Exempel: Atom:title with text content:... <title type="text"> Mindre: &lt; </title>... Om värdet är "text", får innehållet i textkonstruktionen INTE innehålla barnelement. Denna text är avsedd att presenteras för människor på ett läsbart sätt. Således, Atom Processorer MAJ kollapsa vitt utrymme (inklusive radbrytningar) och visa texten med typografiska tekniker såsom motivering och proportionella teckensnitt. ... <title type="html"> Mindre: &lt;em> &amp;lt; &lt;/em> </title>... Om värdet av "typ" är "html", får innehållet i textkonstruktionen INTE innehålla barnelement och HOULD vara lämplig för hantering som HTML [HTML]. Alla markeringar inuti MÅSTE undkommas, t.ex. " < br>" som "&lt; br>". HTML-markeringar inom SKULLE vara sådana att de kan visas direkt i elementet HTML < DIV> efter att de tagits bort. Atom Processorer som visar sådant innehåll MAJ använda denna markering för att hjälpa i sin display. Exempel: Textning med innehåll av XHTML:... <title type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <xhtml:div> Mindre: <xhtml:em> &lt; </xhtml:em> </xhtml:div> </title>... Om värdet av "typ" är "xhtml", måste innehållet i textkonstruktionen vara ett enda XHTML div-element [XHTML] och SKULLE vara lämpligt för hantering som XHTML. Själva XHTML div-elementet får INTE betraktas som en del av innehållet. Atom Processorer som visar innehållet MAJ använda markeringen för att hjälpa till att visa den. De förrymda versionerna av tecken som "&" och ">" representerar dessa tecken, inte markeringar. ... < total type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml"> Detta är <b>XHTML </b> innehåll. </div> </summary>... < summary type="xhtml"> <xhtml:div xmlns:xhtml="http://www.w3.org/1999/xhtml"> Detta är <xhtml:b>XHTML </xhtml:b> innehåll. </xhtml:div> </summary>... Följande exempel utgår från att XHTML-namnrymden har varit bunden till "xh"-prefixet tidigare i dokumentet: En persons konstruktion är ett element som beskriver en person, ett företag eller en liknande enhet (nedan kallad person). Denna specifikation ger ingen betydelse för hur barnelementen i en persons konstruktion ser ut. Personkonstruktioner möjliggör utökning av metadataelement (se avsnitt 6.4). Innehållet i elementet "atom:namn" förmedlar ett mänskligt läsbart namn för personen. Innehållet i atom:namn är språk Sensitive. Personkonstruktioner MÅSTE innehålla exakt ett element "atom:namn". Innehållet i elementet "atom:uri" förmedlar en IRI som är associerad med personen. Personkonstruktioner Kan innehålla en atom:uri element, men får inte innehålla mer än en. Innehållet i atom:uri i en personkonstruktion MÅSTE vara en IRI-referens [RFC3987]. Innehållet i elementet "atom: email" förmedlar en e-postadress som hör ihop med personen. Personkonstruktioner MAJ innehåller en atom: epost element, men får inte innehålla mer än en. Dess innehåll MÅSTE överensstämma med "addr-spec"-produktionen i [RFC2822]. En datumkonstruktion är ett element vars innehåll MÅSTE överensstämma med "datum-tid"-produktionen i [RFC3339]. Dessutom måste en stor bokstav "T" användas för att separera datum och tid, och en stor bokstav "Z" måste finnas i frånvaro av en numerisk tidszon offset. Denna specifikation ger ingen betydelse för atomordningen:ingångselement i fodret. Följande barnelement definieras i denna specifikation (observera att förekomsten av vissa av dessa element krävs): • atom:foderelement MÅSTE innehålla en eller flera atomer:upphovselement, om inte alla atomer:foderelementets barnatom:ingångselement innehåller minst en atom:upphovselement. • atom: foderelement FÅR innehålla ett antal atomer:kategorielement. • atom: matarelement FÅR innehålla ett antal atomer:bidragselement. • atom: matning element får inte innehålla mer än en atom: generator element. • atom: matarelement får INTE innehålla mer än ett atom:ikonelement. • atom: matning element får inte innehålla mer än en atom:logo element. • atom: matning element MÅSTE innehålla exakt en atom:id element. • atom: mata element SKULLE innehålla en atom: länk element med en rel attribut värde "själv". Detta är den föredragna URI för att hämta Atom Feed Dokument som representerar denna Atom feed. • atom: matarelement MÅSTE INTE innehålla mer än en atom:länkelement med ett rel-attributvärde för "alternate" som har samma kombination av attributvärden för typ och hreflang. • atom: matning element kan innehålla ytterligare atom: länkelement utöver de som beskrivs ovan. • atom: matarelement får INTE innehålla mer än en atom:rättighetselement. • atom: matning element får inte innehålla mer än en atom: subtitle element. • atom: mata element MÅSTE innehålla exakt en atom:title element. • atom: matarelement MÅSTE innehålla exakt en atom: uppdaterat element.  Erfarenheten lär att foder som innehåller textinnehåll i allmänhet är mer användbara än de som inte gör det. Vissa applikationer (ett exempel är fulltextindexare) kräver en minsta mängd text eller (X)HTML för att fungera tillförlitligt och förutsägbart. Foderproducenterna bör vara medvetna om dessa frågor. Det är tillrådligt att varje atom:entry element innehåller en icke-tom atom:title element, en icke-tom atom:innehåll element när det elementet är närvarande, och en non-tomy atom:summary element när posten innehåller ingen atom:content element. Men frånvaron av atom:summary är inte ett fel, och Atom Processors får inte misslyckas att fungera korrekt som en följd av en sådan frånvaro. 'Atom:Entry'-elementet representerar en enskild post som fungerar som en behållare för metadata och data som hör samman med posten. Detta element kan visas som ett barn till atomen:feed element, eller det kan visas som dokumentet (dvs. toppnivå) element i en fristående Atom Entry Document. Denna specifikation ger ingen betydelse för ordningen för utseendet av barnelementen i atomen:entry. Följande barnelement definieras i denna specifikation (observera att det kräver att det finns några av dessa element): • atom:entryelement MÅSTE innehålla en eller flera atomer:författaren element, om inte atomen:entry innehåller en atom:källa element som innehåller en atom:författare element eller, i en Atom Feed Dokument, atomen:feed elementet innehåller en atom:författare elementet i sig. • Atom:Ingångselement FÅR innehålla ett antal atomer:kategorielement. • atom:Inträdeselement MÅSTE INTE innehålla mer än en atom:innehållselement. • Atom:Ingångselement FÅR innehålla ett antal atomer:bidragselement. • atom: inträde element MÅSTE innehålla exakt en atom:id element. • atom: ingångselement som inte innehåller någon barnatom:innehållselement MÅSTE innehålla minst en atom:länkelement med ett rel-attributvärde av "förändrat". • Atom:Ingångselement MÅSTE INTE innehålla mer än en atom:länkelement med ett rel-attributvärde för "alternate" som har samma kombination av attributvärden för typ och hreflang. • atom: inträde element kan innehålla ytterligare atom: länkelement utöver de som beskrivs ovan. • atom: inträde element får inte innehålla mer än en atom:publicerat element. • atom: inträde element får inte innehålla mer än en atom: rättigheter element. • atom: inträde element får inte innehålla mer än en atom:källa element. • atom:ingångselement MÅSTE innehålla en atom:sammanfattningselement i något av följande fall: • atomen:inträdet innehåller en atom:innehåll som har ett "src"-attribut (och är således tomt). • Atomen:entry innehåller innehåll som kodas i Base64; dvs. attributet "typ" för atom:content är en MIME-mediatyp [MIMEREG], men är inte en XML-mediatyp [RFC3023], börjar inte med "text/", och slutar inte med "/xml" eller "+xml". • Atom:Inträdeselement MÅSTE INTE innehålla mer än en atom:sammanfattningselement. • atom: inträde element MÅSTE innehålla exakt en atom: titel element. • atom: inträde element MÅSTE innehålla exakt en atom: uppdaterade element. Elementet "atom:content" innehåller eller länkar till innehållet i posten. Innehållet i atom:innehåll är språk Sensitive.  På atomen:innehållselementet kan värdet av attributet "typ" vara ett av "text", "html" eller "xhtml". I annat fall måste den överensstämma med syntaxen för en MIME-mediatyp, men får inte vara en sammansatt typ (se avsnitt 4.2.6 i [MIMEREG]). Om varken attributet typ eller egenskapen src tillhandahålls, måste Atom Processors bete sig som om attributet typ var närvarande med ett värde av "text". atom:innehåll KAN ha ett "src"-attribut, vars värde MÅSTE vara en IRI-referens [RFC3987]. Om attributet "src" finns, måste atom:innehåll vara tomt. Atom Processorer kan använda IRI för att hämta innehållet och kan välja att ignorera fjärrinnehåll eller att presentera det på ett annat sätt än lokalt innehåll. Om attributet "src" finns ska attributet "typ" tillhandahållas och måste vara en MIME-mediatyp [MIMEREG], snarare än "text", "html" eller "xhtml". Värdet är rådgivande, det vill säga när motsvarande URI (mappad från en IRI, om nödvändigt) dereferenseras, om servern som tillhandahåller detta innehåll också tillhandahåller en medietyp, är den servertillhandahållna medietypen auktoritativ.  Atom Dokument MÅSTE följa följande regler. Atomprocessorer MÅSTE tolka atom:innehåll enligt den första tillämpliga regeln. 1. Vad är det för fel på dig? Om värdet av "typ" är "text", innehållet i atom:innehåll MÅSTE INTE innehålla barnelement. Denna text är avsedd att presenteras för människor på ett läsbart sätt. Således, Atom Processorer MAJ kollapsa vitt utrymme (inklusive radbrytningar), och visa texten med typografiska tekniker såsom motivering och proportionella teckensnitt. 2. Utgångspunkten är följande: Om värdet av "typ" är "html", innehållet i atom:innehåll MÅSTE INTE innehålla barnelement och SKULLE vara lämplig för hantering som HTML [HTML]. HTML-markeringen MÅSTE undkommas, till exempel " < br>" som "&lt; br>". HTML-markeringen SKULLE vara sådan att den på ett giltigt sätt skulle kunna visas direkt i elementet HTML < DIV>. Atom Processorer som visar innehållet MAJ använda markeringen för att hjälpa till att visa den. 3. Vad är det som händer? Om värdet av "typ" är "xhtml", måste innehållet i atomen:innehåll vara ett enda XHTML div-element [XHTML] och SKULLE vara lämpligt för hantering som XHTML. Själva XHTML div-elementet får INTE betraktas som en del av innehållet. Atom Processorer som visar innehållet MAJ använda markeringen för att hjälpa till att visa den. De förrymda versionerna av tecken som "&" och ">" representerar dessa tecken, inte markeringar. 4. Vad är det som händer? Om värdet av "typ" är en XML-mediatyp [RFC3023] eller slutar med "+xml" eller "/xml" (fallokänslig), kan innehållet i atom:innehåll MAJ inkludera barnelement och SKULLE vara lämpligt för hantering som den angivna medietypen. Om attributet "src" inte anges, skulle detta normalt innebära att elementet "atom:content" skulle innehålla ett enda barnelement som skulle fungera som rotelementet i XML-dokumentet av den angivna typen. Denna förordning träder i kraft den tjugonde dagen efter det att den har offentliggjorts i Europeiska unionens officiella tidning. Om värdet av "typ" börjar med "text/" (fall okänslig), innehållet i atom:innehåll MÅSTE INTE innehålla barnelement. 6. Vad är det som händer? För alla andra värden av "typ", innehållet i atom:innehåll MÅSTE vara en giltig Base64-kodning, som beskrivs i [RFC3548], avsnitt 3. När den avkodas bör den vara lämplig för hantering som den angivna medietypen. I detta fall kan tecknen i kodningen Base64 föregås och följas i atomen:innehållselementet med blanktecken, och raderna separeras med ett enda nyradstecken (U+000A). XHTML inline:... <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml"> Detta är <b>XHTML </b> innehåll. </div> </content>... <content type="xhtml"> <xhtml:div xmlns:xhtml="http://www.w3.org/1999/xhtml"> Detta är <xhtml:b>XHTML </xhtml:b> innehåll. </xhtml:div> </innehåll >... Följande exempel utgår från att XHTML-namnrymden har varit bunden till "xh"-prefixet tidigare i dokumentet: Metadataelement Elementet "atom:författare" är en personkonstruktion som anger upphovsmannen till posten eller flödet. atomFörfattare = elementatom:författare { atomPersonConstruct } Om en atom:entryelement inte innehåller atom:författare element, då atom:författare element i den inneslutna atom:källa element anses gälla. I ett Atomflödesdokument anses atomen:författaren till elementen i den innehållande atomen:feed element gälla för posten om det inte finns någon atom:författare element på de platser som beskrivs ovan. Delen "atom:kategori" förmedlar information om en kategori som hör samman med en post eller ett foder. Den här specifikationen tilldelar inte innehållet (i förekommande fall) i detta element någon betydelse.  Attributet "term" är en sträng som identifierar den kategori som posten eller fodret tillhör. Kategorielement MÅSTE ha ett "term"-attribut. Attributet "system" är en IRI som identifierar ett kategoriseringssystem. Kategorielement kan ha attributet'system'. "Label"-attributet ger en läsbar märkning för visning i slutanvändarens applikationer. Innehållet i attributet "märkning" är språkkänsligt. Enheter som "&amp;" och "&lt;" representerar motsvarande tecken ("&" respektive "<"), inte markeringar. Kategorielement kan ha ett attribut för "märkning". Innehållet i detta element, när det är närvarande, MÅSTE vara en sträng som är ett mänskligt läsbart namn för generatorn. Enheter som "&amp;" och "&lt;" representerar motsvarande tecken ("&" respektive "<") och inte markeringar. Atom:generatorelementet MAJ har ett "uri" attribut vars värde MÅSTE vara en IRI-referens [RFC3987]. Vid avhänvisning bör den resulterande URI (mappad från en IRI, om nödvändigt) SHOULD producera en representation som är relevant för den agenten. Atom:generatorelementet MAJ har en "version" egenskap som anger versionen av generatorn. Innehållet i elementet "atom:icon" är en IRI-referens [RFC3987] som identifierar en bild som ger ikonisk visuell identifiering för ett flöde. atomIcon = element atom:icon { atomCommonAttributes, (atomUri) } Bilden SKULLE ha en proportion av en (horisontell) till en (vertikal) och SKULLE vara lämplig för presentation i en liten storlek. Elementet "atom:id" förmedlar en permanent, universellt unik identitetsbeteckning för en post eller ett foder. atomId = element atom:id { atomCommonAttributes, (atomUri)} Dess innehåll MÅSTE vara en IRI, enligt definitionen i [RFC3987]. Observera att definitionen av "IRI" utesluter relativa hänvisningar. Även om IRI kan använda ett deferencable schema, Atom Processors får inte anta att det kan dereferenseras. När ett Atom-dokument flyttas, migreras, syndikeras, publiceras, exporteras eller importeras får innehållet i dess atom:id-element INTE ändras. Med andra ord, en atom:id element avser alla instantieringar av en viss Atom ingång eller feed; revideringar behåller samma innehåll i sin atom:id element. Det föreslås att atomen:id-elementet lagras tillsammans med den tillhörande resursen. Innehållet i en atom:id elementet MÅSTE skapas på ett sätt som garanterar unikhet. På grund av risken för förväxling mellan IRI som skulle vara likvärdig om de kartlades till URIs och dereferensed, följande normaliseringsstrategi HOULD tillämpas när generera atom:id element: • Ange systemet i små bokstäver. • Ange värden, om sådan finns, med små bokstäver. • Utför endast procent-kodning där det är nödvändigt. • Använd stora A- till F- tecken när procent- kodning. • Förhindra prick-segment från att visas i stigar. • För system som definierar en försumlig myndighet, använd en tom myndighet om försumligheten önskas. • För system som definierar en tom sökväg som motsvarar en sökväg "/", använd "/". • För system som definierar en port, använd en tom port om standardvärdet önskas. • Bevara tomma fragmentidentifierare och frågor. • Se till att alla komponenter i IRI är normaliserade på lämpligt sätt, t.ex. genom att använda NFC eller NFKC. Anfall av atom:id element kan jämföras för att avgöra om en post eller foder är samma som en sett tidigare. Processorer MÅSTE jämföra atom:id element på en karaktär-för-tecken-basis (på ett fall-känsligt sätt). Jämförelseåtgärder MÅSTE baseras enbart på IRI-teckensträngarna och får inte vara beroende av att skilja de IRI:er eller URI:er som kartlagts från dem. Som ett resultat av detta kommer två IRI som bestämmer sig för samma resurs men inte är tecken-för-tecken identiska att betraktas som olika för identifieringsjämförelse. Till exempel är dessa fyra distinkta identifierare, trots att de bara skiljer sig åt i fall: elementet "atom:länk" definierar en referens från en post eller feed till en webbresurs. Den här specifikationen tilldelar inte innehållet (i förekommande fall) i detta element någon betydelse.
Atom REF (eller RSS [5] ) är ett XML-baserat filformat som gör det möjligt att synkronisera listor med information, så kallade "feeds", mellan utgivare och konsumenter.
The Atom Syndication Format