6. Atom Eklentileri
6.1. Atomdışı Dillerden Eklentiler
Bu belirtim Atomun XML sözcük dağarcığını açıklar. Diğer imleme dillerinden sözcükler ("yabancı imleme") Atom Belgelerinde kullanılabilir. atom:content
elemanının böyle bir içeriği içererek desteklemek için tasarlandığına dikkat edilmelidir.
6.2. Atom Söz Dağarcığına Eklemeler
Atom isim alanı Atomun gelecekteki ileriye dönük uyumlu değişikliklerine ayrılmıştır. Bu belirtimin gelecekteki sürümleri Atom sözcük dağarcığına yeni elemanlar ve öznitelikler ekleyebilir. Belirtimin bu sürümüyle uyumlu olmak üzere geliştirilmiş yazılımlar böyle bir belgeyi doğru işleyemeyecek ve aslında onu dil hatalarından ayıramayacaktır. Bu değerlendirmenin amaçları doğrultusunda Atom sözcük dağarcığında olmayan dil belirtimlerinden "yabancı imleme" olarak bahsedilecektir.
6.3. Yabancı İmlemenin İşlenmesi
Atom İşlemcileri, bu belirtime göre meşru olan bir yerde yabancı imleme saptadığında işlemi durdurmamalı veya bir hatayı sinyallememelidir *ZORUNLU*. Atom İşlemcilerinin yabancı imlemeyi doğru olarak işlemesi mümkün olabildiği bir durum olabilir ve bunu yapar. Aksi takdirde, böyle bir imleme "bilinmeyen yabancı imleme" adını alır.
Bilinmeyen yabancı imleme atom:entry
, atom:feed
veya bir Kişilik oluşumunun bir çocuğu olarak saptandığında, Atom İşlemcileri imlemeyi ve metinsel içeriğini görmezden gelebilir *SEÇİMLİK* ama imlemenin varlığının bir sonucu olarak onların davranışlarını değiştiremez *ZORUNLU*.
Bilinmeyen yabancı imleme atom:content
elemanında veya bir Metin oluşumunda saptandığında, yazılım imlemeyi yoksaymalı ve yabancı elemanların metin içeriklerini onları sarmalayan bir imleme yokmuşçasına işleme sokmalıdır *ÖNERİ*.
6.4. Eklenti Elemanları
Atom, açıkça yasaklandığı yerler dışında Atom belgesinin her yerinde yabancı imlemeye izin verir. atom:entry
, atom:feed
, atom:source
elemanlarının çocukları ve Kişilik oluşumları Öteveri elemanları sayılır ve aşağıda açıklanmışlardır. Kişilik oluşumlarının çocuk elemanları oluşuma uygulanacaklar olarak ele alınır. Bunlar dışında kalan yabancı imlemenin rolü bu belirtim tarafından tanımlanmamıştır.
6.4.1. Basit Eklenti Elemanları
Bir Basit Eklenti Elemanının öznitelikleri ve çocuk elemanları olmamalıdır *ZORUNLU*. Eleman karakter veri içerebileceği gibi boş da olabilir *SEÇİMLİK*. Basit Eklenti Elemanları lisana duyarlı değildir.
simpleExtensionElement = element * - atom:* { text }
Eleman, onu içeren ata elemanın basit bir özelliği (veya isim-değer çifti) olarak yorumlanabilir. Elemanın isim alanı URI'si ile elemanın yerel isminden oluşan çift özelliğin ismi olarak yorumlanabilir. Elemanın karakter verisinden oluşan içeriği özelliğin değeri olarak yorumlanabilir. Eğer eleman boşsa, özellik değeri bir boş dizge olarak yorumlanabilir.
6.4.2. Yapılı Eklenti Elemanları
Bir Yapılı Eklenti elemanının tepe elemanı en azından bir öznitelik veya bir çocuk eleman içermelidir *ZORUNLU*. Öznitelikleri olabilir *SEÇİMLİK*, iyi biçimli XML içeriği (karakter veri içererek) olabilir *SEÇİMLİK* veya boş olabilir *SEÇİMLİK*. Yapılı Eklenti elemanları Lisana duyarlıdır.
structuredExtensionElement = element * - atom:* { (attribute * { text }+, (text|anyElement)*) | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*)) }
Bir Yapılı Eklenti elemanının yapısı onun çocuk elemanlarının sıralamasını da içererek önemli olabilir.
Bu belirtim bir Yapılı Eklenti eleman yorumlaması sağlamaz. Elemanın içerdiği XML'in sözdizimi (ve elemanın içerdiği elemanlarla olan ilgisinin nasıl yorumlanacağı) Atom eklentisinin belirtimi tarafından tanımlanır.