Banner

index prev next

Ek-5

Sayfa 2


DTD Yazılımın Okunması (2)

Yorumlar :

Yorumlar, bir DTD içinde yapılmış tanımları belirmek için kullanılır. DTD de yorumlar aynı HTML de olduğu gibi <!--Yorum--> şeklinde yazılır. Örnek :

 bir yorum satırıdır. Yorum satırları, belge tipi bildiriminin çözümlenmesinde (parsing) değerlendirilmezler ve sadece okuyucuyu bilgilendirme, yazılanaların daha anlaşılır olması gibi amaçlar için kullanılırlar. HTML belgelerinde olduğu gibi, DTD bildirimlerinde de gereği kadar yorum kullanılması yararlı olmaktadır.

SGML Temel Değer Tipleri ve Anahtar Sözcükleri :

 DTD de nitelik tanımları gibi, çeşitli durumlarda verilecek değerler, önceden tanımlı SGML temel değer tiplerinden (tokens) yararlanılanılarak yapılabilir. HTML DTD sinde kullanılmış olan CDATA, ID, NAME , IDREF, IDREFS, NUMBER, #PCDATA, anahtar sözcükleri Ek-3 de incelenmiştir. Burada ek olarak, SGML anahtar sözcükleri (keywords) olarak adlandırılan,  DTD de kullanılmış, aşağıdaki sözcükler incelenecektir :

#REQUIRED (gerekli) Bu değer, kullanıcı tarafından mutlaka atanmalıdır. Örnek olarak bir resmin yer bilgisinin (kaynağının) belirtilmesi gereklidir, çünkü bu resim ancak belirtilecek yerde bulunup görüntülenebilir. Belge çözümleyicinin bunu önceden bilmesi olanak dışıdır.

#IMPLIED (içsel) Bu değerin kullanıcı tarafından atanması isteğe bağlıdır. Kullanıcı bu niteliğe bir değer atayacak olursa bu değer varsayılan değer olarak kabul edilir. Eğer hiç bir değer atanmazsa, hiçbir değer atanmamış kabul edilir. Hiçbir değer atanmamış olması durumunda, belge çözümleyiciler gerekirse kendi içsel yöntemlerini kullanırlar. Örnek olarak bir elementin görüntülenmesinde style nitleği kullanılabilir. Kullanıcı style niteliğini belirtirse, belge çözümleyici stil bu kurallarını uygulamaya çalışır. Eğer kullanıcı bir stil tanımlamamamışsa, belirtilen stil kuralı desteklenemiyor veya tanınmıyorsa, o zaman belge çözümleyici kendine özgü içsel yöntemi kullanarak belgeyi görüntülemeye çalışır.

AttValue (varsayılan) Bu değerin kullanımı isteğe bağlıdır ve eğer kullanılmazsa, çözümleyici, önceden belirtilmiş varsayılan değeri otomatik olarak atayacaktır.

#Fixed AttValue Bu niteliğin değeri, DTD de değişmez bir sabit olarak atanmıştır. Belge içinde bu değerin değiştirilmesi olanağı olmadığından niteliğin kullanıcı tarafından belge içinde belirtilmesi de gereksizdir.

Varlıklar (Entities):

Varlıklar, bir sabitin tanımlanmasının diğer bir adıdır. İki türlü varlık tanımlanabilir. Bunlar, Genel Varlıklar ve Parametre Varlıkları olarak adlandırılır.

Genel varlıklar,

<!ENTITY name CDATA "replacement text">

<!VARLIK isim ÇÖZÜMLENMEMİŞ KARAKTER VERİSİ "yerine geçecek metin">

şeklinde tanımlanır. Genel varlıklar, yeni tanımların oluşturulması için kullanılır. Örnek olarak, ampersand karakteri bir #PCDATA çözümlenmiş karakter dizini verisinde kullanılmaz. Bunun yerine ampersand karakterini belirtecek bir karakter karşılığı kullanılabilir. Bu sözcük bir varlık olarak tanımlanırsa, çözümleme sırasında, DTD de genel bir varlık olarak tanımlanmış olan bu karakter dizini, ampersand olarak çözümlenir. Ampersand karakter karşılığı,

olarak tanımlanır. Bu tanım, HTML için DTD de gösterilmeyen bir varsayılan varlık tanımıdır.

şeklindedir. Burada kullanılan % işareti tanımlanan varlığın bir parametre varlığı olduğunu belirtir.

Örnek,

Bu örnekte, Character olarak tanımlanan değere, bir CDATA verisi atanabileceği bildirilir. Bu CDATA tipi verinin ISO/IEC 10646-1 (UCS karakter seti spesifikasyonu) ile belirtilmiş karakterlerden birisi olması gereği açıklamada belirtilmiştir. --açıklama-- Kısmı bir yorum olarak konulmuştur ve yorumların <!--yorum--> yapısı ile tam olarak tutarlıdır.

Bir başka örnek,

şeklindeki tanımdır.

Bu son tanımlanan parametre varlığı bir başka parametre varlığının tanımında aşağıdaki gibi kullanılmıştır :

Yukarıdaki örnekte görüldüğü gibi, bir tanımdan yararlanarak diğer bir tanım oluşturulması, ifadeleri çok kısaltabilmektedir. Bu tanımda bulunan %LanguageCode parametre varlığının bitiminde, bir noktalı virgül kullanılmış olmasına karşın, parameter varlıkların kullanımında noktalı virgül ile sonlandırma zorunluğu yoktur.

Uluslararasılaştırma niteliği olarak da adlandırılan i18n parametere varlığının, ikinci satırdaki tanımındaki dikey çizgi, iki olasılıklı tek seçimli bir seçenek ifadesidir. Burada duruma göre ya soldan sağa, ya da sağdan sola yazılış yönünün seçimi söz konusudur.

%LanguageCode ve dir parametre varlıklarının değerlerinin belirtilmesi koşulu, #IMPLIED olararak belirtilmiş olduğundan, her iki niteliğin de belirtilmesi isteğe bağlıdır ve bu değerler belirtilmezse çözümleyici bu parametrelerin değerleri olarak kendi içsel değerlerini atayacaktır. Burada, eğer dil niteliği belirtilmezse, belgenin İngilizce dilinin kurallarına göre değerlendirileceği, yazılış yönünün de soldan sağa olacağı, açıkça (explicit) olarak DTD de görülmüyorsa bile, önceden belirlenmiştir.

Parametre varlıkları tanımına diğer bir örnek, Generik Nitelikler arasındaki Çekirdek Nitelikleri (Core Attributes) nitelik sınıfının, bir parametre varlığı olarak tanımının yapılmasıdır. Bu tanım, aşağıda görülmektedir :

Bu şekilde tanımlanan çekirdek nitelikleri, bir başka tanımı kısaltacak şekilde, aşağıda görüldüğü gibi kullanılabilmektedir :

Mantıksal Bağlaçlar :

Yukarıdaki örneklerden birinde dikey bir çubukla ayrılan iki ifadeden birinin seçilebildiği, bir tek olasıklı seçenek gurubu gördük. Bu gibi mantıksal bağaçların kullanıldığı seçenek ifadeleri, aslında yüksek düzey bilgisayar dilleri için çok alışılmıştır. DTD de kullanılmış olan mantıksal bağlaçlar,

I(Dikey Çubuk) "veya" anlamına gelir. Seçeneklerden sadece biri seçilebilir.

& (Ampersand) "ve" anlamına gelir. İçeriğin tüm ögelerinin, belirli bir sıra gözetilmeksizin kullanılması gerektiğini belirtir.

, (Virgül) "dizi" anlamına gelir. İçeriğin tüm ögelerinin belirtilen sırada kullanılması gerekir.