Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
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
:
10.1.2003
Okunma Sayısı
:
25877
Yorum Sayısı
:
0
yorum yaz
SİTE İÇİ ARAMA
Ü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.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
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.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
3.10.2023
Turhal Temizer
Mac OS/X Removing CUDA
3.10.2023
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final
3.10.2023
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Bölüm 2
3.10.2023
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
XML / Web Serv.
/
XML Doküman tipi Tanımlanması Kısım 2
XML Doküman tipi Tanımlanması Kısım 2
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
Mesajınız:
Geçen yazımızda XML belgemize DTD ekleme konusunda bilgi verip nasıl eleman ve nitelik tanımlayacağımızı anlatmıştık. Kaldığımız yerden devam ediyoruz.
Varlık (Entity) Bildirimleri:
Varlık bildirimleri XML belgemizde kullanacağımız değişik tür ve biçimlerdeki verilerimizi XML belgemize aktarmamızın bir yoludur. Örneğin sıklıkla kullandığımız bir metin bloğunu varlık olarak tanımlayarak istediğimiz yerde bu metni kolayca ekleyebilir ve bu metin üzerindeki değişiklikleri varlık bildiriminden yapabiliriz. Bunun yanı sıra XML belgemizin dışındaki harici bir dosyayı varlık olarak tanımlayarak içindeki veriyi XML belgemizde kullanabiliriz. Bu veri metin olmak zorunda değildir. XML belgemiz içinde tanımladığımız varlık için bir veri pratikte metin olmak zorundadır. Ama varlık olarak tanımlayacağımız harici bir dosyanın içeriği herhangi türden bir veri olabilmektedir. XML belgemizin içinde tanımlayacağımız bir varlık için söz dizimi aşağıdaki gibidir.
Harici bir dosyadan alınacak bir varlık için söz dizimi ise aşağıdaki gibidir.
(Not: URL = Uniform Resource Locator / URI = Uniform Resource Identifier ) Geçen yazımızı da gözönüne alacak olursak bir döküman tipi tanımlamasında bulunan işaretleme bildirimlerini yüzeysel olarak tanımlamış durumdayız. Şimdi biraz daha ayrıntıya girelim.
1- Eleman Bildirimleri :
Bir önceki yazımızda kısaca değindiğimiz eleman bildirimlerine bu başlığımızda daha geniş bir şekilde yer vermeye çalışacağız. Bir eleman bildirimi aşağıdaki söz dizimine sahiptir.
Buradaki
eleman_adi
XML belgemizde kullanacağımız elemanın adıdır. Alabileceği değerler şu kurala uygun olmak zorundadır;
”İsim bir harf ya da alt tire (_) ile başlayıp sıfır ya da daha fazla harf, rakam, nokta(.), tire(-) veya alt tire (_) ile devam etmelidir. Ayrıca xml öneki (Küçük veya Büyük harflerin kombinasyonundan olabilir) ile başlayan eleman adları standartlar için ayrılmıştır. Şart koşulmasa da, ileride problemlerle karşılaşmamak için kullanılmaması uygun olur.”
Elemanlarımızın alabileceği içerik türlerini
Kategorisi
kısmında belirtmekteyiz. Kategori kısmında içeriği belirlenir. Eğer bir eleman alt elemanlara sahipse sadece belirtilen alt elemanları içerebilir. Örneğin;
[
]
>
Aziz
DURMAZ
Bu örnekte dikkat edecek olursanız YAZAR elemanı tanımlanırken AD ve SOYAD alt elemanlarını içerir bir şekilde tanımlanıyor. AD ve SOYAD elemanları ise sadece karakter verisine sahip olacak şekilde tanımlanmıştır. Not:
#PCDATA
anahtar sözcüğü karakter verisinin tanımıdır.
Kategori bölümü iki temel şekilde bulanabilinir. Bunlardan birisi sıralı, yani içerilen elemanlar belirtilen sırada bulunmak zorundadır. Ya da seçimli, yani belirtilen elemanlardan birisi seçilip yer verilmesi şeklindedir.
Sıralı :
Alt elemanların belli bir sıra içinde bulunması gerektiği zamanlarda eleman bildiriminde, kullanılacak alt elemanlar virgülle ayrılmış ve bulunacakları sırayla kategori kısmında belirtilirler. Örneğin;
[
]
>
şeklinde bir DTD belgesine sahip olan bir XML belgesinin aşağıdaki şekilde olması gerekir.
Aziz
DURMAZ
0212 212 21 21
Eğer ki bu satırlardan herhangi birisi bulunmazsa ya da yerlerinin sıralarında bir değişiklik olursa XML belgemiz DTD ‘mize uygun olmaz. Örneğin aşağıdaki YAZAR elemanları yukarıdaki DTD ‘mize göre geçersiz elemanlardır.
Aziz
DURMAZ
veya
DURMAZ
Aziz
0212 212 21 21
Bir alt elemanı birden fazla tekrarlamak da geçersizliğe neden olacaktır.
Seçimli :
Alt elemanlardan birisinin elemanın içinde bulması için eleman bildiriminde kategori bölümünde alt elemanlar ( | ) işareti aralarına konularak tanımlanırlar. Örneğin;
[
]
>
Şeklindeki bir DTD ‘e sahip olan XML belgesi aşağıdaki şekillerde olabilir.
0535 555 5555
veya
0212 212 21 21
veya
0212 212 12 12
Ama herhangi bir elamanın tekrarı veya belirtilen iki elemanın bir arada kullanılması durumunda eleman geçersiz olur. Örneğin;
0535 555 5555
0212 212 21 21
veya
0535 555 5555
0535 666 5555
Peki Alt elemanlarımızın tekrarı veya kullanılıp kullanılmayacağı belli değilse o zaman bu şartlar altında DTD ‘mize uygun XML belge yazmamız imkansız olurdu. Bu yüzden Eleman sonlarına ( ? + * ) işaretleri eklenerek bu sorunlar ortadan kaldırılmaktadır.
Karakter
Açıklama
*
Elemandan sıfır veya daha çok bulunabilir
+
Elemandan bir veya daha çok bulunabilir
?
Elemandan sıfır veya 1 tane bulunabilir
Yukarıdaki karakterleri kullanarak özel durumlar için DTD ‘ler oluşturabiliriz. Örneğin; YAZAR elemanımızın alt elemanlarından AD iki isimli olan arkadaşlarımıza göre özelleştirelim ayrıca telefon numarasını bilmediğimiz için yazmayacağız fakat öğrenince eklemek istiyoruz.
Şeklinde bir eleman bildirimi yapmamız yukarıdaki isteklerimiz yerine getirecektir. Aşağıdaki örnek XML verisi yukarıda belirttiğimiz şartlara uygunluk göstermektedir.
Raif
Deniz
DURMAZ
Daha sonra telefon numarasını öğrendiğimiz zaman telefon numarasını DTD üzerinde herhangi bir değişiklik yapmadan eklememiz geçersiz eleman oluşmasına neden olmayacaktır. Örneğin;
Raif
Deniz
DURMAZ
0212 212 2121
Başka bir örnek belirtmemiz gerekirse telefon elemanımızın alt elemanlarından GSM ve Ev ve İş telefonları ile ilgili bir değişiklik yapmamız gerekirse mesela bunlardan birisi gerekli fakat arkadaşımızın iki tane evi var diyelim ona göre bir veya Hiç telefonu yok buna göre bir DTD yazmamız gerekirse;
Şeklinde bir DTD oluşturduğumuz zaman * işaretinin özelliğinden yararlanarak;
0212 212 21 21
0312 312 21 21
veya
0 535 555 5555
veya
Yukarıdaki tüm elemanlar yukarıda belirttiğimiz eleman tanımlamasına uymaktadır. * İşaretinin özelliğinden dolayı YAZAR_TEL elemanı EV alt elemanından boş eleman olabilmektedir. Tüm seçimli alt elemanları etkileyecek bir karakter kullanmak istiyorsanız. Seçimli alt elemanların parantezini kapattıktan sonra bir karakter kullanabilirisiniz. Örneğin yazar arkadaşlarımızın birden fazla telefonu olabilir ,hem GSM hem Ev telefonu Hem de iş telefonu olabilir, bu telefonlarından da birden fazla olabilir.
Şeklinde bir DTD kullandığımız zaman yukarıdaki sorunumuza çözüm getirmiş oluruz. Ve aşağıdaki elemanları oluşturabiliriz.
0535 555 5555
0212 212 2121
0312 312 2121
0536 666 5555
veya
0212 212 1212
0312 312 1212
veya
0535 555 5555
Peki ya hem seçimli hem de sıralı bir DTD oluşturmamız gerekirse ne yapabiliriz. Böyle bir durumda aşağıdaki örnek DTD ‘deki şekilde davranıp her iki bildirim şeklini birleştirebiliriz.
[
]
>
BU DTD 'ye göre aşağıdaki XML verileri geçerlidir.
Aziz
DURMAZ
0535 555 5555
veya
Raif
DURMAZ
0535 555 5555
Bu yazımızda varlık bildirimlerinden kısaca bahsedip, Eleman Bildirimlerini daha geniş bir şekilde anlatmaya çalıştık. Bundan sonraki yazılarımızda DTD hakkında bilgiler vermeye devam edeceğiz.
Makale:
XML Doküman tipi Tanımlanması Kısım 2 XML ve Web Servisleri Aziz Durmaz
Yazılan Yorumlar
Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
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
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl