Elementy dotyczące całego kanału
Oto minimalny przykład. Element <feed>
jest kanałem, a <entry>
jego jedynym wpisem.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Przykładowy kanał</title>
<link href="http://example.org/"/>
<updated>2006-04-06T11:30:02+01:00</updated>
<author>
<name>Jan Kowalski</name>
</author>
<id>urn:uuid:f2cb82f2-16a5-1029-85eb-f6d54af2e08a</id>
<entry>
<title>Atomowe roboty dostają amoku</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:ed1f87ee-16a6-1029-85eb-f6d54af2e08a</id>
<updated>2006-04-06T11:30:02+01:00</updated>
<summary>Jakiś tekst</summary>
</entry>
</feed>
Kolejność elementów nie ma znaczenia (nawet wpisy mogą być w dowolnej kolejności, bo będą posortowane przez czytniki).
Natomiast ważne jest bezpośrednio w którym elemencie umieszcza się inne elementy. np. <title>
w <feed>
oznacza tytuł kanału, ale <title>
w <entry>
oznacza tytuł wpisu.
Elementy obowiązkowe w <feed>
<feed>
i wszystkie jego elementy należace do Atom muszą być w przestrzeni nazw http://www.w3.org/2005/Atom
. Zapewni to następująca deklaracja:
<feed xmlns="http://www.w3.org/2005/Atom">
Można spotkać kanały pisane używające przedrostka atom:
w nazwie każdego elementu. Używanie przedrostka nie jest koniecznie. Z punktu widzenia XML to jest bez znaczenia, póki przestrzeń nazw jest poprawnie zadeklarowana.
Tytuł kanału: <title>
Kanał może mieć też podtytuł
<title>
umieszczone w <feed>
ustala tytuł/nazwę kanału. Jeśli kanał zawiera posty z bloga, to tytuł może być taki sam jak bloga. Jeśli to są komentarze do
jakiegoś postu, to tytuł może być „Komentarze do Tytuł Tego Postu”, itd.
Tytuł może być tekstem lub HTML/XHTML — zobacz typy danych.
<title>
Co w trawie piszczy</title>
Data aktualizacji: <updated>
Jest to format date-time z RFC 3339
Data kiedy ten plik został wygenerowany. W formacie rok-miesiąc-dzieńTgodzina:minuty:sekundyStrefaCzasowa.
<updated>
2006-04-06T11:30:02+01:00</updated>
W PHP5.1 można wygenerować właściwą datę za pomocą date(DATE_ATOM);
, a w starszych wersjach poprzez date("Y-m-d\TH:i:sP");
Unikalny, niezmienny identyfikator: <id>
Każdy kanał musi mieć identyfikator w formacie URI, który nigdy się nie zmieni i będzie wykorzystywany tylko do tego jednego kanału.
<id>urn:uuid:ed1f87ee-16a6-1029-85eb-f6d54af2e08a</id>
<id>http://moja-domena.pl/kanaly/atom/2006/moj-pierwszy-kanal</id>
Odpowiednie dobranie identyfikatora jest ważne. Nie kopiuj tych przykładów, tylko twórz własne identyfikatory do każdego kanału i wpisu.
Wpisy: <entry>
Zostaną opisane później.
Elementy zalecane
Autor kanału: <author>
Pozwala podać imię (<name>
), e-mail (<email>
) i stronę domową (<uri>
) autora kanału.
Jeśli nie uważasz kogoś za współautora, a chcesz zaznaczyć jego wkład, to użyj elementu <contributor>
Jeśli kanał ma kilku współautorów, można umieścić element <author>
kilka razy. Jeśli poszczególne wpisy mają różnych autorów, to zamiast umieszczać <author>
w <feed>
należy podać autora dla każdego wpisu z osobna.
<author>
<name>
Jan Kowalski</name>
<email>
jan.kowalski@example.com</email>
<uri>
http://example.com/~jankowalski</uri>
</author>
Link do samego siebie: <link rel="self">
Niekiedy używa się URI kanału jako <id>
, ale zastosowanie tych elementów jest zupełnie inne. URI w <link>
musi istnieć i może się zmieniać, a w
<id>
jest odwrotnie.
Atrybut href
tego elementu ma być pełnym adresem (URI) pod którym znajduje się kanał.
Potrzebne jest to, ponieważ plik kanału po zapisaniu na dysk traci powiązanie ze stroną, z której został pobrany, a bez tego nie może być aktualizowany.
Jeśli kanał generujesz za pomocą PHP, to adres skryptu możesz uzyskać przez 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
<link rel="self" href="http://moja-domena.pl/kanaly/blog.xml" />
Pytania? Komentarze? Napisz na forum kursu lub edytuj tę stronę.
Zmodyfikowano: 09.06.2006, 07:41