W3C

XML 1.1'de İsim-alanları (İkinci Düzeltme)

W3C Önergesi 16 Ağustos 2006

Bu sürüm:
http://www.w3.org/TR/2006/REC-xml-names11-20060816
Son sürüm:
http://www.w3.org/TR/xml-names11
Önceki Sürüm:
http://www.w3.org/TR/2006/PER-xml-names11-20060614
Yayına hazırlayanlar:
Tim Bray, Textuality <tbray@textuality·com>
Dave Hollander, Contivo, Inc. <dmh@contivo·com>
Andrew Layman, Microsoft <andrewl@microsoft·com>
Richard Tobin, University of Edinburgh and Markup Technology Ltd. <richard@cogsci·ed·ac·uk>

Lütfen bu belgenin hata raporlarına da bakın, aralarında uyulması gereken düzeltmeler bulunabilir.

Belgenin başka dillere çevirileri de olabilir.


Bu çeviri:
XML ve HTML biçimleri mevcuttur.
Çeviren:
Nilgün Belma Bugüner <>, 5 Haziran 2007

Bu çeviri de diğer belirtim çevirileri gibi bilgilendirici mahiyettedir, hiçbir bağlamda belirleyici değildir. Bu belge anadili Türkçe olan Genel Ağ kullanıcılarının bu belirtim hakkında fikir edinebilmelerini sağlamak amacıyla Türkçeye çevrilmiştir. Bu belirtimin belirleyici tek sürümü W3C tarafından yayımlanan İngilizce sürümüdür.


Özet

XML isim-alanları, Genişletilebilir İmlenim Dilindeki (İng: Extensible Markup Language, yani XML) belgelerde kullanılan eleman ve öznitelik isimlerini nitelemek için bunları uluslararası tanım-yeri başvurularına göre tanımlayan isim-alanlarıyla ilişkilendirmek için basit bir yöntem sunar.

Belgenin Durumu

Bu bölüm belgenin yayımı sırasındaki durumunu açıklar. Bu belgeyi geçersiz kılacak başka belgeler olabilir. Şu anki W3C yayınlarının ve bu teknik raporların en son sürümleri http://www.w3.org/TR/ adresindeki W3C teknik raporları dizininde bulunabilir.

Bu belge, W3C XML Etkinliğinin bir parçası olarak XML Çekirdek Çalışma Grubu tarafından üretilmiştir. Bu belirtimin fiilen geçerli (İng: normative) tek sürümü İngilizce sürümü olmakla birlikte bilgilendirici (İng: non-normative) mahiyette olarak bu belgenin başka dillere tercümeleri de mevcuttur.

Belgenin bilinen gerçeklenimleri 1.1 sürümü İsim-alanlarının gerçeklenim raporu olarak belgelenmiştir (1.1 sürümü İsim-alanlarının hepsi zaten 1.0 sürümü İsim-alanlarını desteklemektedir). Ayrıca, XML Sınama Uygulamaları sayfasından erişilebilen sınama uygulamaları da mevcuttur.

İkinci düzeltme ile yayımı tarihinde bilinen tüm hatalar giderilmiş ve 4 Şubat 2004 tarihli W3C Önergesi geçersiz kılınmıştır. Okuyuculara kolaylık olması için belgenin yapılan değişikliklerin renklerle vurgulandığı bir XHTML sürümü de mevcuttur

Bu belgede (İngilizce sürümünde) bulduğunuz hataları lütfen xml-names-editor@w3.org listesine bildiriniz; listenin halka açık arşivleri de mevcuttur. Bu belge için bildirilen hataların listesine http://www.w3.org/XML/2006/xml-names11-errata adresinden erişilebilir.

Bu belge W3C üyeleri ve diğer ilgili taraflarca gözden geçirilmiş ve W3C Yönetimi tarafından bir W3C Önergesi olarak onaylanmıştır. Kararlı bir belge olup başka belgelerden uyulması gerekli bir kaynak olarak atıfta bulunarak veya bir başvuru malzemesi olarak kullanılabilir. W3C'nin Önergedeki rolü, belirtime dikkatleri çekmek ve geniş bir alanda kullanımını yaygınlaştırmaktır. Bu, Web'in işlevselliğini ve birlikte çalışabilirliğini arttırmaktadır.

Bu belge W3C Patent Politikası Geçiş İşlemleri tarafından değiştirilmiş olarak 24 January 2002 CPP'ye göre kullanılmaktadır. W3C, kendi çıktılarının barındırdığı patentler varsa bunları bir liste halinde ve patent açıklama talimatlarıyla birlikte duyurur. Temel Hak İddiasında bulunabilecek (başka) bir patent hakkında elinde somut bilgisi bulunanlar, W3C Patent Politikası 6. Bölümde belirtildiği şekilde ellerindeki bilgileri açıklamalıdırlar.

İçindekiler

1 Güdülenim ve Özet
    1.1 Gösterim ve Kullanım hakkında
2 XML İsim-alanları
    2.1 Temel Kavramlar
    2.2 Uluslararası Tanım-yerlerinin İsim-alanı Yerleri olarak Kullanımı
    2.3 Uluslararası Tanım-yeri Başvurularının Karşılaştırılması
3 İsim-alanlarının Bildirilmesi
4 Nitelikli Adlar
5 Nitelikli Adların Kullanımı
6 İsim-alanlarının Elemanlara ve Özniteliklere Uygulanması
    6.1 Önekli İsim-alanları
    6.2 Öntanımlı İsim-alanları
    6.3 Özniteliklerin Eşsizliği
7 Belgelerin Uygunluğu
8 İşlemcilerin Uygunluğu

Ekler

A Uyulması Zorunlu Kaynaklar
B Diğer Kaynaklar (Bilgilendirici)
C XML İsim-alanlarının İçyapısı (Bilgilendirici)
D 1.0 sürümünden beri yapılan değişiklikler (Bilgilendirici)
    D.1 1.1 sürümünden beri yapılan değişiklikler
E Teşekkür (Bilgilendirici)


1 Güdülenim ve Özet

Çok sayıda yazılım modülü için tanımlanmış ve onlar tarafından kullanılan elemanları ve öznitelikleri (burada bunlardan "imlenim söz varlığı" olarak bahsedeceğiz) tek bir belgede içerebilen Genişletilebilir İmlenim Dili (XML) uygulamaları tahayyül ediyoruz. Bunun için bizi güdüleyen tek şey modülerlik: kullanışlı bir yazılım için ve kolay anlaşılabilen böyle bir imleme söz varlığı varsa, bu imlenimi yeni baştan oluşturmaktansa yeniden kullanmak daha iyidir.

Böyle, çok sayıda imlenim söz varlığı içeren belgeler, tanınma ve uyuşmazlık sorunları gösterirler. Bir yazılım modülü hangi eleman ve öznitelikler üzerinde işlem yapmaya tasarlandıysa onları, başka bir yazılım paketine ait imlenimlerde aynı isimde eleman veya öznitelikler kullanılmış olsa bile tanıyabilmelidir.

Bu itibarla, belgelerin, farklı imlenim söz varlıkları arasında uyuşmazlıklara yol açmayacak isimlerle oluşturulması gereği ortaya çıkar. Bu belirtim, eleman ve özniteliklere genişletilmiş isimler atayarak bunun üstesinden gelen ve kendine XML isim-alanları denilen bir mekanizmayı açıklar.

1.1 Gösterim ve Kullanım hakkında

Bu çeviride, vurgulandıklarında, ZORUNLU, ÖNERİ ve SEÇİMLİK anahtar sözcükleri [RFC 2119]'un Türkçe çevirisinde açıklandığı gibi yorumlanır.

Bu belirtimin sözdizimi tanımlarındaki tanım terimlerinin çoğu burada değil XML belirtiminde [XML] tanımlanmıştır. Burada tanımlanan tanım terimlerinden (İng: nonterminals) XML belirtiminde de tanımlanmış olanlar aynı isimle burada da tanımlandığında, sözdizim tanımları, bunların XML belirtimindeki karşılıklarındaki dizge alt kümesi ile her durumda eşleşir.

Bu belgenin sözdizimi tanımlarındaki İAK kısaltması "İsim-alanı Kuralı" deyiminin kısaltması olup, bu belirtime uyumlu belgelerin uyması ZORUNLU kurallardan birini gösterir.

2 XML İsim-alanları

2.1 Temel Kavramlar

Bir XML isim-alanı bir uluslararası tanım-yeri (IRI) başvurusu [RFC 3987] ile tanımlanır; eleman ve öznitelik isimleri bir XML isim-alanına bu belirtimde açıklanan mekanizmalar kullanılarak yerleştirilebilir.

Bir genişletilmiş isim bir yerel ad ile bir isim-alanı yerinden oluşur. Bir isim alanındaki İ diye bir ismi Y diye bir uluslararası tanım-yeri (IRI) tanımlıyor olsun; burada isim-alanı Yeri Y'dir. İsim-alanında olmayan bir İ için isim-alanı yeri yoktur. Her iki durumda da yerel ad İ'dir. İsim ihtilafına düşmeme konusunda etkili olan, söz varlığının yerel adları ile evrensel olarak yönetilen uluslararası tanım-yeri (IRI) isim-alanının birleşimi işte bu birleşimdir.

Uluslararası tanım-yeri başvuruları isimlerde kullanımına izin verilmeyen karakterler içerebilir, hatta münasebetsizcesine uzun olabilirler; bu bakımdan genişletilmiş isimler XML belgelerde eleman ve öznitelik isimlendirmede doğrudan kullanılmazlar. Bunun yerine nitelikli adlar kullanılır. Bir nitelikli ad isim-alanı yorumuna konu olan addır. Bu belirtimle uyumlu belgelerde eleman ve öznitelik isimleri nitelikli adlar olarak karşımıza çıkar. Sözdizimsel olarak, ya önekli adlardır; ya da öneksiz adlardır. Özniteliğe dayalı bir bildirim sözdimi, önekli adları isim-alanı yerlerine ve öneksiz adları da öntanımlı isim-alanına bağlamayı sağlar; bu bildirimlerin etki alanı, içinde görüldükleri elemanla sınırlıdır, böylece bir belgenin farklı bölümlerine farklı bağıntılar uygulanabilir. Bu belirtimle uyumlu işlemcilerin bu bildirimleri ve önekleri tanıması ve buna göre davranması ZORUNLUdur.

2.2 Uluslararası Tanım-yerlerinin İsim-alanı Yerleri olarak Kullanımı

Boş dizge, geçerli bir uluslararası tanım-yeri başvurusu olsa bile, bir isim-alanı yeri olarak kullanılamaz.

Göreli uluslararası tanım-yeri başvurularının, aynı elemana gönderimleri de içererek, isim-alanı bildirimlerinde kullanımı önerilmemektedir.

Not:
Göreli tanım-yeri başvurularının bu tarz kullanımının önerilmeyişine bütün W3C XML üyelerin katıldığı bir oylamayla [Göreli tanım-yerinin Önerilmeyişi] karar verilmiştir. Bu oylamayla ayrıca, "bu konuda sonraki DOM, XPath, vs. gibi belirtimlerde hiçbir yorum yapılmayacağına" da karar verilmiştir.

2.3 Uluslararası Tanım-yeri Başvurularının Karşılaştırılması

İsim-alanlarını tanımlayan uluslararası tanım-yeri başvuruları, bir ismin belirtilen bir isim-alanına ve iki ismin aynı isim-alanına ait olup olmadığı saptanırken karşılaştırılırlar. İki uluslararası tanım-yerinin aynı dizge olarak ele alınabilmesi için sadece ve sadece bu dizgeler birbirinin aynı, yani aynı karakterleri aynı sırayla içeriyor olmaları gerekir. Karşılaştırma harf büyüklüğüne duyarlıdır ve hiçbir %-öncelemesi yapılmaz veya bunlar yoksayılır.

Bunun bir sonucu olarak, bu anlamda aynı olmayan uluslararası tanım-yeri başvuruları aynı kaynaklara çözümlenebilir. Aşağıda, sadece harf büyüklüğü veya %-öncelemesi bakımından farklı uluslararası tanım yeri örnekleri ile uluslararası tanım-yeri başvuruları farklı temel tanım-yerine sahip harici öğelerde olan örneklere yer verilmiştir (yalnız dikkat edin; göreli uluslararası tanım-yerleri isim-alanı yerleri olarak önerilmemektedir).

Bir isim-alanı bildiriminde, uluslararası tanım-yeri başvurusu, özniteliğin normalleştirilmiş değeridir, yani herhangi bir karşılaştırmadan önce XML karakter ve öğe gönderimlerinin değişimi zaten yapılmış olur.

Örnekler:

Aşağıdaki uluslararası tanım-yeri başvurularının hepsi isim-alanlarını betimleme amacına yönelik olarak harf büyüklüklerinin farklı oluşu sebebiyle farklıdırlar:

  • http://www.example.org/wine

  • http://www.Example.org/wine

  • http://www.example.org/Wine

Aşağıdaki uluslararası tanım-yeri başvuruları da aynı amaca yönelik olarak farklıdırlar:

  • http://www.example.org/rosé

  • http://www.example.org/ros%c3%a9

  • http://www.example.org/ros%c3%A9

  • http://www.example.org/ros%C3%a9

  • http://www.example.org/ros%C3%A9

Bunlar da:

  • http://www.example.org/~wilbur

  • http://www.example.org/%7ewilbur

  • http://www.example.org/%7Ewilbur

Eğer eacute öğesi é olarak tanımlanmışsa, aşağıdaki başlangıç etiketlerinin hepsi p'yi aynı uluslararası tanım-yeri başvurusununa (http://example.org/rosé) bağlayan isim-alanı bildirimleri içerir.

  • <p:foo xmlns:p="http://www.example.org/rosé">

  • ><p:foo xmlns:p="http://www.example.org/ros&#xe9;">

  • ><p:foo xmlns:p="http://www.example.org/ros&#xE9;">

  • ><p:foo xmlns:p="http://www.example.org/ros&#233;">

  • ><p:foo xmlns:p="http://www.example.org/ros&eacute;">

Eşdeğer olması gereken tanım-yeri başvuruları arasındaki uyuşmazlık riskinden dolayı, isim-alanı yerlerinde %-öncelemeli karakterlerin kullanımı kesinlikle göz korkutucudur.

3 İsim-alanlarının Bildirilmesi

Bir isim-alanı (daha doğrusu, bir isim-alanı bağıntısı) bu işlem için ayrılmış bir öznitelik ailesi kullanılarak bildirilir. Böyle bir özniteliğin adı ya xmlns olmalı ya da xmlns: ile başlamalıdır. Bu öznitelikler diğer XML öznitelikleri gibi doğrudan veya öntanımlı olarak sağlanmış olabilir.

İsim-alanı Bildirimi için Öznitelik Adları
[1]   İAÖzNitAdı   ::=   ÖnekliÖzNitAdı
| ÖntanımlıÖzNitAdı
[2]   ÖnekliÖzNitAdı   ::=   'xmlns:' KısaAd[İAK: Kayıtlı Önekler ve İsim-alanı Yerleri]
[3]   ÖntanımlıÖzNitAdı   ::=   'xmlns'
[4]   KısaAd   ::=   KısaAdBaşlKark
KısaAdKark*        /* ":" eksiğiyle XML Ad */
[5]   KısaAdKark   ::=   AdKark - ':'
[6]   KısaAdBaşlKark   ::=   AdBaşlKark | '_'

Özniteliğin normalleştirilmiş değerinin ya bir uluslararası tanım-yeri başvurusu — isim-alanını tanımlayan isim-alanı yeri — ya da boş bir dizge olması ZORUNLUdur. İsim-alanı yerinin, tasarlandığı amaca hizmet etmesi için, eşsizlik ve kalıcılık özelliklerine sahip olması ÖNERİlir. Bir şemanın (varsa) doğrudan bulunup getirilmesi için kullanışlı olmak amaç için yeterli değildir. Tektip Özkaynak Adları [RFC2141] özünde bu hedefle tasarlanmış sözdizimine bir örnektir. Ancak, sıradan adreslerin de aynı amaç doğrultusunda yönetilebileceğine dikkat ediniz.

Eğer öznitelik adı ÖnekliÖzNitAdı ile eşleşiyorsa, KısaAd, bildirimin yapıldığı elemanın etki alanında öznitelik değeri olarak belirtilen isim-alanı yeri ile eleman ve öznitelik isimlerini ilişkilendirmek için bu isimlerin önüne getirilen isim-alanı önekini verir.

Eğer öznitelik adı ÖntanımlıÖzNitAdı ile eşleşiyorsa, öznitelik değerindeki isim-alanı yeri bildirimin yapıldığı elemanın etki alanındaki öntanımlı isim-alanı yeridir. Öntanımlı isim-alanları ve bildirimlerin geçersiz kılınması İsim-alanlarının Elemanlara ve Özniteliklere Uygulanması bölümünde açıklanmıştır.

İsim-alanı öneki edi ile http://ecommerce.example.org/schema isim-alanı yerini ilişkilendiren bir isim-alanı bildirimi örneği:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- "edi" öneki "x" elemanı ve içeriği için
        http://ecommerce.example.org/schema adresine bağdır. -->
</x>

İsim-alanı kuralı: Kayıtlı Önekler ve İsim-alanı Yerleri

xml öneki tanımı gereği http://www.w3.org/XML/1998/namespace isim-alanı yerine bağlıdır. xml öneki bildirilebilir SEÇİMLİK, ancak bu gerekli değildir; ve xml öneki bildirilmemiş olmamalı ZORUNLU veya herhangi bir başka isim-alanına bağlı olmamalıdır ZORUNLU. Bu isim-alanı konumuna başka önekler bağlanmamalı ZORUNLU ve bu isim-alanı öntanımlı isim-alanı olarak bildirilmemelidir ZORUNLU.

xmlns: öneki sadece isim-alanı bağlantı bildirimlerinde isim-alanı önekinin başına getirilerek kullanılır ve tanımı gereği http://www.w3.org/2000/xmlns/ isim-alanı yerine bağlıdır. xmlns: öneki için ayrıca bir isim-alanı bildirimi yapılmamalı veya bildirilmemiş olmamalıdır ZORUNLU. xmlns: önekinin bağlı olduğu konuma başka isim-alanları bağlanmamalıdır ZORUNLU. xmlns: öneki öntanımlı isim-alanı olarak bildirilmemelidir ZORUNLU. xmlns: öneki eleman isimlerine önek yapılmamalıdır ZORUNLU. (Ç.N. - xmlns: dizgesi "isim-alanı önekinin öneki" olduğu halde xmlns "öznitelik ismi"dir ve özniteliği olduğu elemanın etki alanında etkin olacak öntanımlı isim-alanının bildiriminde kullanılır.)

x, m, l üçlüsünün bu sırayla harf büyüklüğü değiştirilerek elde edilen her türlü birleşimi önek olarak ayrılmış olup başka öneklerin başına getirilemezler. Bu, şu anlama gelir:

  • Sonraki belirtimlerce aksi belirtilmedikçe kullanıcılar bunları kullanmamalıdır ÖNERİ.

  • İşlemciler bunları ölümcül hatalar olarak ele almamalıdırlar ZORUNLU.

Bunlar kendilerini ayırmamışlarsa da, x, m, l üçlüsünün bu sırayla harf büyüklüğü değiştirilerek elde edilen her türlü birleşiminin bir önek olmaksızın kullanımına karşı bu isimler korunmuş olup yerel kısmı bunlarla başlayan önekli isimlerin kullanılması makul sayılmaz.

4 Nitelikli Adlar

Bu belirtimle uyumlu XML belgelerde, bazı isimler (Ad tanım terimini karşılayan oluşumlar) aşağıda tanımlandığı gibi nitelikli adlar olarak verilmelidir ZORUNLU.

Nitelikli Ad
[7]   NitelAd   ::=   ÖnekliAd
| ÖneksizAd
[8]   ÖnekliAd   ::=   Önek ':' YerelKısım
[9]   ÖneksizAd   ::=   YerelKısım
[10]   Önek   ::=   KısaAd
[11]   YerelKısım   ::=   KısaAd

Önek nitelikli adın isim-alanı öneki parçasını sağlar ve bir isim-alanı bildiriminde bir isim-alanının uluslararası tanım-yeri ile ilişkilendirilmesi ZORUNLUdur. YerelKısım ise nitelikli adın yerel kısım parçasını sağlar.

Önekin bir isim-alanı yeri için sadece bir yer tutucu olarak işlev gördüğüne dikkat ediniz. Uygulamaların, etki alanı belge boyunca uzanan isimleri oluşturmak için öneki değil, isim-alanı yerini kullanmaları ÖNERİlir.

5 Nitelikli Adların Kullanımı

Bu belirtimle uyumlu XML belgelerde, eleman etiketleri aşağıdaki gibi nitelikli adlar olarak verilirler:

Eleman Etiketleri
[12]   BaşlEtiketi   ::=   '<' NitelAd (B Öznitelik)* B? '>'[İAK: Önek Bildirilmelidir]
[13]   BitişEtiketi   ::=   '</' NitelAd B? '>'[İAK: Önek Bildirilmelidir]
[14]   BoşElemEtiketi   ::=   '<' NitelAd (B Öznitelik)* B? '/>'[İAK: Önek Bildirilmelidir]

Bir eleman türü olarak bir nitelikli ad kullanım örneği:

<!-- 'price' elemanının isim-alanı yeri:
     http://ecommerce.example.org/schema -->
<edi:price xmlns:edi='http://ecommerce.example.org/schema'
           units='Euro'>32.18</edi:price>

Öznitelikler ya isim-alanı bildirimleridir ya da isimleri nitelikli adlar olarak belirtilirler:

Öznitelik
[15]   Öznitelik   ::=   İAÖzNitAdı Eşittir ÖznitDeğeri
| NitelAd Eşittir ÖznitDeğeri[İAK: Önek Bildirilmelidir]

Bir öznitelik ismi olarak bir nitelikli ad kullanım örneği:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- 'taxClass' özniteliğinin isim-alanı yeri:
       http://ecommerce.example.org/schema -->
  <lineItem edi:taxClass="exempt">Bebek Maması</lineItem>
</x>

İsim-alanı kuralı: Önek Bildirilmelidir

xml veya xmlns olmadıkça isim-alanı öneki, ya önekin başına getirildiği elemanın başlangıç etiketinde ya da bir üstküme elemanında (yani önekli elemanı içeren elemanda) önekli isim-alanı bildirim özniteliği (ismi ÖnekliÖzNitAdı ile tanımlanan öznitelik) kullanılarak bildirilmiş olmalıdır ZORUNLU. Bundan başka, böyle bir bildirimin en içteki öznitelik değeri bir boş dizge olmamalıdır ZORUNLU.

İsim-alanı bildirim özniteliği, doğrudan bir XML belge öğesinde değil de, bir harici öğedeki bir öntanımlı öznitelik üzerinden bildirilmişse, bu kural işlemsel zorluklara yol açabilir. Böyle bildirimler, geçerlilik sınaması yapmayan XML işlemciler tarafından okunamayabilir. Çoğu XML uygulaması, isim-alanına duyarlı olanların da buna dahil olduğu varsayımıyla, geçerliliği sınayan işlemci gerektiğinde başarısız olurlar. Böyle uygulamalarla doğru işlem gerekliyse, isim-alanı bildirimleri ya doğrudan ya da DTD'nin dahili altkümesinde bildirilmiş öntanımlı öznitelikler üzerinden yapılmalıdır ZORUNLU.

Eleman isimleri ve öznitelik türleri, DTD içindeki bildirimlerde nitelikli adlarla tanımlanmışlarsa XML belgelerde de nitelikli adlarıyla kullanılmalıdırlar:

DTD Bildirimlerinde Nitelikli Adlar
[16]   belgetürübild   ::=   '<!DOCTYPE' B NitelAd (B DışID)? B? ('[' (imlenimbild | ParÖğeGönd | B)* ']' B?)? '>'
[17]   elemanbild   ::=   '<!ELEMENT' B NitelAd B içerikbelirtimi B? '>'
[18]   içerikparçacığı   ::=   (NitelAd | seçim | sıra) ('?' | '*' | '+')?
[19]   Karışık   ::=   '(' B? '#PCDATA' (B? '|' B? NitelAd)* B? ')*'
| '(' B? '#PCDATA' B? ')'
[20]   ÖznitListBild   ::=   '<!ATTLIST' B NitelAd ÖznitTanımı* B? '>'
[21]   ÖznitTanımı   ::=   B (NitelAd | İAÖzNitAdı) B ÖznitTürü B ÖntanımlıBild

DTD'ye dayanarak doğrulamanın şöyle bir durumda, isim-alanı-bilir olmayacağına dikkat edilmelidir: Bir DTD, eleman ve özniteliklerin, bir belgede (isim-alanı yeri, yerel kısım) çiftleriyle değil de, yorumlanmamış isimleriyle görünebilmesini engelleyebilir. İsim-alanlarını kullanan bir belgeyi DTD'ye dayanarak doğrulatmak için, hem belgede hem de DTD'de aynı önekler kullanılmış olmalıdır. Bir DTD yine de doğrulanmış bir belgede isim-alanı kullanımını isim-alanlarının bildirildiği öznitelik için #FIXED değeri atayarak dolaylı olarak engelleyebilir.

6 İsim-alanlarının Elemanlara ve Özniteliklere Uygulanması

6.1 Önekli İsim-alanları

Bir önek bildiren bir isim-alanı bildiriminin etki alanı, bildirimi içeren başlangıç etiketinin başlangıcından, bu elemanın bitiş etiketinin sonuna kadar uzanır; aynı İAÖzNitAdı parçası ile yapılan iç bildirimlerin etki alanları buna dahil değildir. Bir boş etiket için etki alanı etiketin kendisidir.

Böyle bir isim-alanı bildirimi, bu etki alanı içindeki, bildirimde belirtilen öneke sahip tüm eleman ve öznitelik adlarına uygulanır.

Bir önekli eleman ve öznitelik adının karşılığı olan bir genişletilmiş isim, isim alanı yerini öneke, yerel adı yerel kısıma bağlayan bir uluslararası tanım-yerine sahiptir.

<?xml version="1.1"?>

<html:html xmlns:html='http://www.w3.org/1999/xhtml'>

  <html:head><html:title>Frobnostication</html:title></html:head>
  <html:body><html:p>Moved to
    <html:a href='http://frob.example.com'>here.</html:a></html:p></html:body>
</html:html>

Çok sayıda isim-alanı öneki aşağıdaki örnekte gösterildiği gibi tek bir elemanın öznitelikleri olarak bildirilebilirler:

<?xml version="1.1"?>
<!-- both namespace prefixes are available throughout -->
<bk:book xmlns:bk='urn:loc.gov:books'
         xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <bk:title>Cheaper by the Dozen</bk:title>
    <isbn:number>1568491379</isbn:number>
</bk:book>

Bir önek için bir isim-alanı bildirimindeki öznitelik değeri boş olabilir SEÇİMLİK. Bu, bildirimin içinde yer aldığı etki alanında önekin bir isim-alanı yeri ile ilişkisini ortadan kaldırmak gibi bir etkiye sahiptir. Başka bildirimlerle önek tekrar bildirilebilir SEÇİMLİK:

<?xml version="1.1"?>
<x xmlns:n1="http://www.w3.org">
  <n1:a/>         <!-- geçerli; n1 öneki http://www.w3.org'u bağlıyor -->
  <x xmlns:n1="">
    <n1:a/>       <!-- geçersiz; burada n1 öneki birşey bağlamıyor -->
    <x xmlns:n1="http://www.w3.org">
      <n1:a/>     <!-- geçerli; n1 öneki tekrar aynı yeri bağlıyor -->
    </x>
  </x>
</x>

6.2 Öntanımlı İsim-alanları

Bir öntanımlı isim-alanı bildiriminin etki alanı, bildirimi içeren başlangıç etiketinin başlangıcından, bu elemanın bitiş etiketinin sonuna kadar uzanır; iç öntanımlı isim-alanı bildirimlerinin etki alanları buna dahil değildir. Bir boş etiket için etki alanı etiketin kendisidir.

Bir öntanımlı isim-alanı bildirimi, bu etki alanı içindeki tüm öneksiz eleman ve öznitelik adlarına uygulanır. Öntanımlı isim-alanı bildirimleri öznitelik isimlerine doğrudan uygulanmazlar; öneksiz özniteliklerin nasıl yorumlanacağı kullanıldıkları elemana göre belirlenir.

Eğer etki alanı içinde bir öntanımlı isim-alanı bildirimi varsa, bir öneksiz eleman isminin karşı düştüğü genişletilmiş isim, isim alanı yerini öneke, yerel adı yerel kısıma bağlayan bir uluslararası tanım-yerine sahiptir. Eğer etki alanı içinde hiçbir öntanımlı isim-alanı bildirimi yoksa, isim-alanı yeri bir değere sahip değildir. Bir öneksiz öznitelik adı için isim-alanı yeri asla bir değere sahip olmaz. Tüm durumlarda yerel kısım yerel addır (yani, öneksiz adın ta kendisidir).

<?xml version="1.1"?>
<!-- elemanlar, bu durumda öntanımlı olarak, HTML isim alanındadırlar  -->
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head><title>Frobnostication</title></head>
  <body><p>Moved to
    <a href='http://frob.example.com'>here</a>.</p></body>
</html>

<?xml version="1.1"?>
<!-- öneksiz elemanlar bu sefer "books"tandırlar -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
</book>

İsim-alanının etki alanı için daha büyük bir örnek:

<?xml version="1.1"?>
<!-- başlangıç olarak öntanımlı isim-alanı "books"tur -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
    <notes>
      <!-- bazı açıklamalar için öntanımlı isim-alanı HTML yapılıyor -->
      <p xmlns='http://www.w3.org/1999/xhtml'>
          This is a <i>funny</i> book!
      </p>
    </notes>
</book>

Bir öntanımlı isim-alanı bildiriminde öznitelik değeri boş olabilir SEÇİMLİK. Bu bildirimin etki alanı içinde hiçbir öntanımlı isim-alanının olmayışıyla aynı etkiye sahiptir.

<?xml version='1.1'?>
<Beers>
  <!-- Tabloların içinde öntanımlı isim-alanı HTML'nin isim-alanıdır -->
  <table xmlns='http://www.w3.org/1999/xhtml'>
   <th><td>Name</td><td>Origin</td><td>Description</td></th>
   <tr>
     <!-- tablo gözeleri içinde hiç öntanımlı isim-alanı yoktur -->
     <td><brandName xmlns="">Huntsman</brandName></td>
     <td><origin xmlns="">Bath, UK</origin></td>
     <td>
       <details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
         <pro>Wonderful hop, light alcohol, good summer beer</pro>
         <con>Fragile; excessive variance pub to pub</con>
       </details>
      </td>
    </tr>
  </table>
</Beers>

6.3 Özniteliklerin Eşsizliği

Bu belirtimle uyumlu XML belgelerde, hiçbir etiket

  1. isimleri aynı olan veya

  2. nitelikli adları, aynı isim-alanı yerine bağlı öneke ve aynı yerel kısıma sahip

iki öznitelik içeremez.

Bu kural, hiçbir elemanın genişletilmiş adları aynı olan iki özniteliğe sahip olmaması gerekliliğine eşdeğerdir.

Örneğin, aşağıdaki bad başlangıç etiketlerinin hepsi kuraldışıdır:

<!-- http://www.w3.org isim-alanı yeri olarak n1 ve n2'ye bağlanıyor -->
<x xmlns:n1="http://www.w3.org"
   xmlns:n2="http://www.w3.org" >
  <bad    a="1"     a="2" />
  <bad n1:a="1"  n2:a="2" />
</x>

Bununla birlikte, aşağıdakilerin hepsi kurala uygundur. Öntanımlı isim-alanı öznitelik isimlerine uygulanmadığından ikincisi de kurala uygundur:

<!-- http://www.w3.org isim alanı yeri
     hem öntanımlıdır hem de n1'e bağlanmıştır -->
<x xmlns:n1="http://www.w3.org"
   xmlns="http://www.w3.org" >
  <good a="1"       b="2" />
  <good a="1"    n1:a="2" />
</x>

7 Belgelerin Uygunluğu

Bu belirtim XML 1.1 belgelere uygulanır. Bu belirtime uygun olması için, bir belgenin XML 1.1 belirtimine [XML 1.1] uygun olarak iyi biçimlenmiş olması ZORUNLUdur.

Bu belirtimle uyumlu XML belgelerde, eleman ve öznitelik isimlerinin NitelAd sözdizimi tanımına uygun olması ZORUNLU olup "İsim-alanı Kuralları"nı yerine getirmesi de ZORUNLUdur. Belgedeki, XML 1.1 iyi biçimliliği için, XML Ad sözdizimi tanımıyla eşleşmesi ZORUNLU diğer tüm dizgeciklerin bu belirtimin KısaAd sözdizimi tanımına da uygun olması ZORUNLUdur.

Bir belge bu belirtime uygunsa isim-alanı iyi biçimli belgedir.

Bir isim-alanı iyi biçimli belgede şunlar doğrudur:

Bunlara ek olarak, bir isim-alanı iyi biçimli belge aynı zamanda bir isim-alanı-doğrulanmış belge olabilir.

Bir isim-alanı iyi biçimli belge, eğer XML 1.1 belirtimine göre geçerliyse ve XML 1.1 geçerliliği için eleman ve öznitelik isimleri dışında kalan, XML Ad sözdizimi tanımıyla eşleşmesi gereken tüm dizgecikleri bu belirtimin KısaAd sözdizimi tanımına da uygunsa, o belge isim-alanı-geçerli bir belgedir.

Bir isim-alanı-geçerli belgede şunlar doğrudur:

8 İşlemcilerin Uygunluğu

Bu belirtimle uyumlu olması için bir işlemcinin kurala uygun uluslararası tanım-yerlerine sahip isim-alanlarının sınanmasının gerekmemesi ZORUNLU dışında isim-alanı iyi biçimliliğiyle uyumsuzlukları raporlaması gerekir ZORUNLU.

Bu belirtimle uyumlu geçerliliği sınayan XML işlemciler, ek olarak isim-alanı geçerliliğiyle uyumsuzlukları da raporluyorsa isim-alanı-doğrulayan işlemcilerdir.

A Uyulması Zorunlu Kaynaklar

RFC 2119
RFC 2119: RFC'lerde Gereksinim Seviyelerini Belirtmek için Kullanılan Anahtar Sözcükler. Scott Bradner, ed. IETF (Genel Ağ Mühendisliği Görev Gücü), Mart 1997. Uyulması zorunlu İngilizce sürümü http://www.rfc-editor.org/rfc/rfc2119.txt adresindedir.
RFC2141
RFC 2141: URN Sözdizimi, R. Moats, ed. IETF (Genel Ağ Mühendisliği Görev Gücü), May 1997. http://www.rfc-editor.org/rfc/rfc2141.txt adresindedir.
RFC 3986
RFC 3986: Tektip Özkaynak Betimleyiciler (URI): Soysal Sözdizimi, T. Berners-Lee, R. Fielding ve L. Masinter, eds. IETF (Genel Ağ Mühendisliği Görev Gücü), Ocak 2005. http://www.rfc-editor.org/rfc/rfc3986.txt adresindedir.
RFC 3987
Uluslararası Özkaynak Betimleyiciler (IRI), M. Duerst ve M. Suignard eds. IETF (Genel Ağ Mühendisliği Görev Gücü), Ocak 2005. http://www.rfc-editor.org/rfc/rfc3987.txt adresindedir.
RFC3629
RFC 3629: UTF-8, ISO 10646'nın bir dönüşüm biçimi, F. Yergeau, ed. IETF (Genel Ağ Mühendisliği Görev Gücü), Kasım 2003. http://www.rfc-editor.org/rfc/rfc3629.txt adresindedir.
XML
Genişletilebilir İmlenim Dili (XML) 1.0 (Dördüncü Düzeltme), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler ve François Yergeau eds. W3C (World Wide Web Consortium), 16 Ağustos 2006. Uyulması zorunlu İngilizce sürümü http://www.w3.org/TR/2006/REC-xml-20060816/ adresindedir.
XML 1.1
World Wide Web Consortium. Genişletilebilir İmlenim Dili (XML) 1.1. W3C Önergesi. Uyulması zorunlu İngilizce sürümü http://www.w3.org/TR/xml11/ adresindedir.

B Diğer Kaynaklar (Bilgilendirici)

1.0 Hataları
XML Hata Raporlarında İsim-alanları, W3C (World Wide Web Consortium). http://www.w3.org/XML/xml-names-19990114-errata adresindedir.
1.1 Hataları
XML Hata Raporlarında İsim-alanları, W3C (World Wide Web Consortium). http://www.w3.org/XML/2004/xml-names11-errata adresindedir.
Göreli tanım-yerinin Önerilmeyişi
Bütün W3C XML üyelerinin katıldığı ve İsim-alanlarında Göreli Tanım-yeri Başvurularının Önerilmeyişinin oylandığı Toplantının Sonuçları, Dave Hollander ve C. M. Sperberg-McQueen, 6 Eylül 2000. http://www.w3.org/2000/09/xppa adresinde bulunabilir.
Gereksinimler
XML 1.1'de İsim-alanlarının Gereksinimleri, Jonathan Marsh, ed. W3C (World Wide Web Consortium), Mart 2002. http://www.w3.org/TR/2002/WD-xml-names11-req-20020403/ adresindedir.

C XML İsim-alanlarının İçyapısı (Bilgilendirici)

Bu ek bölüm silindi.

D 1.0 sürümünden beri yapılan değişiklikler (Bilgilendirici)

Bu sürümde 6 Aralık 2002 tarihine kadar olan bütün hata raporları [1.0 Hataları] dikkate alınmıştır. Bellibaşlı iki değişiklik vardır:

Düzeltmenlerce yapılmış çeşitli değişiklikler bulunmaktadır. Bunların bir kısmı terminoloji değişiklikleri ve bir kısmı da tutarlılığı arttırdığı düşünülen eklemelerdir. Ayrıca, bilgilendirici nitelikteki "XML İsim-alanlarının İçyapısı" ek bölümü silinmiştir.

D.1 1.1 sürümünden beri yapılan değişiklikler

Bu sürümde 1.1 sürümünün 1 Haziran 2006 tarihine kadar olan hata raporları dikkate alınmıştır [1.1 Hataları].

1.1 sürümü ilk yayınlandığında, uluslararası tanım-yeri RFC'sinin son sürümü henüz yayınlanmadığından, 1.1 sürümü kendi uluslararası tanım-yeri tanımını içeriyordu. Bu tanım belgeden silinip yerine RFC'ye bir gönderim yerleştirildi.

E Teşekkür (Bilgilendirici)

Bu çalışma çok geniş bir kitlenin katkılarıyla ortaya çıkmıştır. Özellikle W3C XML Çalışma Grubu ve Özel İlgi Grubundan katılımcılarla, W3C Metaveri Etkinliğinden katılımcılar bunlara dahildir. Microsoft'tan Charles Frankston'ın katkıları ayrıca takdire şayandır.