Üst MenüForum kuralları Üst MenüGenel Haberler Üst MenüSoru Sorun Üst MenüForum Takımı Üst MenüReaL Para Üst MenüVİP Bölüm Üst MenüTurnuval Forum
OyunJet Bütün Oyunlar
Yeni Konu Gönder Yeni Yorum Gönder
 
Konuyu Oyla:
  • Toplam: 53 Oy - Ortalama: 2.36
  • 1
  • 2
  • 3
  • 4
  • 5
XML'e Giriş
Yazar Konu
asimavi Çevrimdışı
@simavi
***
Gold Üye
Platin Üye

Yorum Sayısı: 717
Edilen Teşekkürler: 85
Alınan Teşekkürler:
42 mesajında 49 kere
Üyelik Tarihi: 15-01-2012

Rep Puanı: 187
ReaL Para: 920.00
Yorum: #1
XML'e Giriş
XML'e Giriş

XML(eXtensible Markup Language-Genişleyebilir Anlamlandırma Dili) hakkında birşeyler duymuşsunuzdur muhakkak; onun Web üzerinde veri alışveriş methodunu değiştireceğini, HTML’in bir nevi kardeşi olduğunu, ama tabi ki SGML(Standard Generalized Markup Language)’in bir alt kümesi olduğunu. XML üzerine uygulamalar geliştirmek onu kendi iş süreçlerinize dahil etmek istiyorsanız XML’i biraz daha geniş olarak inceleyen bu yazıyı okumanızı tavsiye ederim.
İlk önce SGML’i incelemekte fayda görüyorum. Sonuçta bu bir giriş olduğuna göre temeli sağlam atmalıyız. SGML International Standards Organization(ISO) tarafından 1986 yılında kabul edilmiş ve onaylanmış bilgi-yönetimi standardıdır. SGML platform-bağımsız ve uygulama-bağımsız dökümanlar yaratmak sağlamak için oluşturulmuştur. Dilbilgisi gibi bir mekanizma kullanılarak dökümanların yapısını özel tanımlanmış tag’ler kullanarak yapısını tanımlamamıza yarar.
SGML bir meta-dildir. Meta-dil demek dil yaratmaya yarayan dil demektir. (Yapay zeka’da metaknowledge’in knowledge about knowledge olduğu gibi.) Örneğin HTML, SGML’den türetilmiş bir anlamlandırma dilidir. Aynı şekilde XML’de temel olarak SGML’e dayanır. İlginç olan XML’in SGML gibi bir meta-dilden türemesine rağmen kendisi de bir meta-dil olmasıdır. Yani XML’den de yeni diller türetilebilir.
XML’i içeriğin nasıl görüneceğinden ziyade içeriğin yapısını tanımlamada kullanırız. Diğer taraftan HTML dökümanın nasıl gösterileceğini belirtir, dökümanın ne olduğundan hiç bahsetmez.
DTD

Diğer önemli bir konu ise DTD’dir. HTML’de dikkat ettiyseniz ilk satır:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 FINAL //EN">
olarak görünür. Burada Web browser’a html’in hangi DTD’sini kullanacağı söylenir. Burada DTD Document Type Declaration’dır. Fakat kesinlikle bu XML’de ileride kullanacağımız DTD yani Document Type Definiton ile karıştırılmamalıdır. HTML’deki Document Type Declaration bize hangi tür bir dökümana sahip olduğumuzu söylerken , XML’de Document Type Definition ise dökümanın syntax’ının geçerli(valid) olduğu yerleri tanımlar. Aslında ileride DTD’yi geniş olarak ele alacağız ama kısaca açıklayacak olursak: DTD parser’ın izleyeceği kuralları belirler. Dökümanda ne gibi elemanların olduğunu ve bu elemanların neler yaptığını açıklar. Ayrıca DTD dökümanın tag yapısının ve içeriğindeki organizasyon hiyerarşisinin önceden tanımlanmış HTML kurallarına uyup uymadığını kontrol etmek için parser tarafından kullanılır. Şimdi aklınızdan geçenleri tahmin edebiliyorum, biraz karışık gibi görünüyor ama uygulama yapınca DTD’nin ne kadar kolay birşey olduğunu anlayacaksınız. Biraz daha sabır.
XML'in Gelişimi

Internetin ilk yıllarında birkaç HTML tag’i kullanarak gri web sayfaları yapmak oldukça büyük bir işti. Ama zamanla insanlar bunun çok iyi bir reklam aracı olabileceğini farkedip, üzerinde çalışmaya başladılar. Birçok grafiksel öğe geldi, insanlar tasarım yapmaya başladılar. Bunu Html 2.0 ve 3.0 izledi. Gün geçtikçe internetin altyapısı da düzeldi. Türkiye’de inanılmaz bir ISS(Internet Servis Sağlayıcı) patlaması yaşandı. Paket fiyatları düştü düştü , firmalar bu rekabetten oldukça etkilendi ve geriye oldukça köklü firmalar kaldı. Internet 2. boyutunu yani insanlardan bilgi toplama yakalamıştı. Ve halen belki de bu boyuttayız. Asp bize sunucu taraflı uygulamalar geliştimeye olanak tanıdı hem de cgi, perl gibi dilleri bilmeden sadece Vbscript ile bunu yapmamızı sağladı. Artık web sayfaları dinamik içerik sağlıyordu, sizin kim olduğunuzu anlayıp size özel işlemler yapıyordu ki, veri transferinin önemi oldukça büyüdü. Artık herşey veriye bağlanmıştı. Bir web sitesinin arkasına SQL Server’lar, Oracle’lar SAP R/3 sistemleri durmaya başlamıştı. İşte XML bu veri değişimi işlemini kolaylaştırmak için doğdu. 3. kuşak internette de bu ve yeni teknolojiler kullanılarak insan faktörü ön plana çıkacak ve etkileşimli web siteleri yapılacak. B2B ve B2C’ler yerini Marketplace’lere bırakacak. Biz şu an 2. kuşağı yaşayan ama 3. kuşağa geçmeye hazırlanan bir ülkede bulunuyoruz.
XML ile veri değişiminin kolay hale gelmesi hedeflenmişti ve başarıldı. Artık sizin verilerinizi alacak sistemin ne olduğunu bilmeniz ve ona göre çıktı üretmeniz gibi birşey söz konusu değil. Siz bir XML paketi oluşturup karşı sisteme yolluyorsunuz. O da bu paketi açaral kendi sistemine dahil ediyor. Yani artık internet aracılığıyla farklı sistemler veri değişiminde aynı dili konuşuyor: XML.



XML'in Tasarım Amaçları
XML tasarlanırken düşünülen birçok düşünce var. W3C’nin birleşip ortaya çıkardığı 10 temel XML’in tasarım amacı şunlar:
1- XML internet üzerinde çalışabilmelidir.
2- XML neredeyse tüm uygulamalar tarafından desteklenmelidir.
3- XML SGML ile uyumlu olmalıdır.
4- XML üreten programlar oldukça kolay olmalıdır.
5- XML’de opsiyonel özellikler minumum olmalı veya hiç olmamalıdır.
6- XML dökümanları okunabilir ve açık olmalıdır.
7- XML tasarımı tek bir firma bu işi ele almadan acilen hazırlanmalıdır.
8- XML tasarımı biçimlendirilmiş ve kısa olmalıdır.
9- XML dökümanlarının yaratılması çok kolay olmalıdır.
10- XML dökümanlarında anlam belirsizlikleri olmamalıdır.
Kendini Tamamlayıcı Dökümanlar

XML dökümanları verilen tag isimleri ile kendini tanımlayabilir olmalıdır. Örneğin:
<okuladi>ODTU</okuladi>
Burada açık olarak anlaşılıyor ki ODTU bir okulun adıdır. Aslında işin temeline inmemizde ben yine yarar görüyorum. En başta dedim ya temel sağlam olmalı. XML dökümanları 2 kritere uymalıdır; iyi-oluşturulmuş(well-formed) ve geçerli(valid).
İyi-oluşturulmuş Döküman:
Bir XML dökümanının iyi-oluşturulmuş olması için aşağıdaki temel kurallara uyması gereklidir:
1- HTML ve SGML gibi XML de büyüktür (>) ve küçüktür (<) karakterlerini ayrıraçlar olarak kullanır.
2- Bu karakterlerle tag dediğimiz yapılar oluşturulur ve bunlar açıldığı zaman kapatılmalıdır. Tek istisna boş elemandır(değeri olmayan eleman). Bu durumlarda açma ve kapama tag’i aynı olabilir. Örneğin: <okuladi/> dediğimizde okuladi diye bir tag açmış oluruz ama içinde herhangi bir değer bulunmaz.
3- Tag’lerin eklentileri çift-tırnak içine alınmalıdır. HTML bu açıdan esnektir fakat XML bunu yapmanıza izin vermez. Örneğin HTML’de <font size=3> diye bilirsiniz ama XML’de 3 kesinlikle çift-tırnaklar içine alınmalıdır.<font size=”3”>
4- Elemanlar aynı HTML’de olduğu gibi iç-içe düzgün bir şekilde tanımlanmalıdır. Her XML dökümanı bir kök elemanına sahiptir ve diğer tüm elemanlar onun çocukları olarak anılırlar. Hemen bir örnek verelim:
<universite>
<universiteadi>ODTU</universiteadi>
<universitesehiri>Ankara</universitesehiri>
</universite>
5- XML’deki elemanlar büyük-küçük harf ayırt eder. Yani <universite> ile <UNIVERSITE> iki ayri elemandır. Bu yönüyle de HTML’den farklıdır. Bu yüzden XML kodları yazarken ençok karşılaşılacak sorun bu olabilir.

Geçerli Döküman:
Geçerli bir döküman kendi DTDsi veya şemasında(shema) tanımlanmış kurallara uyan dökümandır. Aslında daha ikisini de incelemedik ama kısa bir bilgi vereyim: DTDler ve şemalar o XML dökümanının her elemanının neler kapsayabileceğini ve o dökümanın organizasyonel yapısını belirler. SQL Server veya Oracle ile uğraşmış olanlar bilirler , buradaki şema yapısı da veritabanı şeması belirleme ile aynıdır. En büyük fark ise XML’de elemanların eleman içermesidir. Bu konuya ileride oldukça geniş yer vereceğim çünkü oldukça önemli.



İlk Örnek

Ve işte ilk örneğimiz:

<< Bakın burada yapılmışı var

<?xml version="1.0"?>
<OGRENCI>
<ISIM>
<AD>SERAP</AD>
<SOYAD>BASARAN</SOYAD>
</ISIM>
<UNIVERSITE>
<BOLUM>GIDA MUH</BOLUM>
<YIL>1996</YIL>
</UNIVERSITE>
<ADRES>
<CADDE>YURTLAR CADDESI</CADDE>
<APARTMAN>UC APARTMANI</APARTMAN>
<NO>610</NO>
<ILCE>BABAESKI</ILCE>
<IL>KIRKLARELI</IL>
</ADRES>
</OGRENCI>

Farzedelim ki bir vakıf kurduk ve bu bilgileri tutmak istiyoruz. Okulundan bir XML dökümanı istiyoruz ama yapısının bu şekilde olmasını istiyoruz. Onlar bize bu yapıda bir döküman yolluyorlar biz de bunu otomatik olarak çalışan sistemimize kaydediyoruz diyelim. Böylece okuldan biri mezun olduğunda mezunlar derneğimize katılması için mektup yollayableceğimiz bir adresi var. Sistem otomatik olarak güncelleniyor. Sizin büronuz Istanbul’da okul Ankara’da. Aslında çok basit bir örnek ama bu uygulamaları düşünmenin hayal sınırı yok. Veriyi oluşturmak için sisteminizi çalıştırmanız yeterli, diğer tarafta nasıl sisteme entegre olacağı sizi ilgilendirmiyor.
Web üzerinde kullanacağımız XML uygulamalarında XML dökümanını derleyen msxml.dll dosyasıdır. Eğer Internet Explorer 5.0 ve üzerini kullanıyorsanız XML dökümanlarını rahatça görüntüleyebilirsiniz.
Eğer yukarıdaki kodu düzgün kodladıysanız xml dosyasını kişisel sunucunuzda çalıştırdığınız da aşağıdaki görüntüyü elde edersiniz:
+ ve – ‘lere tıklayarak tag’leri açıp kapayabilirsiniz. Bu yapı size XML dökümanlarının eleman-çocuk ilişkisini anlamınıza yarayacaktır.

@simavi
17-01-2012 22:16
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
[-] Aşağıdaki 1 üye asimavi üyesine bu mesaj için teşekkür etti:
Oyuncu
ActionHG Çevrimdışı
HG
*
Emektar Üye

Yorum Sayısı: 408
Edilen Teşekkürler: 5
Alınan Teşekkürler:
34 mesajında 53 kere
Üyelik Tarihi: 14-01-2012

Rep Puanı: 567
ReaL Para: 767.30
Yorum: #2
RE: XML'e Giriş
Güzel ders Göz kırpma

Game Maker, Dev C++ ve Google SketcUp User
Ö.M.den (özellikle game maker hakkında) istediğiniz soruyu sorabilirsiniz yardım ederim.
18-01-2012 0:14
kullanıcının web sitesini ziyaret et kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
asimavi Çevrimdışı
@simavi
***
Gold Üye
Platin Üye

Yorum Sayısı: 717
Edilen Teşekkürler: 85
Alınan Teşekkürler:
42 mesajında 49 kere
Üyelik Tarihi: 15-01-2012

Rep Puanı: 187
ReaL Para: 920.00
Yorum: #3
RE: XML'e Giriş
yararlı olmuşsa ne mutlu bana

@simavi
18-01-2012 0:28
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
ActionHG Çevrimdışı
HG
*
Emektar Üye

Yorum Sayısı: 408
Edilen Teşekkürler: 5
Alınan Teşekkürler:
34 mesajında 53 kere
Üyelik Tarihi: 14-01-2012

Rep Puanı: 567
ReaL Para: 767.30
Yorum: #4
Cvp: RE: XML'e Giriş
(18-01-2012 0:28)asimavi Nickli Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.yararlı olmuşsa ne mutlu bana

Olmaz olur mu tabi ki yararlı böyle giderse yakında modsun Sinan Abi.

Game Maker, Dev C++ ve Google SketcUp User
Ö.M.den (özellikle game maker hakkında) istediğiniz soruyu sorabilirsiniz yardım ederim.
18-01-2012 0:31
kullanıcının web sitesini ziyaret et kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
asimavi Çevrimdışı
@simavi
***
Gold Üye
Platin Üye

Yorum Sayısı: 717
Edilen Teşekkürler: 85
Alınan Teşekkürler:
42 mesajında 49 kere
Üyelik Tarihi: 15-01-2012

Rep Puanı: 187
ReaL Para: 920.00
Yorum: #5
RE: XML'e Giriş
mod veya başka bir şey olmak benim için hiç önemli değil önemli olan arkadaşlarıma dostlarıma yardımcı olabilmek ...

@simavi
18-01-2012 1:07
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
Sado Çevrimdışı
Muhammet Çolak
*
Yeni Üye

Yorum Sayısı: 662
Edilen Teşekkürler: 5
Alınan Teşekkürler:
1 mesajında 2 kere
Üyelik Tarihi: 14-01-2012

Rep Puanı: 101
ReaL Para: -324.62
Yorum: #6
RE: XML'e Giriş
sinana söledim ben zaten gold üyeliğin hazır sonra daha da iyiye giderse modlukda hazır terfi edio sinan zaten sinan bu dersi ben paylaşcaktım da sen benden önce davranmışşsın Açık Ağızlı Gülümseme eline sağlık
18-01-2012 15:07
kullanıcının web sitesini ziyaret et kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
Oyuncu Çevrimdışı
Unity 3d - Ses & Dj
*
Yeni Üye

Yorum Sayısı: 2,693
Edilen Teşekkürler: 268
Alınan Teşekkürler:
112 mesajında 137 kere
Üyelik Tarihi: 29-03-2012

Rep Puanı: 811
ReaL Para: 1691.10
Yorum: #7
RE: XML'e Giriş
Walla derslere bakılırsa çocuk oyun yapma programı yapar Açık Ağızlı Gülümseme .

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
25-04-2012 22:18
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
[-] Aşağıdaki 1 üye Oyuncu üyesine bu mesaj için teşekkür etti:
Mucit
Yeni Konu Gönder Yeni Yorum Gönder


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi


Kurucu » Yönetici » Üst Yetkili » Yetkili » Platin Üye » Gold Üye » Silver Üye » Yeni Üye » Yasaklı Üye

Dost Linkler
İletişimReaLses Yukarı GitArşivRSS Beslemesi