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.