Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Aziz Durmaz
Aziz Durmaz
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
4 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  XML / Web Serv. Aziz Durmaz
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : XML / Web Serv.
Yayınlanma Tarihi : 8.1.2003
Okunma Sayısı : 31676
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
XML Doküman tipi Tanımlanması Kısım 1
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu yazımızdan önceki yazılarımızda XML’in yapısını ve nasıl görüntülenebileceğini basit bir şekilde anlatmaya çalışmıştım. Şimdi sıra XML belgelerimizi bir standart yapıya nasıl kavuşturacağımıza geldi.

XML belgemizi standart bir hale sokmalıyız? Daha önceki yazılarımızda XML ‘in ana çıkış amaçlarından birisinin veri depolama olduğunu görmüştük. Örneğin bir projede XML belgeleri oluşturulması isteniyor ve bu belgeler özel bir yazılım sayesinde işlenecek. Tüm kullanıcıların XML belgeleri önceden tanımlanmış ortak bir DTD (Document Type Defination) içerirse, bu belgelerin istenilen yapıya uygun olması, çalışanların gelişigüzel yeni etiketler eklememeleri, etiketlerle depolanan bilgiyi hatalı sıralamamaları, etiketlerine hatalı nitelikler eklememeleri sağlanır. Ayrıca işlem yapan programında bu belgeleri tanıması ve işlemesi garanti altına alınmış olunur.

DTD (Document Type Defination) nedir? XML belgelerimizin giriş bölümünde tanımlanan ve belgenin yapısını belirleyen Doküman Tipi Belirleyicisidir. DTD’nin amacı yukarıda belirttiğimiz gibi XML belgemizin kurallara uygun yapısal bloklarını tanımlamaktır.

Bir DTD’nin genel biçimi aşağıdaki gibidir.

Name DTD >
Buradaki name kısmı belgemizdeki kök elemanının adını belirtir. DTD kısmı ise belgede geçecek olan etiketlerin, etiket niteliklerinin ve diğer özelliklerinin tanımlarının bulunduğu kısımdır. Pekala şimdi basit bir örnek görelim;

Tâbi ki DTD bildirimlerimizi sadece belgemizin içinde yapmamaktayız. Ayrıca dışarıdan herhangi bir DTD 'yi belgemizin içinde kullanmak amacıyla XML belgemize ekleyebilmekteyiz. Bir DTD belgesini XML belgemize eklememiz için gerekli olan söz dizilimi aşağıdaki gibidir.


Az önce incelediğimiz basit örneğimizdeki DTD tanımlamasını dış bir dosyadan alırsak aşağıdaki şekilde düzenlememiz gerekecektir.

basit.xml :





Basit bir XML Dökümanı


basit.dtd


Bir doküman tipi tanımlamasında aşağıdaki işaretleme bildirimleri bulunur; Eleman türü bildirimleri : XML 'de kullandığımız elemanlar, içerikleri ve sıralanışları DTD ‘in içinde tanımlanmaktadır. Bir eleman bildiriminin söz dizimi aşağıdaki gibidir.

 

ya da




  • Boş Elemanlar: XML ‘de boş içerikli elemanlara sahip olabiliriz. Örneğin HTML 'deki
    veya etiketleri gibi. Bu elemanların bildirimleri için EMPTY anahtar sözcüğünü kullanırız. Örnek:

XML belgemizde IMAGE elemanını aşağıdaki şekillerde kullanabiliriz.

veya

  • Herhangi bir içerikli Elemanlar: XML belgemizde karışık içerikli elemanlarımız bulunabilir. Bu elemanımız içinde herhangi bir sırada ve tekrar edilebilen elemanlar karakter verisi içeren veya içermeyen sıfır veya daha fazla alt eleman içerebilir. Herhangi bir data kombinasyonunu içerebilir. En serbest içerik tanımıdır. Örnek;

  • Alt elemanlı Elemanlar: XML belgemizde bir elemanımızın içine yerleştirilmiş elemanlarımız bulunabilir. Bu konu ile ilgili örneklerimize konumuzun ilerleyen kısmında geniş bir şekilde yer vereceğiz.
  • Karışık içerikli Elemanlar: Karakter verisi ile seçimimize bağlı istediğimiz kadar alt eleman barındıran elemanlardır. Bu konu ile ilgili örnekler ilerleyen kısımda verilecektir.
Nitelik Bildirimleri: Elemanlarımızın alabilecekleri veya almaları gereken nitelikleri dtd içerisinde tanımlamanız gerekmektedir. Bu bildirim sayesinde:

Elemanla ilişkili nitelik adları tanımlanır. Geçerli bir XML belgesinde bir elemanın başlangıç etiketinde yalnızca bu eleman için tanımladığımız nitelikleri kullanabiliriz.

Bu niteliklerin veri türleri belirlenir.

Her niteliğin gerekli olup olmadığı (REQUIRED), eğer gerekli değilse ve belirtilmediyse işlemcinin ne yapacağını belirtir.

Bir nitelik bildiriminin söz dizimi aşağıdaki gibidir:

Nitelik_tipi default_deger>

Burada Eleman_adi olarak nitelik belirteceğimiz elemanın adını, nitelik adı olarak verilecek niteliğin adını yazmaktayız. Ayrıca nitelik tipi ve eğer nitelik belirtilmezse default değer yerine verilen değer ile işlemcinin nasıl bir işlem yapacağını belirtmekteyiz.

Örneğin;

Nitelik tipleri aşağıdaki değerleri alabilir.

Değer

Açıklaması

CDATA

Değer Karakter verisi olması

(en1|en2|..)

Değer parantez içindeki değerlerden birisi olmalı

ID

Değer tekil ID olmalı

IDREF

Değer başka bir elemanın ID si olmalı

IDREFS

Değer başka ID ‘lerin listesi olmalı

NMTOKEN

Değer geçerli XML adı olmalı

NMTOKENS

Değer geçerli XML adı listesi olmalı

ENTITY

Değer bir varlık olmalı

ENTITIES

Değer bir varlık listesi olmalı

NOTATION

Değer bir notasyon olmalı

xml:

Değer önceden tanımlamış bir XML değeri olmalı

Default Değer aşağıdaki değerleri alabilir.

Değer

Açıklama

deger

Niteliğin Default değeri

#REQUIRED

Nitelik değeri Eleman içinde geçmek zorundadır.

#IMPLIED

Nitelik değeri Eleman içinde geçmek zorunda değildir.

#FIXED value

Nitelik değeri sabittir. Eğer nitelik değeri belirtirseniz default değeri yazmak zorundasınız.

Bu yazımızda XML belgemize nasıl DTD tanımları ekleyerek standart bir yapıya nasıl kavuşturacağımız hakkında bilgi vermeye çalıştık. Bundan sonraki yazılarımızda DTD hakkında yazılarımıza devam edeceğiz.

Makale:
XML Doküman tipi Tanımlanması Kısım 1 XML ve Web Servisleri Aziz Durmaz
  • Yazılan Yorumlar
  • Yorum Yaz
HAZ
15
2006
Döküman gerçekten güzel yazılmış tebrik ederim.Bir yerde dikkatini çekmek isterim , DTD yazarak standart bir yapıya kavuşmak cümlesi açıkcası bana biraz garip geldi.Belki haklıda olabilirsin ama DTD , SGML den türemiştir.DTD ile standart bir yapı değil , geçerli bir xml belge yapısı oluşturabilirsin.Asıl standart yapıyı XML Schemalar sağlamaktadır ki , XML dilin deyazılmıştır.Emeğin için teşekkürler...
OCA
8
2003
Diğer kısımları da bitince daha iyi olacak inşallah
OCA
8
2003
aziz eline sağlık güzel bir yazı yazmışsın..teşekkür ederiz.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor