"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ırlar *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.
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ırlar *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ırlar.
Ö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