4.2. Öteveri Elemanları
4.2.1. "atom:author
" Elemanı
"atom:author
" elemanı, girdinin veya ulamın yazarını belirten bir Kişi oluşumudur.
atomAuthor = element atom:author { atomPersonConstruct }
Eğer bir atom:entry
elemanının atom:author
çocukları yoksa, atom:source
çocuklarının atom:author
çocukları uygulamaya konu olur. Bir Atom Ulama Belgesinde, girdi için eğer yukarıda açıklanan yerlerde hiç atom:author
elemanları yoksa içerilen atom:feed
elemanının atom:author
çocukları uygulamaya konu olur.
4.2.2. "atom:category
" Elemanı
"atom:category
" elemanı bir girdi veya ulam ile ilişkili bir kategori hakkında bilgi nakleder. Bu belirtim bu elemanın içeriğine (varsa) hiçbir anlam atamaz.
atomCategory = element atom:category { atomCommonAttributes, attribute term { text }, attribute scheme { atomUri }?, attribute label { text }?, undefinedContent }
-
"
term
" Özniteliği -
term
özniteliği, girdi veya ulamın içinde bulunduğu kategoriyi betimleyen bir dizgedir. Her "atom:category
" elemanının birterm
özniteliği olmalıdır *ZORUNLU*. -
"
scheme
" Özniteliği -
scheme
özniteliği, bir kategorileme şemasını betimleyen bir uluslararası adrestir (IRI). Her "atom:category
" elemanının birscheme
özniteliği olabilir *SEÇİMLİK*. -
"
label
" Özniteliği -
label
özniteliği, son kullanıcı uygulamalarında göstermek için insanlarca okunabilen bir etiket içerir.label
özniteliğinin içeriği lisana duyarlıdır. "&" ve "<" gibi öğeler onlara karşılık gelen karakterleri (sırayla "&" ve "<") temsil ederler, bir imlemeyi değil. Her "atom:category
" elemanının birlabel
özniteliği olabilir *SEÇİMLİK*.
4.2.3. "atom:contributor
" Elemanı
"atom:contributor
" elemanının içeriği, ulam veya girdiye katkıda bulunan bir şahsı veya tüzelkişiyi belirten bir Kişilik oluşumudur.
atomContributor = element atom:contributor { atomPersonConstruct }
4.2.4. "atom:generator
" Elemanı
"atom:generator
" elemanının içeriği, hata ayıklama veya başka bir amaçla bir ulam üretmekte kullanılacak aracı betimler.
atomGenerator = element atom:generator { atomCommonAttributes, attribute uri { atomUri }?, attribute version { text }?, text }
Kullanıldığında bu elemanın içeriği ulam üretecininin insanlarca okunabilen isminden oluşan bir dizge olmalıdır *ZORUNLU*. "&" ve "<" gibi öğeler onlara karşılık gelen karakterleri (sırayla "&" ve "<") temsil ederler, bir imlemeyi değil.
atom:generator
elemanı, değeri bir IRI [RFC3987] başvurusu olması gereken *ZORUNLU* bir "uri
" özniteliği içerebilir *SEÇİMLİK*. Başvuru çözümlendiğinde sonuçlanan URI (gerekliyse, bir IRI'den eşlenerek) üretecin amacına uygun bir sunum sağlamalıdır *SEÇİMLİK*.
atom:generator
elemanı, ulam üretecinin sürümünü belirten bir "version
" özniteliği içerebilir *SEÇİMLİK*.
4.2.5. "atom:icon
" Elemanı
atom:icon
elemanı, bir ulam için görsel simgeli betimleme sağlayan bir imgeyi betimleyen bir IRI [RFC3987] başvurusu içerir.
atomIcon = element atom:icon { atomCommonAttributes, (atomUri) }
Bu imge, bir en-boy oranına sahip olmalı *ÖNERİ* ve küçük boyutta gösterilmeye elverişli olmalıdır *ÖNERİ*.
4.2.6. "atom:id
" Elemanı
"atom:id
" elemanı, bir ulam veya girdi için kalıcı ve evrensel olarak eşsiz bir betimleyici nakleder.
atomId = element atom:id { atomCommonAttributes, (atomUri) }
İçeriği RFC3987]'ye göre tanımlanmış bir IRI olmalıdır *ZORUNLU*. "IRI" tanımının göreli başvuruları dışladığına dikkat ediniz. "IRI" başvuru oluşturabilen bir şema kullanabildiğinden, Atom İşlemcileri onu çözümlenerek başvuru olabilir varsaymamalıdır *ZORUNLU*.
Bir Atom belgesi, yeniden konumlandığında, yansılandığında, ödünleşerek paylaşıldığında, yeniden yayınlandığında, ihraç ya da ithal edildiğinde, belgenin atom:id
elemanının içeriği değişmemelidir *ZORUNLU*. Başka bir deyişle, bir atom:id
içeriğinin, belli bir Atom ulamı veya girdisinin tüm örnekleriyle ilgisi sürmeli; düzeltmeler aynı atom:id
içerikli kalmalıdır. Her atom:id
elemanının ilişkili olduğu özkaynak ile birlikte saklanması önerilir.
Bir atom:id
elemanının içeriğinin eşsizliğinden emin olunacak bir yöntemle oluşturulması gerekir *ZORUNLU*.
URI'lere eşlendiğinde veya başvuru olarak çözümlendiğinde eşdeğer olması gereken IRI'ler arasındaki belirsizlik riskinden dolayı, atom:id
elemanları üretilirken aşağıdaki normalleştirme stratejisi uygulanmalıdır *ÖNERİ*:
- Şema küçük harflerden oluşur.
- Varsa, konak küçük harflerden oluşur.
- Gerektiği yerde sadece kısmen kodlama yapılır.
- Kımi kodlama yapılırken A'dan F'ye kadar büyük harfler kullanılır.
- Yollarda noktalarla ayrılmış parçaların görünmesinden kaçınılır.
- Bir öntanımlı yetkili tanımlayan şemalar için, eğer öntanımlama isteniyorsa boş yetkili kullanılır.
- Bir "/" yoluna eşdeğer olarak boş bir yol tanımlayan şemalar için "/" kullanılır.
- Bir port tanımlayan şemalar için, eğer öntanımlı bir tane isteniyorsa, hiçbir port belirtilmez.
- Boş veridilimi betimleyicilerinden ve sorgularından kaçınılır.
- IRI'nin tüm bileşenlerinin uygun karakterlerle (örn, NFC veya NFKC kullanarak) normalleştirildiğinden emin olunur.
4.2.6.1. atom:id
Karşılaştırması
atom:id
elemanlarının örnekleri bir ulam veya girdinin daha önceki biriyle aynı olup olmadığını saptamak için karşılaştırılabilir. İşlemciler atom:id
elemanlarını karakter karakter, harf büyüklüğüne duyarlı olarak karşılaştırmalıdır *ZORUNLU*. Karşılaştırma işlemleri yalnızca IRI karakter dizgelerine dayanmalı *ZORUNLU* ve IRI'leri başvuru olarak çözümlemelere veya onlara eşlenen URI'lere bel bağlanmamalıdır *ZORUNLU*.
Sonuç olarak, aynı özkaynağa çözümlenen fakat karakter karakter birbirinin eşi olmayan iki IRI, betimleyici karşılaştırması bakımından farklı sayılır.
Örneğin, bunlar aslında birbirlerinden sadece harf büyüklükleri bakımından farklı olan dört ayrı betimleyicidir:
http://www.example.org/thing http://www.example.org/Thing http://www.EXAMPLE.org/thing HTTP://www.example.org/thing
Benzer şekilde, bunlar da, IRI % öncelemesi karşılaştırmanın amacına uygun olarak önem kazandığından aslında üç ayrı betimleyicidir:
http://www.example.com/~bob http://www.example.com/%7ebob http://www.example.com/%7Ebob
4.2.7. "atom:link
" Elemanı
Bir "atom:link
" elemanı bir ulam veya girdiden bir sanaldoku özkaynağına bir başvuru tanımlar. Bu belirtim, bu elemanın içeriğine bir anlam atfetmez.
atomLink = element atom:link { atomCommonAttributes, attribute href { atomUri }, attribute rel { atomNCName | atomUri }?, attribute type { atomMediaType }?, attribute hreflang { atomLanguageTag }?, attribute title { text }?, attribute length { text }?, undefinedContent }
-
"
href
" Özniteliği -
"
href
" özniteliği bağlantının IRI'sini içerir. Heratom:link
elemanının, değeri bir IRI başvurusu [RFC3987] olması gereken *ZORUNLU* birhref
özniteliği olmalıdır *ZORUNLU*. -
"
rel
" Özniteliği -
Her
atom:link
elemanının, bağlantı ilişki türünü belirten birrel
özniteliği olabilir *SEÇİMLİK*. Eğer birrel
özniteliği belirtilmemişse,atom:link
elemanı için bağlantı ilişki türü "alternate
" imiş gibi yorum yapılmalıdır *ZORUNLU*.rel
değeri, boş olmayan ve, ya bir ":" içermeksizin sıfır uzunlukta olmayan bir veribölütü ya da [RFC3987]'den biri IRI ürünü olan bir dizge olmalıdır *ZORUNLU*. Basit bir isimden başka bir göreli başvuru kullanımına izin verilmediğine dikkat ediniz. Eğer bir isim verilmişse, gerçeklenimlerin, bağlantı ilişki türünün IANA Bağlantı İlişkileri Sicilinde (bkz, IANA Değerlendirmeleri) kayıtlı isimle ve dolayısıyla "http://www.iana.org/assignments/relation/" dizgesinerel
değeri eklenerek oluşturulan IRI'yle aynı olduğunu varsaymaları gerekir *ZORUNLU*.rel
değeri bağlantının anlamını açıklar fakat Atom İşlemcilere herhangi bir davranışsal gereksinim dayatmaz.Bu belge Bağlantı İlişkileri Sicili için beş ilklendirme değeri tanımlar:
-
"
alternate
" değeri,href
özniteliğinin değerindeki IRI'nin taşıyıcı eleman tarafından açıklanan özkaynağın bir başka sürümünü betimlediği anlamına gelir. -
"
related
" değeri,href
özniteliğinin değerindeki IRI'nin taşıyıcı eleman tarafından açıklanan özkaynakla ilgili bir özkaynağı betimlediği anlamına gelir. Örneğin, "http://search.example.com" adresindeki bir arama motorunun başarımının anlatıldığı bir sanalyöre ulamındaatom:feed
şöyle bir çocuk içermelidir:<link rel="related" href="http://search.example.com/"/>
Eşdeğer bir bağlantı, aynı arama motorundan bahsedilen bir
atom:entry
'nin çocuğu olarak da karşımıza çıkabilir. -
"
self
" değeri,href
özniteliğinin değerindeki IRI'nin taşıyıcı elemana eşdeğer bir özkaynağı betimlediği anlamına gelir. -
"
enclosure
" değeri,href
özniteliğinin değerindeki IRI'nin oldukça büyük olması muhtemel ve bu bakımdan özel olarak ele alınması gerekebilecek bir ilişkili özkaynağı betimlediği anlamına gelir.rel="enclosure"
içeren biratom:link
elemanı için birlength
özniteliği sağlanmış olmalıdır *ÖNERİ*. -
"
via
" değeri,href
özniteliğinin değerindeki IRI'nin taşıyıcı elemanda sağlanan bilginin kaynağı olan bir özkaynağı betimlediği anlamına gelir.
-
-
"
type
" Özniteliği -
atom:link
elemanının "type
" özniteliğinin değeri tavsiye niteliğinde bir ortam türüdür:href
özniteliğinin değeri başvuru olarak çözümlendiğinde döneceği umulan gösterimin türü hakkında bir ipucudur.type
özniteliğinin gösterim ile dönen asıl ortam türünü değiştiren nitelikte olmadığına dikkat ediniz. Heratom:link
elemanının, değeri bir MIME ortam türü [MIMEREG] sözdizimine uygun olması gereken *ZORUNLU* birtype
özniteliği olabilir *SEÇİMLİK*. -
"
hreflang
" Özniteliği -
"
hreflang
" özniteliğinin içeriğihref
özniteliğinin gösterdiği özkaynağın dilini açıklar.rel="alternate"
ile beraber kullanıldığında, girdinin çevrilmiş bir sürüm olduğu anlamına gelir. Heratom:link
elemanının, değeri bir lisan yaftası [RFC3066] olması gereken *ZORUNLU* birhreflang
özniteliği olabilir *SEÇİMLİK*. -
"
title
" Özniteliği -
"
title
" özniteliği bağlantı hakkında insanlarca okunabilir bilgi nakleder. "title
" özniteliğinin içeriği lisana duyarlıdır. "&" ve "<" gibi öğeler onlara karşılık gelen karakterleri (sırayla "&" ve "<") temsil ederler, bir imlemeyi değil. Heratom:link
elemanının birtitle
özniteliği olabilir *SEÇİMLİK*. -
"
length
" Özniteliği -
"
length
" özniteliği bağlantılı içeriğin sekiz bitlik baytlar cinsinden tavsiye niteliğindeki uzunluğunu belirtir;href
özniteliğindeki IRI bir başvuru olarak çözümlendiğinde veya bir URI ile eşleştiğinde dönen verinin uzunluğu hakkında bir ipucudur.length
özniteliğinin, taşıyıcı protokol tarafından raporlanan asıl veri uzunluğunu değiştirir nitelikte olmadığına dikkat ediniz. Heratom:link
elemanının birlength
özniteliği olabilir *SEÇİMLİK*.
4.2.8. "atom:logo
" Elemanı
"atom:logo
" elemanının içeriği, ulam için görsel kimlik sağlayan bir imgeyi betimleyen bir IRI başvurusudur [RFC3987].
atomLogo = element atom:logo { atomCommonAttributes, (atomUri) }
İmgenin en-boy oranı 2'ye 1 olmalıdır *ÖNERİ*.
4.2.9. "atom:published
" Elemanı
"atom:published
" elemanı girdinin yaşamının başlarındaki bir olayla ilgili bir anı belirten bir Tarih oluşumudur.
atomPublished = element atom:published { atomDateConstruct }
Genellikle, atom:published
özkaynağın ilk işe yarar oluşu veya ilk oluşturuluşu ile ilgilidir.
4.2.10. "atom:rights
" Elemanı
"atom:rights
" elemanı bir ulam veya girdinin içindeki veya üzerindeki fikri haklar hakkında bilgi nakleden bir Metin oluşumudur.
atomRights = element atom:rights { atomTextConstruct }
atom:rights
elemanı, makineler tarafından okunabilir lisanslama bilgisini nakletmekte kullanılmamalıdır *ÖNERİ*.
Eğer bir atom:entry
elemanı bir atom:rights
elemanı içermiyorsa, taşıyıcı atom:feed
elemanının bir atom:rights
elemanı eğer varsa onun içeriğinin girdiye uygulanacağı varsayılır.
4.2.11. "atom:source
" Elemanı
Eğer bir atom:entry
elemanı bir ulamdan diğerine kopyalanmışsa, kaynak atom:feed
elemanının öteverisi (atom:entry
elemanlarından başka atom:feed
'in tüm çocuk elemanları) kopya girdiye bir atom:source
elemanı eklenerek onun içinde veya bir atom:source
elemanı zaten varsa ona çocukları olarak eklenerek korunabilir *SEÇİMLİK*. Eğer kaynak atom:feed
elemanı, atom:author
, atom:contributor
, atom:rights
veya atom:category
çocuk elemanlarından bazılarını içeriyorsa ve bu çocuk elemanlar kaynak atom:entry
içinde mevcut değilse böyle öteverinin de korunması gerekir *ÖNERİ*.
atomSource = element atom:source { atomCommonAttributes, (atomAuthor* & atomCategory* & atomContributor* & atomGenerator? & atomIcon? & atomId? & atomLink* & atomLogo? & atomRights? & atomSubtitle? & atomTitle? & atomUpdated? & extensionElement*) }
atom:source
elemanı, bir girdinin kaynak ulamı hakkındaki bilgi kalırken farklı ulamlardaki girdilerin ortaklaşılmasını mümkün kılmak için tasarlanmıştır. Bu sebeple, böyle ortak değerleri işleme sokan Atom İşlemcilerinin atom:source
elemanında en azından ulam seviyesinde gerekli Öteveri elemanlarını (atom:id
, atom:title
ve atom:updated
) içermesi gerekir *ÖNERİ*.
4.2.12. "atom:subtitle
" Elemanı
"atom:subtitle
" elemanı, bir ulam için altbaşlık veya insanlarca okunabilen bir açıklama nakleden bir Metin oluşumudur.
atomSubtitle = element atom:subtitle { atomTextConstruct }
4.2.13. "atom:summary
" Elemanı
"atom:summary
" elemanı, bir girdiden kısa bir alıntı veya bir özet nakleden bir Metin oluşumudur.
atomSummary = element atom:summary { atomTextConstruct }
Atom İşlemcilerinin olmadığı halde yararlı bir özet varmış gibi kabul edecek olmaları sebebiyle atom:summary
elemanının, atom:title
veya atom:content
elemanını yineleyen bir içeriği nakletmesi önerilmez.
4.2.14. "atom:title
" Elemanı
"atom:title
" elemanı, bir ulam veya girdi için insanlarca okunabilen başlık nakleden bir Metin oluşumudur.
atomTitle = element atom:title { atomTextConstruct }
4.2.15. "atom:updated
" Elemanı
"atom:updated
" elemanı, bir girdi veya ulam yayıncı için önemli sayılabilecek değişikliklere uğradığında bunun en sonuncusunun tarihini belirten bir Tarih oluşumudur. Bu bakımdan tüm değişiklikler atom:updated
değerinde bir değişiklik ile sonuçlanmaz.
atomUpdated = element atom:updated { atomDateConstruct }
Yayıncılar bu elemanın değerini biraz ileri alabilir *SEÇİMLİK*.