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 bir term ö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 bir scheme ö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. "&amp;" ve "&lt;" gibi öğeler onlara karşılık gelen karakterleri (sırayla "&" ve "<") temsil ederler, bir imlemeyi değil. Her "atom:category" elemanının bir label ö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*. "&amp;" ve "&lt;" 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. Her atom:link elemanının, değeri bir IRI başvurusu [RFC3987] olması gereken *ZORUNLU* bir href özniteliği olmalıdır *ZORUNLU*.

"rel" Özniteliği

Her atom:link elemanının, bağlantı ilişki türünü belirten bir rel özniteliği olabilir *SEÇİMLİK*. Eğer bir rel ö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/" dizgesine rel 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:

  1. "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.

  2. "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ında atom: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.

  3. "self" değeri, href özniteliğinin değerindeki IRI'nin taşıyıcı elemana eşdeğer bir özkaynağı betimlediği anlamına gelir.

  4. "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 bir atom:link elemanı için bir length özniteliği sağlanmış olmalıdır *ÖNERİ*.

  5. "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. Her atom:link elemanının, değeri bir MIME ortam türü [MIMEREG] sözdizimine uygun olması gereken *ZORUNLU* bir type özniteliği olabilir *SEÇİMLİK*.

"hreflang" Özniteliği

"hreflang" özniteliğinin içeriği href ö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. Her atom:link elemanının, değeri bir lisan yaftası [RFC3066] olması gereken *ZORUNLU* bir hreflang ö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. "&amp;" ve "&lt;" gibi öğeler onlara karşılık gelen karakterleri (sırayla "&" ve "<") temsil ederler, bir imlemeyi değil. Her atom:link elemanının bir title ö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. Her atom:link elemanının bir length ö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*.