BİLİŞİM - BİLGİSAYAR - EĞİTİM
  ATTRIBUTE'ler ile Çalışmak
 

ATTRIBUTE'LER İLE ÇALIŞMAK



Attribute’ler attribute deklerasyon listesi denilen bir liste içinde aşağıda belirtilen şekilde tanımlanırlar:

<!ATTLIST ElementName AttrName AttrType Default>


Görüleceği gibi bir attribute isim(AttrName) ve tip(AttrType) ve default olmak üzere üç bileşenden oluşmaktadır.Bir attribute deklerasyonu sırasında kullanılabilecek olan dört default değeri vardır:

  • #REQUIRED
  • #IMPLIED
  • #FIXED
  • default



#REQUIRED değeri attribute’ın element için mutlaka gerekli olduğunu belirtir. #IMPLIED değeri attribute ‘ın seçimsel olduğunu ve element için kullanımının zorunlu olmadığını belirtir. #FIXED değeri attribute’a atanacak değerin sabit olacağını ve bunun da attribute’u bir bilginin sabit bir parçası durumuna getireceğini belirtir.

XML 10 tane farklı attribute tipini desteklemektedir:

  • CDATA arse edlmemiş karakter verisi
  • Enumerated :Bir dizi string değeri
  • NOTATION TD içinde herhangi bir yerde tanımlanmış olan notasyon
  • ENTITY: Dışsal bir binary entity
  • ENTITIES Birden fazla dışsal binary entity ler
  • ID :Unique bir tanımlayıcı
  • IDREF: DTD içinde tanımlanmış olan bir ID ye refere edilen değer
  • IDREFS: DTD içinde birden fazla ID lere refere edilen değerler
  • NMTOKEN: XML token değerlerini içeren isim
  • NMTOKENS:XML tone karakterlerini içeren isim boşlukları


String Attribute’leri
String attribute ler CDATA tarafından gösterilen ve en çok kullanılan attribute tipidir.CDATA tipi attribute’ın bir metin stringini içereceğini belirtir.Aşağıdaki örnekte CDATA tipi ile beraber oyuncu elementinin kullanılışı gösterilmiştir:

<!ATTLIST oyuncu takim CDATA #REQUIRED>


Bu örnekte oyuncu ‘nun ait olduğu takim’in oyuncu elementi için gerekli olan bir karakter verisi attribute dur.Bu takim attribute’ını seçimsel duruma getirmek isteseydik:

<!ATTLIST oyuncu takim CDATA #IMPLIED>


şeklinde kullanmamız gerekirdi.

Burada karşımıza önemli bir soru çıkmaktadır:XML parser acaba string attribute tipini diğerlerinden nasıl ayırdedebilmektedir?

Bir XML parser CDATA attribute değerinin işleme konması sırasında boşlukların tümünü reserve eder.Satır sonlarının whitespace boşluklarına dönüştürülme işlemi string attribute değerinin normalizasyonu olarak adlandırılır.

Enumerated Attribute’ler
Bu tür attribute ler daha önceden tanımlanmış bir metin dizisinin listesini içerirler.Enumerated tipi CDATA tipine benzemektedir ancak bu veri tipinde kabul edilebilir attribute değerleri attribute listesi deklerasyonu içinde sağlanmaktadır.Daha önce vermiş olduğumuz örneği biraz daha geliştirelim.oyuncu elementine enumerated bir attribute değeri olan pozisyon bilgisini de ekleyelim

<!ATLIST oyuncu pozisyon (ortasaha | forvet | savunma | kaleci ) "ortasaha">


Bu örnekte pozisyon değerinden birini seçebilmekteyiz.Eğer hiçbir şey seçmezsek default değer olan "ortasaha" devreye girmiştir.

Notasyon Attribute’ler
Enumeration attribute’ın özel bir kullanımı da notasyon attribute leridir.Notasyonlar DTD içinde biryerlerde tanımlanmış olan bir liste olarak düşünülebilir.Bu deklerasyonu DTD içerisinde NOTATION anahtarsözcüğünü kullanarak şu şekilde yazabiliriz:

<!ATTLIST image format NOTATION (gif | jpeg) #REQUIRED)>

Dikkat edilirse #REQUIRED sembolü attribute’un gerekli olduğunu belirtmeye yarıyordu.Enumerated attribute değerleri opsiyonel de olabilir.Bunun için #IMPLIED terimini kullanmamız gerekir.


Tokenize Attribute’ler
XML tarafından desteklenen son attribute tipi tokenize attribute’lerdir.Bunlar XML parser tarafından attribute’ların token larına ayrıştırılması işlemini yaparlar.XML parser bu token’larına ayrıştırma işlemi sonucunda tüm boşluk ve tek karakter sembollerini eleme işlemine tabi tutar. ENTITY,ENTITIES,ID,IDREF,IDREFS,NMTOKEN ve NMTOKENS tokenized attribute tipleridir.

ENTITY ve ENTITIES tipleri entity lere refere olmak için kullanılır.Örneğin image’ler tipik olarak binary entity’ler şeklinde refere olurlar.ENTITIES tipi ENTITY e benzemektedir ve bir entity listesi oluşturmamıza yararlar.Aşağıda ENTITY attribute tipinin reference işleminin oluşturulması gösterilmiştir.

<!ATTLIST bolum id ID #REQUIRED>


IDREF ve IDREFS tipleri ID lere yapılacak olan reference’leri belirtmek için kullanılır.Bu tipler ID tipine benzerler ancak burada akılda tutulması gereken şey bunların kendilerinin de unique yapıda olmalarıdır.

NMTOKEN ve NMTOKENS attribute tipleri token isim değerlerini içerirler.Bir isim token, string yapıda olan bir metin değeridir.Genelde isim token değeri sadece tek bir ismi içerir ve boşluk içermez.

Birden Fazla Attribute Deklerasyonu
Buraya kadar olan bölümde ayrı attribute’lerin örneklerini gördük.Elbette elementler birden fazla attribute içerebilirler.Bir elementin tüm attribute değerlerini tek bir attribute list’te tutmak elbette en mantıklı çözümdür.Aşağıda buna ilişkin bir örnek görülmektedir:
 
 
  Bugün 57 ziyaretçi (94 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol