İçerikler :

? Operatörü * Operatörü #FIXED #IMPLIED #REQUIRED + Opera ATTLIST Attribute Tanımlanırken Verilen Ek Bilgiler v.. Basit Cardinality Operatorü Kullanımları Bir DTD Parçası Örneği Br Etileki İçin DTD Cardinality Operatörleri Cardinality Operatörleri Listesi DOCTYPE DTD'de Kullanılan Tanımlamlar (Declaration) DTD (Döküman Tip Tanımlaması-Document Type De.. DTD de Basit Bir External General Entity Örne.. DTD de Basit Bir General Entity Örneği DTD de Basit Bir Parameter Entity Örneği DTD de Bir GIF Unparsed External General Enti.. DTD Entity Tipleri DTD İle Bir Elemente İki Atrribute Eklenme Ör.. ELEMENT EMPTY ENTITY External (Harici) DTD Tanımlaması External Entity General Entity Internal (İç) DTD Tanımlaması Internal Entity İçinde İki Eleman Bulunan Elementin DTDsi NDATA NOTATION Parameter Entity PUBLIC Sadece Karakter İçeren Element İçin DTD SYSTEM

Bu Sayfayı Paylaş:

Kavram

DTD (Döküman Tip Tanımlaması-Document Type Definition)

Tanım: Bir markup dilinde (HTML, XHML , XML vb..) kullanılan dökümandaki elementleri, attirebuteleri ve bu özelliklerin birbirileriyle olan ilişkileri, kullanım sayısı gibi özelliklerini belirtmek için kullanılır. Döküman DTD'ye göre değerlendirilerek valid (doğru) olup olmadığı anlaşılabilir

Örnek

Bir DTD Parçası Örneği

Aşağıda basit bir DTD örneği görülmektedir : 

<!ELEMENT isci(ad,soyad)>

<!ELEMENT ad (#PCDATA)>

<!ELEMENT soyad (#PCDATA)>

Yukarıdaki örnekte içinde karakter kabul eden ad ve soyad adında iki element tanımlanmıştır. Bu iki elementi içeren isci adında başka bir element tanımlanmıştır. Bu şekilde bir DTD tanımlandığından örneğin isci element ad elementinin içinde kullanılamaz. 


Kavram

DOCTYPE

Tanım: HTML ve XHTML'de dökümanın (sayfanın) tipini belirtmek için kullanılan tanımlama (declaration). Versiyon ve DTD hakkında bilgi vermek amacıyla kullanılır

Veri

External (Harici) DTD Tanımlaması

Bir XML dosyası için DTD tanımlaması aşağıdaki gibi yapılmaktadır: 
 
<!DOCTYPE kokelement SYSTEM "dosya_adi">
 
Örnek olarak : 
 
<!DOCTYPE isci SYSTEM "http://www.fibiler.com/dtds/isci.dtd">
 
verilebilir. Ana elementi isci olan ve http://www.fibiler.com/dtds/isci.dtd dosyasında tanımlanmış yapının kullanıcılacağı belirtilmiş olmaktadır
 
SYSTEM ve PUBLIC olarak iki türlü tanımlayıcı tipi vardır. SYSTEM kullanılırsa DTD'nin özel olduğu, PUBLIC tanımlanırsa DTD'nin genel kullanıma açık bir DTD olduğu anlaşılır. 

Veri

Internal (İç) DTD Tanımlaması

Bir XML'de kullanılacak DTD tanımları XML içine yazılabilir. Yazım kuralı aşağıdaki gibidir : 
 
<?xml version="1.0"?>
<!DOCTYPE rootelement [
... DTD tanımları
]>
<rootelement>
...
</rootelement>
 
Aşağıdaki gibi bir örnek verilebilir : 
 
<?xml version="1.0"?>
<!DOCTYPE isci [
<!ELEMENT isci(ad,soyad)> 
<!ELEMENT ad (#PCDATA)>
<!ELEMENT soyad (#PCDATA)>
]>
<isci>
<ad>Ali</a>
<soyad>Kaya</a>
</isci>

Veri

DTD'de Kullanılan Tanımlamlar (Declaration)

DTD (Döküman Tip Tanımlaması-Document Type Definition) aşağıdaki tanımlamalar (declaration) kullanılır :
  • DOCTYPE : DTD'nin belge içinde veya harici bir dosyada tanımlanacağı, harici dosyanın url'ini vermek için kullanılır
  • ELEMENT : Elementin adını, tipini, icinde olabilecek elementleri belirtmek için kullanılır
  • ATTLIST : Bir elementin attribute'lerini ve özelliklerini belirtmek için kullanılır
  • ENTITY : Bir entity (bir metin veya karakter yerine kullanılan ifade) tanımlamak için kullanılır
  • NOTATION :  Bir notation (XML olmayan veya parse edilemeyen harici veriler) tanımlamak için kullanılır
 

Kavram

ELEMENT

Tanım: DTD'de bir elementin adını, tipini, içinde olabilecek elementleri belirtmek için kullanılan tanımlama (declaration). şeklinde isci elementinin tanımlandığı bir örnek verilebilir

Kavram

ATTLIST

Tanım: DTD'de, bir elementin attribute'lerini ve özelliklerini belirtmek için kullanılan tanımlama (declaration). Genel yapısı şeklindedir. Örneğin şeklinde , makale elementine yazar attributesi eklenebilir

Kavram

ENTITY

Tanım: DTD'de , bir entity (bir metin veya karakter yerine kullanılan ifade) tanımlamak için kullanılan tanımlama (declaration)

Kavram

NOTATION

Tanım: DTD'de, bir notation (XML olmayan veya parse edilemeyen harici veriler) tanımlamak için kullanılan tanımlama (declaration)

Kavram

SYSTEM

Tanım: DTD'de , DOCTYPE tanımlamasında (declaration), DTD'nin genel kullanıma açık olmadığını, özel bir DTD olduğunu belirtmek için kullanılan ifade. şeklinde örnek verilebilir

Kavram

PUBLIC

Tanım: DTD'de , DOCTYPE tanımlamasında (declaration), DTD'nin genel kullanıma açık olduğunu belirtmek için kullanılan ifade. şeklinde örnek verilebilir

Örnek

Br Etileki İçin DTD

Br gibi içinde bir şey tanımlı olmayan elemetler aşağıdaki gibi tanımlanırlar :

<!ELEMENT br EMPTY>

 


Örnek

Sadece Karakter İçeren Element İçin DTD

Eğer bir element'in içinde sadece karakter olması gerekiyorsa aşağıdaki gibi tanımlanmalıdır :
<!ELEMENT surname (#PCDATA)>


Örnek

İçinde İki Eleman Bulunan Elementin DTDsi

Örneğin worker element'inin içinde name ve surname element'leri bulunuyorsa aşağıdaki gibi tanımlanmalıdır:


<!ELEMENT worker (name,surname)>


Eğer biri kullanılırsa diğerinin kullanılmamasını istiyorsanız aşağıdaki gibi tanımlamalısınız :


<!ELEMENT worker (name|surname)>


Kavram

EMPTY

Tanım: DTD'de bir elementin içinde hiç bir şeyin olmaması gerektiğini belirten ifade. Örneğin şeklinde tanımlanan br elementinin içinde hiç bir element veya karakter olamaz

Kavram

Cardinality Operatörleri

Tanım: DTD'de, bir elementin ne kadar eklenebilceğini (hiç, en az bir kere, istenildiği kadar vb ..) belirten *, ? , + operatörlerine verilen isim.

Veri

Cardinality Operatörleri Listesi

DTD'de bir elementin ne kadar eklenebileceğini (hiç, en az bir kere, istenildiği kadar vb ..) belirten operatörler aşağıdaki gibidir :

  • ? (0-1 ya hiç yada en fazla bir kere)
  • * (0-n ya hiç ya da istenildiği kadar)
  • + (1-n en az bir ya da istenildiği kadar)

Not:hiç bir operatör yazılmalıdığı zaman en az bir kere gerektiği anlamına gelmektedir
 


Kavram

? Operatörü

Tanım: DTD'de element sonuna eklenen ve elementin ya hiç yada en fazla bir kere olması gerektiğini belirten cardinality operatörü

Kavram

* Operatörü

Tanım: DTD'de element sonuna eklenen ve elementin ya hiç yada en istenildiği kadar olması gerektiğini belirten cardinality operatörü

Kavram

+ Opera

Tanım: DTD'de element sonuna eklenen ve elementin en az bir yada en istenildiği kadar olması gerektiğini belirten cardinality operatörü

Örnek

Basit Cardinality Operatorü Kullanımları

Eğer hiç bir şey yazılmassa (cardinality operatorü kullanılmazsa) sadece 1 kere kullanılmalıdır ve kullanılması gereklidir anlamına gelir.
Eğer ? kullanılırsa ya hiç ya da bir kere kullanılabilir.
Örneğin aşağıdaki örnekte middlename worker elementinin içinde hiç kullanılmayabilir veya sadece 1 kere kullanılabilir.


<!ELEMENT worker (name,middlename?,surname)>


Eğer hiç veya istenildiği kadar kullanılabilmesi içinde * operatorü kullanılır. Örneğin aşağıda nick element'i ya hiç kullanılmayabilir veya istenildiği kadar kullanılabilir.


<!ELEMENT worker (name,middlename?,surname,nick*)>


Eğer bir element'in en az bir kere veya daha fazla kullanılmasını istiyorsanız + operatoru kullanılır. Aşağıda song elementi bu şekilde tanımlanmıştır.


<!ELEMENT worker (name,,surname,song+)>


Bu ifadeler toplu olarak da kullanılabilir. Aşağıdaki kod buna örnektir


<!ELEMENT section (head?,(paragraph|code|listing|warning|tip)*) >


Veri

Attribute Tanımlanırken Verilen Ek Bilgiler ve Kontroller

Attirbute tanımlanırken aşağıdaki ifadeler kullanılabilir :


#REQUIRED : DTD'de bir attribute'nin element içinde kullanımın zorunlu olduğunu belirten ifade. şeklinde tanımlanan id özelliği zorunludur.


#IMPLIED : DTD'de bir attribute'nin element içinde kullanımın zorunlu olmadığını belirten ifade. şeklinde tanımlanan id özelliği isteğe bağlıdır


#FIXED : DTD'de bir attribute'nin element içinde degerini en bastan atamak icin kullanılan ifade. şeklinde tanımlanan id özelliği 0 değerini alacaktır ve kullanıcı bu değeri değiştiremez.


Kavram

#REQUIRED

Tanım: DTD'de bir attribute'nin element içinde kullanımın zorunlu olduğunu belirten ifade. şeklinde tanımlanan id özelliği zorunludur.

Kavram

#IMPLIED

Tanım: DTD'de bir attribute'nin element içinde kullanımın zorunlu olmadığını belirten ifade. şeklinde tanımlanan id özelliği isteğe bağlıdır

Kavram

#FIXED

Tanım: DTD'de bir attribute'nin element içinde degerini en bastan atamak icin kullanılan ifade. şeklinde tanımlanan id özelliği 0 değerini alacaktır ve kullanıcı bu değeri değiştiremez.

Örnek

DTD İle Bir Elemente İki Atrribute Eklenme Örneği

aşağıda tanımlanmış worker element'inin id ve no diye iki attributesi olması için aşağıdaki gibi bir tanımlama yapmak gereklidir :


<!ATTLIST worker
id CDATA #REQUIRED
no CDATA #IMPLIED "0"
name CDATA #FIXED "noname"
>


Burada id attribute'si bir yazı alacağını belirtiyoruz (CDATA karekter data anlamına gelmektedir). #REQUIRED ile bu attribute'nin kullanılmasının mecburi olduğunu belirtiyoruz. #IMPLIED ise no attribute'sinin kullanılmasının isteğe bağlı olduğunu bildirir ve no değerine herhangi bir değer girilmezse 0 olacağı belirtilmiştir. #FIXED ise başlangıçta bir değer atamak için kullanılır. Kullanıcı #FIXED ile atanmış değeri değiştiremez


Veri

DTD Entity Tipleri

DTD içinde iki tip entity yaratılabilir :

  • Parameter Entity (Sadece DTD içinde kullanım için. < !ENTITY % name "referans gösterdiği yazı" > şeklinde tanımlanır ve %name; şeklinde kullanılır)
  • General Entity (XML içinde kullanılması için)
    • Internal Entity (Enttiy kendi DTD dökümanı içinde. <ENTITY name "referans gösterdiği yazı"> şeklinde tanımlanı ve &name; şeklinde XML içinde kullanılır)
    • External Entity (Entity farklı bir DTD dosyası içinde. &name; şeklinde XML içinde kullanılır)
      • Unparsed External Entity (Farklı bir DTD dosyasındaki entity, parse edilemeyen (karakter verisi olmayan image, ses, video içeriği gibi) bir veri içerir)
         

Kavram

Parameter Entity

Tanım: DTD'de sadece DTD için kullanılmak için yapılan entity. XML içinde kullanılması için yaratılan entity'e "General Entity" adı verilmektedir

Kavram

General Entity

Tanım: DTD'de XML içinde kullanılması için oluşturulmuş entity. Sadece DTD içinde kullanılmak için yaratılan entity'e Parameter Entity adı verilmektedir

Kavram

Internal Entity

Tanım: DTD'de içinde XML içinde kullanılması için oluşturulmuş entity. Eğer entity başka bir DTD içindeyse bu entity'ye External Entity adı verilir

Kavram

External Entity

Tanım: DTD'de başka bir DTD dosyasına referans veren ve XML içinde kullanılılan entity. şeklinde tanımlanır

Kavram

NDATA

Tanım: DTD'de tanımlanan bir verinin parse edilebilir bir veri olmadığını (bir notation için kullanılan veri) belirten ifade.

Örnek

DTD de Basit Bir General Entity Örneği

Aşağıda copyrightSentence entity'si tanımlanmıştır :


<!ENTITY copyrightSentence "© 2002 by Fibiler.com">


XML'de aşağıdaki gibi kullanılabilir :


<copyrigth>©rightSentence;</copyrigth>


Burada copyrightSentence entity'si tanımlanmıştır. Bu entity ©rightSentence; şeklinde kullanılınca yerine © 2002 by Fibiler.com ifadesini geçirecektir. Burada © ifadesi de copyright işaretini gösteren bir entity referance'dır. Böylece bu cümleyi her yere yazmak yerine entity referance'sı kullanılabilir.


Örnek

DTD de Basit Bir Parameter Entity Örneği

Aşağıdaki örnekte bir inline entity'si yaratılmıştır ve kullanılmıştır:


<!ENTITY % inline "i|b|em">
..
..
<!ELEMENT p (%inline;)>


Bu entity i|b|em yazısını göstermektedir. p (%inline) ile p(i|b|em) ifadesi aynı anlama gelmektedir


Örnek

DTD de Basit Bir External General Entity Örneği

External entity başka bir DTD dosyasında bulunan entity'in kullanmak içindir. Aşağıda bir external entity tanımı gözükmektedir :


<!ENTITY test SYSTEM "http://www.fibiler.com/test.dtd">


kullanımı ise :


<worker><name>&test;</name></worker>


şeklindedir.


Örnek

DTD de Bir GIF Unparsed External General Entity Örneği

Aşağıdaki örnekte parse edilemeyen bir resim dosyası içeriğini entity olarak tanımlamak için kullanılan ifade görülmektedir :


<!ENTITY logo SYSTEM "http://www.fibiler.com/test/logo.gif" NDATA GIF89a>


Bu entity aşağıdaki gibi kullanılabilir


<sirket><photo src="&logo;"/></sirket>


&logo; ifadesi http://www.fibiler.com/test/logo.gif adresinde belirtilen veriye referans verir. NDATA(Notation Data) bu datanın parse edilebilir bir data olmadığını gösterir. Photo element'inin src attribute'sinin tipi Entity olarak verilmelidir :


<!ATTLIST photo src ENTITY #REQUIRED>





Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir