Ekler.png

Index.htm Next

Ek-3

Sayfa 1


Nitelik Değerleri (1)

SGML Temel Değer Tipleri (Tokens)

Nitelik değerleri, element niteliklerinin alabilecekleri değerlerdir. Aynı guruptaki elementlerin nitelikleri genel olarak birbiri ile aynı değerler alır. Her element incelenirken, nitelikleri ve bu niteliklerinin alabilecekleri değerler de incelenir. Doğal olarak, niteliklerin alabileceği değerleri her defasında açıklamak, hem yorucu olacak, hem vakit kaybı yaratacak, hem de HTML kodlarını açıklayacak belgeler gereksiz yere büyüyecektir. Bu olumsuzluğun önlenmesi için, W3C tavsiyelerinde, niteliklerin alabilecekleri değerlerin kodlanması için belirli kalıplar oluşturmuştur. Bu kalıplar, bir tür kısaltılmış tanımlar olarak düşünülebilir. Burada, bu kısaltılmış tanımlar açıklanacaktır.

Büyük/Küçük Harf Ayrımı

Her nitelik değerinin, alacağı değerlerin büyük/küçük harf ayrımı yapıp yapmadığı konusunda belirli kabuller vardır. Aşağıda, bu konudaki kısaltmalar görülmektedir :

[YD](Yazılışa Duyarlı) : Büyük/küçük harf ayrımı yapar ( belge çözümleyiciler, "A" ve "a" karakterlerini farklı değerlendirirler).

[YZ] (Yazılışa Duyarsız) : büyük/küçük harf ayrımı yapmaz ( belge çözümleyiciler, "A" ve "a" karakterlerini aynı karakter olarak değerlendirler).

[YN] (Yazılışa Nötr) : büyük/küçük harf ayrımına bağlı değildir, çünkü kendisi bir sayı veya belge karakter setine (belge karakter kodlamasının kapsadığı karakterlere) ait bir karakterdir.

[ka] (Kendinden Açıklamalı) : Elementin veya niteliğin kendisi alacağı değerin, büyük/küçük harf ayrımını açıklayıcı niteliktedir.

[TB] (Tipe Bağlı) (DTD ye Bakınız) : Niteliğin büyük/küçük harf ayrımına duyarlı olup olmadığının DTD tip tanımlamasından incelenmesi gerekir.

Eğer nitelik değeri bir liste ise ve eğer farklı bir uyarı yapılmamışsa, nitelik değerinin özelliği, tüm liste elemanları için uygulanır.

SGML Temel Nitelik Değerleri

Belge Tipi Bildirimi (DTD), HTML elementlerinin nitelik değerlerini, #PCDATA, CDATA, NAME; ID gibi SGML temel değer tipleri (tokens) göre açıklar. Bu değer tipleri, bir tür şablon olarak da kabul edilebilr. Bu temel değerlerin tam açıklaması [ISO 8879] da verilmiştir. Bazı SGML temel değer tipleri aşağıda görülmektedir:

CDATA : (CHARACTER DATA) belge karakter seti kapsamındaki karakterlerden oluşan bir karakter dizisidir ve karakter varlıklarını (bk. Ek 2 ) da içerebilir. CDATA değerleri, program adımı kabul edilen veriler dışında, <element> şeklinde element tanımları içeremezler, fakat &lt;element&gt; şeklinde karakter varlıklarının kullanıldığı tanımları içerebilirler. CDATA Değerlerinin ilk karakterleri boşluk karakteri olmamalıdır. Belge çözümleyiciler, " Büyükdere " şeklindeki değerleri "Büyükdere" olarak değerlendirebilirler. Bazı HTML elementlerinde, CDATA tipindeki nitelik değerlerinde kullanılabilecek karakterler üzerinde ek kısıtlamalar bulunabilir. <style> ve <script> Elementleri, içerik modellerinde CDATA tipinde değerler kabul etmelerine rağmen, bu değerler belge çözümleyiciler tarafından program adımları olarak kabul edilirler. Program adımlarında, karakter varlıkları ve <element> şeklinde HTML etiketleri kullanılabilir.

ID ve NAME (isimlendirme şablonları ) : Bu nitelik değerleri, ıngiliz Alfabesine ait alfabetik bir karakterle [A..Z a..z] başlayarak, istendiği kadar alfabetik karakter, sayısal karakter (0-9), bağlaç ("-"), alt bağlaç ("_"), kolon (":") veya periyod (".") ile devam edebilir. id ve name Nitelikleri bir elemente kimlik kazandırmak için kullanılırlar. Karıştırılmaması için yeniden belirtelim :

id (kimlik) Bir niteliktir ve değeri ID şablonuna uygun bir değerdir. (id="ID")

name (isim)Bir niteliktir ve değeri NAMEşablonuna uygun bir değeridir. (name=" NAME")

ID ve NAME Nitelik değerleri aynı kimlik veri uzayını paylaşırlar ve elementlere kimlik niteliği verirler. Kimlik verileri tüm belge içinde , sadece bir tek, eşsiz (unique) bir değer olmalıdır. Yani bir ID veya NAME nitelik değeri, bir belge içinde sadece bir kez bir id veya name niteliğinin değeri olarak kullanılabilir ve aynı ID veya NAME nitelik değeri bir kez daha başka bir elementin id veya name niteliğinin değeri olarak kullanılamaz. Örnek olarak, bir belgede id="flist" olarak bir elemente kimlik vermek için kullanılmış olsun, başka bir element için name="flist" veya id="flist" kullanılamaz. NAME Nitelik değerleri karakter varlıkları da içerebilir. name Niteliği daha eski bir teknolojinin ürünüdür ve olanaklar ölçüsünde, elementlere kimlik vermek için id niteliği yeğ tutulmalıdır. Yine de belge çözümleyiciler, özellikle form-kontrol grubu elementlerine name niteliğinin kullanımı ile verilen kimlik değerlerini daha iyi değerlendirmektedirler. XHTML spesifikasyonu ilerdikçe name niteliğinin kullanımı ortadan kalkacaktır. Bugün için belge çözümleyicilerin name niteliğine bağımlılığı olduğundan id niteliği henüz yeterince destek alamamaktadır.

idref ve idrefs : Başka nitelikler için verilmiş id değerleri için başvuru (referans) değerleridir. idref tek bir değer, idrefs virgülle ayrılmış değerler listesidir.

sayı : Bu değerler en az bir sayısal karakter (0-9) içermelidir.

#PCDATA: (PARSED CHARACTER DATA) Bu içerik modeli, çözümlenmiş karakter verisi (parsed character data) anlamına gelir. Bu karakter dizisindeki karakterlerin içinde, karakter varlıkları ve sayısal karakter karşılıkları bulunabilir fakat, element işaretlemesi için kullanılan <, & (ampersand) veya > karakterleri bulunamaz. Çünkü belge çözümleyiciler bu karakterleri, işaretleme (markup) olarak algılarlar. Bu konuda XML spesifikasyonunu da gözetip,

ifadesinde kullanılan ]]> karakter dizgisinden de kaçınmak doğru olur.

Karakter Dizisi (Metin)

DTD de %Text ifadesi ile belirtilen nitelik değeri, insanlar tarafından okunabilen nitelikte CDATA şablonuna uygun metin değeri olarak uygulanır. Bu değere, karakter dizgisi (character string) adı verilir. Metin nitelik değerleri, küçük büyük harf yazılımına duyarlıdır.

URI Değerleri

URI değerleri Ek-1 de incelenmiştir. URI bilgileri, URL değerlerini de içermektedir. [RFC1738], [RFC1808]. Bağıl URI değerleri, normatif bir yöntemle, temel URI değerlerine eklenerek mutlak URI değerleri hesaplanır. URI değerleri aslında büyük/ küçük harf ayrımı yapmaz fakat kaynakları içeren bilgisayarların işletim sistemleri büyük/küçük harf ayrımı yapabilir, özellikle UNIX türevleri dolayısı ile LINUX bu ayrımı katı bir şekilde uygular. Bu nedenle güvenli bir kullanım için, küçük harflerin kullanılması sağlık verilmektedir. Aslında en doğru kullanım, kaynağın belirttiği tipografiye sadık kalmaktır.

Renk Değerleri

DTD de belirtilen %Color nitelik değerleri, [sRGB] bildirisinde verilen renk değerleri kullanılarak belirtilir. Renk değerleri, ya diyez işaretini takibeden bir Hex değer, ya da RGB ondalıklı değerleridir. Renk niteliklerinin daha geniş bir incelenmesi, CSS3 renk modülünde yapılmıştır.

Renk nitelik değerleri, HTML 4.01 kesin spesifikasyonuna göre, sadece CSS bildirimleri ile kullanılacaktır. Bu konunun duyarlıkla uygulanması sağlık verilir.

Uzunluklar

Uzunluklar için HTML üç tür nitelik değeri öngörülmektedir :

  1. Piksel : Bu tür değerler DTD de %Pixels olarak belirtilir. [ CSS1 ] spesifikasyonunda, piksel birimi üzerine açıklamalar verilmiştir. CSS konusunda da piksel birimi tanımlanmıştır.

  2. Yüzde Bağıl Uzunluk : DTD de %Length olarak belirtilen bu büyüklük, kullanılabilen uzunluğun % değerini belirtir. Örnek olarak %25, kullanılabilecek uzunluğun %25 i anlamına gelmektedir.

  3. Bağıl Uzunluk : Bu değer, DTD de %Multilength olarak belirtilen nitelik değerleridir. Bu değerler, tablolar gibi yan yana olan element değerlerinin her birinin göreli uzunluğunun belirtilmesi amacı ile kullanılır. Bu değerler, tablo sütunları için verildiğinde, sabit değerler olan sütun uzunluklarının toplam piksel veya uzunluk miktarı ya önceden belirtilir veya bilgisayar tarafından sütün içeriklerine göre otomatik olarak saptanır. Bundan sonra her sütun uzunluğu, bir tamsayı değerini takip eden * değerleri olarak verilir. Sütunun uzunluğu, asteristik işaretinin önündeki tamsayı değerine orantılı olacakır. Toplam uzunluk değeri, asteristikslerin önündeki tamsayıların toplamına bölünerek bağıl uzunluk temel değeri bulunur. Her sütunun bağıl uzunluğunu belirten asteristik önü tamsayı değeri, bağıl uzunluk temel değeri ile çarpılarak, sütunun uzunluk değeri bulunur. Örnek olarak bir tablonun toplam uzunluğu 60 piksel olsun. Sütun uzunlukları, 1*,2*,3* olarak istensin. Tamsayılar toplamı, (1+2+3)=6 dır. Toplam piksel sayısı 60 olduğuna göre, bir bağıl uzunluk birimi 60/6=10 piksel dir. Bu hesaba göre, birinci sütunun uzunluğu, 1x10=10 piksel, ikinci sütunun uzunluğu, 2x10=20 piksel, üçüncü sütunun uzunluğu, 3x10=30 piksel olacaktır. Bağıl uzunluk değerleri belge çözümleyiciler tarafından iyi değerlendirilir ve tutarlı bir görünüm sağlarlar. Kullanılmaları sağlık verilir. Uzunluk değerleri sayısal olduklarından, büyük/küçük harf duyarlığı söz konusu değildir.

İçerik Tipleri

ıçerik tipleri, DTD deki %ContentTypes parametre varlığı bildirimine karşı gelmektedir. ıçerik tipleri, yazılımda, küçük/büyük harf ayrımı yapmaz. Küçük büyük harf yazılımında, i karakterinin büyük harf karşılığının ı değil I olduğuna dikkat edilmelidir. Örnek olarak, image sözcüğünün eşdeğeri, ımage değil, Image olarak yazılmalıdır. [RFC2045] ve [RFC2046] içerik tipleri, içerik alt tipleri, karakter setleri erişim tipleri (access types) ve Multipurpose Internet Mail Extensions MIME mail transformasyon değerlerinin Internet Assigned Numbers Authority IANA tarafından kaydedilmesini zorunlu kılmıştır. Sık uygulanan içerik tip örnekleri olarak, "text/html", "image/gif", "image/png", "video/mpeg", "text/css", "audio/basic" verilebilir, IANA da media-types olarak kayıtlı içerik tiplerinin listesinin en son sürümü , Ek-3 Sayfa 3 de verilmiştir. Belge çözümleyicilerin Ek-3 Sayfa 3 de görülen içerik tiplerinin tümünü desteklemedikleri ve bu değerlerin kullanımının ayrı bir uzmanlık istediği de unutulmamalıdır. Başlangıçta, yaygın olarak kullanılan alışılmış içerik tiplerinin dışına çıkmamakta yarar bulunmaktadır. Alışılmadık bir içerik tipi kullanılması gerektiğinde, bu içerik tipine belge çözümleyicilerin desteği dikkate alınmalıdır.

Dil Kodları

Dil kodları, DTD nin %LanguageCode parametre varlığı ifadesine karşılık gelen nitelik değerleridir. Bu kodların kullanım yöntemleri, [RFC1766] da belirlenmiş, HTTP/1.1 protokolunu tanımlayan, haziran 1999 daki [RFC2616] bildirimi aynı yazılımı yeniden doğrulamıştır. Dil kodlarının oluşturulması yöntemleri, en son [RFC3066] da yenilenmiştir. Bu en son yazılım yöntemine göre dil kodları,

dil kodu = birincil kod ("-" ikincil kod)

şeklinde belirtilecektir. Sadece birincil dil kodunun tanımlanması yeterlidir. Birincil ve ikincil dil kodları, ençok 8 er tane, 1-127 arası US-ASCII (yani 7-bit ASCII) karakterleri kullanılarak tanımlanabilir. Dil kodu değerleri boşluk içeremez ve küçük harf/büyük harf yazılması farketmez.

[RFC1766] ve [RFC3066] da belirtilen dil niteliği belirtme yöntemleri çok kapsamlıdır ve bu daha fazla bilgi için bu belgelerin orijinallerinin incelenmesi gerekir. Bu belgelerde özetle,

belirtilmiştir.

Birincil dil kodları, 28/4/2002 de sonuç belgesi halini almış olan [ISO 639-1-2002] da tanımlanmıştır. Bunlar arasında, tr (Türkçe), en (ıngilizce) , fr (Fransızca), de (Almanca), it (Italyanca), nl (Felemenkçe), el (Yunan, Elen), es (ıspanyolca), pt (Portekizce), ar (Arapça), he (ıbranice), ru (Rusça), zh (Çince), ja (Japonca), hi (Hindi), ur (Urdu), and sa (Sanskritçe) dilleri sayılabilir. [ISO632-1] dil kodları, Ek-3 Sayfa 4 de verilmiştir. ıkincil dil kodları, [ISO3166] spesifikasyonununda belirtilmiş olan, iki karakterlerli ülke kodları olarak tanımlanmıştır. [ISO3166] da belirtilen ülke adı kodları, Ek-3 Sayfa 5 de verilmiştir. Her iki kodun birlikte kullanımı ile, örnek olarak, Amerikan ıngilizcesini belirten en-us, Kanada Fransızcasını belirten fr-ca şeklinde dil kodları oluşturulur. Örnek bir uygulama aşağıda görülmektedir :

Dil bildiriminde bazen, eksantrik dillerin bildirimi de yapılabilir :

lang="i-navajo"

bildirimi, Navajo yerlilerinin dillerini belirtir. Dil konusunun ne kadar ciddi olduğu ıkinci Dünya Savaşında bir Navajo yerlileri tarafından gerçekleştirilen bir özel iletişim öyküsü olan "The Wind Talkers" filminde işlenmiştir. Başında bulunan i- takısı, bu dilin IANA onaylı olduğu bir dil olduğunu belirtmektedir. "x-" temel dil bildirimi ise deneysel ve özel bir dil sentaksına işaret eder. Örnek :

lang="x-klingon"

x-klingon dili, uzay yolu dizisindeki, savaşçı dünya dışı ırk Klingon ların dilidir. Bu dilin IANA tarafından onaylanmamış olduğu görülüyor, ama bu dilin bir de IANA tarafından onaylanmış i-klingon versiyonu bulunmaktadır. IANA tarafından onaylanmış dil kodları Ek-3 Sayfa 6 de verilmiştir.

Geçerli dil kodlarının oluşturulması için, çeşitli kuruluşlar çaba harcamaktadırlar. Dünya üzerinde konuşulan tüm yeni ve eski dillerin belirlenerek kodlanması kolay gerçekleştirilecek bir çaba değildir. Yeni dil kodlarının üç karakterden oluşması ve birincil ve ikincil dil kavramlarının olmaması şeklinde bir eğilim görülmektedir. Bu çalışmaları yapan guruplardan birisi ANSI/NISO kurumudur. Bu gurubun oluşturduğu geliştirilme aşamasındaki bir liste yayımlanmıştır. Aynı konuda, SIL (Ethnologue) ve Linguasphere de kapsamlı çalışmalar yürütmektedir. Bu gurupların katkıları ile, [ISO 632-1] deki iki karakterli kodların zamanla terkedileceği ve [ISO 639-2] deki üç karakterli kodların daha da geliştirilerek, daha kapsamlı ve daha güncel, üç karakterli dil kodları halinde bir standartlaşmaya gidileceği anlaşılmaktadır. [ISO-639-2] Üç karakterli dil kodları, Ek-3 Sayfa 6 de verilmiştir. Dil kodlarının oluşturulması konusunda son gelişmeler, Robin tarafından özetlenmiştir.

Dil kodları, henüz belge çözümleyicilerin hiçbiri tarafından değerlendirilememektedir. Aslında, IANA'ya kayıt ve onay için gönderilen dil kodları ve karakter setleri, hiç bir teknik içerik ile gönderilmemekte, sadece NAME ve kısıtlı referans ile onaya sunulmaktadır. Bu konuda Ek-4 Sayfa 7 de verilen onay örneklerinde başvuru örnekleri görülebilir.

Yeni araştırmalar, dünyada konuşulan 6000 civarında dil olduğunu ortaya koymuştur. Web belgelerinin dil bilgisi kontrollerinde, sayılar ve tarihlerin yazılımında, özellikle yazı karakterleri ve yazım yönünün belirlenmesinde ve bir dili konuşan kültür için ayırdedici tüm karakteristiklerin değerlendirilmesinde, geçerli dil kodlarına gereksinme duyulmaktadır. Bu işlevlerin sağlanabilmesi için, öncelikle geçerli dil kodlarının belirlenmesi ve bu kodların belge çözümleyicilerde değerlendirilmesi için programların geliştirilmesi gerekmektedir. Kapsam büyüktür ve sorun da bugüne kadar da çözülebilmiş değildir, fakat çabalar devam etmektedir.

Script Verileri :

Script verileri, <script> elementinin içeriği olabildiği gibi, onclick, onfocus gibi olay niteliklerinin değeri de olabilir. Script verileri program adımlarıdır. Script verilerinde büyük/küçük harf ayrımı programın yazıldığı script diline bağlıdır.

Script program adımları HTML nesnelerine referans verebilirler. Bu durumda, bu nesnelere id veya name niteliklerinden yararlanarak erişebilirler. Erişim için id veya name niteliği kulanılabilir. Bir nesne için id veya name niteliklerinin ikisi de verilmişse, name niteliği öncelik alır, yani nesneye erişim için name niteliği kullanılır. Olayı daha yakından inceleyelim, nitelik listesinde id ve name niteliklerinin ikisi de bulunan bir element için hem id hem de name nitelikleri kullanılarak iki ayrı kimlik verilebilir. Eğer bu iki niteliğin değerleri farklı ise element farklı iki kimlik kazanmış olur ve öncelik name kimliğine verilir. Eğer hem id hem de name niteliklerinin değeri aynı ise, elementin tek bir kimliği olur. ılk bakışta gereksiz gibi görülebilecek bu aynı kiliğin iki ayrı nitelikte bildirimi, XHTML kodlamalarında gerekli olabilir. Bunun nedeni, spesifikasyonun id niteliğini kabul etmesine rağmen, belge çözümleyicilerin name niteliğini desteklemekte devam etmeleridir. Bu çelişki, ancak uygulamanın kurama uyum sağlaması ile aşılabilecektir.

Stil Verileri :

Stil verileri, <style> elementinin içeriği olabileceği gibi, elementlerin style niteliklerinin değeri de olabilir. Stil verileri, özel bir script dili verileri olarak düşünülmelidir. HTML ile kullanılan stil dili CSS dir. CSS program adımları, yazılışa duyarlı değildir, yani küçük/büyük harf ayrımı yapmaz.