4.1. Taşıyıcı Elemanlar
4.1.1. "atom:feed
" Elemanı
"atom:feed
" elemanı bir Atom Ulama Belgesinin belge (yani, tepe seviyeden) elemanıdır yani, ulam ile ilgili veri ve öteveri için bir taşıyıcıdır. Çocuk elemanları, öteveri elemanlarını takibeden sıfır veya daha fazla sayıda atom:entry
elemanından oluşur.
atomFeed = element atom:feed { atomCommonAttributes, (atomAuthor* & atomCategory* & atomContributor* & atomGenerator? & atomIcon? & atomId & atomLink* & atomLogo? & atomRights? & atomSubtitle? & atomTitle & atomUpdated & extensionElement*), atomEntry* }
Bu belirtim, atom:feed
içindeki atom:entry
elemanları arasında bir öncelik belirtmez.
Bu belirtim tarafından tanımlanan çocuk elemanlar (bu elemanların bazılarının varlığı gereklidir):
-
atom:feed
elemanınınatom:entry
çocuklarının her biri en azından bireratom:author
elemanı içermedikçe,atom:feed
elemanlarının bir veya daha fazla sayıdaatom:author
elemanı içermesi gerekir *ZORUNLU*. -
atom:feed
elemanları herhangi bir sayıdaatom:category
elemanı içerebilir *SEÇİMLİK*. -
atom:feed
elemanları herhangi bir sayıdaatom:contributor
elemanı içerebilir *SEÇİMLİK*. -
atom:feed
elemanlarının birden fazlaatom:generator
elemanı içermemesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının birden fazlaatom:icon
elemanı içermemesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının birden fazlaatom:logo
elemanı içermemesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:id
elemanı içermesi gerekir *ZORUNLU*. -
atom:feed
elemanları, "self
" değerli birrel
özniteliği olan tek biratom:link
elemanı içermelidir *ÖNERİ*. Buatom:link
elemanının içeriği Atom Ulama Belgelerinin alınacağı, Atom ulamını sunan yerin tercihli adresidir (URI). -
atom:feed
elemanları, "alternate
" değerli birrel
özniteliği olup aynı zamandatype
vehreflang
özniteliklerinde de aynı değerlere sahip birden fazlaatom:link
elemanı içermemelidir *ZORUNLU*. -
atom:feed
elemanları, yukarıda açıklananlar dışında başkaatom:link
elemanları içerebilir *SEÇİMLİK*. -
atom:feed
elemanlarının birden fazlaatom:rights
elemanı içermemesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının birden fazlaatom:subtitle
elemanı içermemesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:title
elemanı içermesi gerekir *ZORUNLU*. -
atom:feed
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:updated
elemanı içermesi gerekir *ZORUNLU*.
Eğer bir Atom Ulama Belgesinde aynı atom:id
değerli çok sayıda atom:entry
elemanı görünüyorsa, bunlar aynı girdiyi ifade ediyor demektir. Bunların atom:updated
zaman damgaları farklı olmalıdır *ÖNERİ*.
Eğer bir Atom Ulama Belgesi aynı atom:id
ile çok sayıda girdi içeriyorsa, Atom İşlemcileri bunların tümünü göstermeyi seçebilecekleri gibi bir kısmını da gösterebilir. Tipik bir davranış, en yeni atom:updated
zaman damgasını içeren girdiyi göstermek olurdu.
4.1.1.1. Metinsel İçeriğin Sağlanması
Deneyimler, ulamların metinsel içeriği içermesinin içermemesinden genelde daha faydalı olduğunu öğretmektedir. Bazı uygulamalar (tamamen metin dizinleri üretenler gibi), işlevlerini yerine getirebilmek için az da olsa metin veya (X)HTML içerik gerektirir. Ulam üreticilerinin bu gibi hususlardan haberi olması gerekir. Her atom:entry
elemanının, içerdiği takdirde atom:title
ve atom:content
elemanlarının içeriğinin boş olmaması ve atom:content
içermemesi halinde, boş olmayan bir atom:summary
elemanı içermesi tercih edilmelidir. Bununla birlikte, bir atom:summary
elemanının yokluğu bir hata değildir ve Atom İşlemcilerinin böyle bir yokluk durumunda başarısızlık göstermemesi gerekir *ZORUNLU*.
4.1.2. "atom:entry
" Elemanı
atom:entry
elemanı, girdi ile ilgili veri ve öteveri için bir taşıyıcı görevi görmesi bakımından başlıbaşına bir girdi içerir. Bir atom:feed
elemanının bir çocuğu olarak karşımıza çıkabileceği gibi tek başına bir Atom Girdi Belgesinin belge (yani, tepe seviyeden) elemanı olarak da karşımıza çıkabilir.
atomEntry = element atom:entry { atomCommonAttributes, (atomAuthor* & atomCategory* & atomContent? & atomContributor* & atomId & atomLink* & atomPublished? & atomRights? & atomSource? & atomSummary? & atomTitle & atomUpdated & extensionElement*) }
Bu belirtim atom:entry
elemanının çocukları arasında bir öncelik belirtmez.
Bu belirtim tarafından tanımlanan çocuk elemanlar (bu elemanların bazılarının varlığı gereklidir):
-
Bir
atom:entry
elemanı içinde, biratom:author
elemanı içeren biratom:source
elemanı veya bir Atom Ulama Belgesi içinde, kendiatom:author
elemanını içeren biratom:feed
elemanı olmadıkçaatom:entry
elemanlarının bir veya daha fazla sayıdaatom:author
elemanı içermesi gerekir *ZORUNLU*. -
atom:entry
elemanları herhangi bir sayıdaatom:category
elemanı içerebilir *SEÇİMLİK*. -
atom:entry
elemanları birden fazla sayıdaatom:content
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanları herhangi bir sayıdaatom:contributor
elemanı içerebilir *SEÇİMLİK*. -
atom:entry
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:id
elemanı içermesi gerekir *ZORUNLU*. -
Hiç
atom:content
çocuğu olmayanatom:entry
elemanlarının, değeri "alternate
" olan birrel
özniteliğine sahip en az biratom:link
elemanı olmalıdır *ZORUNLU*. -
atom:entry
elemanları, "alternate
" değerli birrel
özniteliği olup aynı zamandatype
vehreflang
özniteliklerinde de aynı değerlere sahip birden fazlaatom:link
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanları, yukarıda açıklananlar dışında başkaatom:link
elemanları içerebilir *SEÇİMLİK*. -
atom:entry
elemanları birden fazla sayıdaatom:published
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanları birden fazla sayıdaatom:rights
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanları birden fazla sayıdaatom:source
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanları şu iki durumdan birinde biratom:summary
elemanı içermelidir *ZORUNLU*:-
atom:entry
elemanı, bir "src
" özniteliğine sahip (bu nedenle boştur) biratom:content
elemanı içeriyordur.
-
-
atom:entry
elemanları birden fazla sayıdaatom:summary
elemanı içermemelidir *ZORUNLU*. -
atom:entry
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:title
elemanı içermesi gerekir *ZORUNLU*. -
atom:entry
elemanlarının, ne eksik ne fazla tam olarak bir taneatom:updated
elemanı içermesi gerekir *ZORUNLU*.
4.1.3. atom:content
Elemanı
atom:content
elemanı bir girdiyi ya içerir ya da içeriğe bir bağlantı olur. atom:content
elemanının içeriği lisana duyarlıdır.
atomInlineTextContent = element atom:content { atomCommonAttributes, attribute type { "text" | "html" }?, (text)* } atomInlineXHTMLContent = element atom:content { atomCommonAttributes, attribute type { "xhtml" }, xhtmlDiv } atomInlineOtherContent = element atom:content { atomCommonAttributes, attribute type { atomMediaType }?, (text|anyElement)* } atomOutOfLineContent = element atom:content { atomCommonAttributes, attribute type { atomMediaType }?, attribute src { atomUri }, empty } atomContent = atomInlineTextContent | atomInlineXHTMLContent | atomInlineOtherContent | atomOutOfLineContent
-
"
type
" Özniteliği -
atom:content
elemanındatype
özniteliğinin değeri "text
", "html
" veya "xhtml
" olabilir *SEÇİMLİK*. Bu mümkün olmazsa, değerin bir MIME ortam türü sözdizimine uygun olması *ZORUNLU* ama birleşik bir tür olmaması gerekir *ZORUNLU* ([MIMEREG] belgesinin 4.2.6. bölümüne bakınız). Eğer netype
ne desrc
özniteliği sağlanmışsa, Atom İşlemcileri "text
" değerli birtype
özniteliği varmış gibi davranmalıdır. -
"
src
" Özniteliği -
atom:content
birsrc
özniteliğine sahip olabilir *SEÇİMLİK*, ancak, değerinin bir uluslararası adres (IRI) [RFC3987] olması gerekir *ZORUNLU*.src
özniteliği sağlanmışsa,atom:content
içeriği boş olmalıdır *ZORUNLU*. Atom İşlemcileri içeriği almak için bu IRI'yi kullanabilir *SEÇİMLİK* veya uzak içeriği yoksaymayı ya da yerel içerikten farklı bir anlamda içermeyi seçebilir *SEÇİMLİK*.src
özniteliği sağlanmışsa,type
özniteliği de sağlanmalı *ÖNERİ* ancak değeri "text
", "html
" veya "xhtml
" değil bir MIME ortam türü [MIMEREG] olmalıdır *ZORUNLU*. Değer tavsiye niteliğindedir; içeriği sağlayan sunucu ayrıca bir ortam türü de sağlıyorsa. sunucu tarafından sağlanan ortam türü yetkindir.
4.1.3.1. İşlem Modeli
Atom Belgelerinin aşağıdaki kurallara uygun olması gerekir *ZORUNLU*. Atom İşlemcilerinin atom:content
içeriğini uygulanabilir olan ilk kurala göre yorumlaması gerekir *ZORUNLU*.
-
type
değeri "text
" ise,atom:content
çocuk elemanlar içermemelidir *ZORUNLU*. Böyle bir metnin insanlarca okunabilecek şekilde içerileceği düşünülür. Bu nedenle, Atom İşlemcileri fazla boşlukları atabilir ve metni hizalamak ve özel yazıtipleri kullanmak gibi tekniklerle göze daha hoş gösterebilir *SEÇİMLİK*. -
type
değeri "html
" ise,atom:content
çocuk elemanlar içermemeli *ZORUNLU* ve içerik HTML [HTML] olarak işlenmeye uygun olmalıdır *ÖNERİ*. HTML imleme öncelenmelidir; örneğin, "<br>" yerine "<br>" yazılmalıdır. HTML imleme, önceleme kaldırıldıktan sonra doğrudan bir HTML <DIV> elemanı içinde geçerli kalacak şekilde yapılmalıdır *ÖNERİ*. İçeriği gösteren Atom İşlemcileri imlemeyi gösterime yardımcı olarak kullanabilir *SEÇİMLİK*. -
type
değeri "xhtml
" ise,atom:content
çocuk eleman olarak tek bir XHTMLdiv
elemanı içermelidir *ZORUNLU*. İçerik, XHTML olarak işlenmeye elverişli olmalıdır *ÖNERİ*. XHTMLdiv
elemanının kendisi içeriğin parçası olarak ele alınmamalıdır *ZORUNLU*. İçeriği gösteren Atom İşlemcileri imlemeyi gösterime yardımcı olarak kullanabilir *SEÇİMLİK*. "&" ve "<" gibi karakterlerin öncelenmiş sürümleri imleme belirtmez, karakterlerin kendilerini ifade eder. -
type
değeri bir XML ortam türü [RFC3023] ise veya "+xml
" veya "/xml
" (harf büyüklüğüne duyarsız) ile bitiyorsa,atom:content
çocuk elemanlar içerebilir *SEÇİMLİK* ancak, belirtilen ortam türünde işlenmeye elverişli olmalıdır *ÖNERİ*. Eğer "src
" özniteliği sağlanmamışsa, bu normalde,atom:content
'in belirtilen türdeki XML belgenin kök elemanı olarak tek bir çocuk eleman içerdiği anlamına gelir. -
type
değeri "text/
" (harf büyüklüğüne duyarsız) ile başlıyorsa,atom:content
çocuk elemanlar içeremez *ZORUNLU*. -
type
özniteliğinin diğer tüm değerleri içinatom:content
içeriğinin [RFC3548] belgesinin 3. bölümünde açıklandığı gibi Base64 kodlu geçerli bir içerik olması gerekir *ZORUNLU*. Kodu çözüldüğünde, belirtilen ortam türünde işlenmeye elverişli olmalıdır *ÖNERİ*. Bu durumda,atom:content
içinde, Base64 kodlamadaki karakterlerin önüne ve ardına boşluklar eklenmiş ve satırlar tek bir satır-sonu karakteri (U+000A) ile ayrılmış olabilir *SEÇİMLİK*.
4.1.4. Örnekler
XHTML içinde:
... <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml"> This is <b>XHTML </b> content. </div> </content> ... <content type="xhtml"> <xhtml:div xmlns:xhtml="http://www.w3.org/1999/xhtml"> This is <xhtml:b>XHTML </xhtml:b> content. </xhtml:div> </content> ...
Aşağıdaki örnekte, XHTML isim alanının, belgenin başlarında "xh" önekine bağlandığı varsayılmıştır:
... <content type="xhtml"> <xh:div> This is <xh:b>XHTML </xh:b> content. </xh:div> </content> ...