Giresun Bilgi Adresi
10 Şubat 2012, 04:32:15 *
Hoşgeldiniz, Ziyaretçi.Lütfen giriş yapın veya kayıt olun.
 
Konu Bilgileri
Konu Başlığı
XML dersleri
Konudaki Cevap Sayısı
0
Konuya Bakanlar 0 Üye ve 5 Ziyaretçi konuyu incelemekte.
Görüntüleme Sayısı
720

+ Giresun Bilgi Adresi > BİLGİ VE TEKNOLOJİ  > Web Master Genel > XML dersleri
Sayfa: [1]
Cevap Yaz Yeni Konu Haberdar Et Okunmadı Say Bu Konuyu Gönder Yazdır

Gönderen Konu: XML dersleri  (Okunma Sayısı 720 defa)
 
03 Mayıs 2009, 19:05:11
safak
"ßizi satanLarı ßizßeLe$e veririz"
Editör
*

     Üye No : 2
     Cinsiyet : Bay
     Nerden : Giresun
     Konu : 1459
     Mesaj : 3,033
Bedenin olmadan yürümenin ne anlamı olabilir?
Karma +165/-7
safakk@hotmail.de WWW





Üyenin Mesajı:     
XML Nedir?
XML (Extensible Markup Language), veriyi belli bir yapıda tanımlamak için kullanılan bir dildir.
Bir verinin belli bir yapıda olması, o veri içerisindeki bilginin gerektiğinde kullanılabilir, değiştirilebilir ve başka biçimlere dönüştürülebilir olmasını sağlar.
XML - Düz Metin Karşılaştırması Diyelim ki saklamak istediğimiz veri bir sınavının soruları olsun. Sınavı düz metin (plain text) şekilde yazalım :
 Matematik Dersi 2. Ara Sınavı
Soru 1 :
 İki kere iki iki kaç eder?
a) 22
b) 3
c) 4
d) 5
Soru 2 : Kendimi kendimden çıkarsam kaç kalır?
a) 1
b) 2
c) 0
d) FD
Bu metin bir insanın çok rahat okuyabileceği ve anlayabileceği bir biçimde yazılmıştır. Ama bir bilgisayar programı bu metnin içindeki bilgileri okuyamaz.
 '1. sorunun ikinci şıkkı' gibi bir bilgiyi belge içerisinden nasıl bulunabileceğini düşünelim. En basit yol metni satırlara bölmek ve 4. satırı almak, sonra da ilk boşlıktan sonraki kısmı okumaktır.
Peki ya sınav adından sonra bir boşluk eklenirse?
 Program bu kez yanlış satırı getirecektir.
Ya 'b' şıkkında 'b' ile ')' arasına bir boşluk konursa?
 O zaman sayı yerine bir parantez elde edeceğiz! Görüldüğü gibi düz metin bir programın veri saklaması ve erişmesi için uygun bir biçim değildir.
XML - Tablo Karşılaştırması Geleneksel olarak veri tablolarda tutulur.
Bir okuldaki öğrenciler 123 Barış Manço 234 Cem Karaca 542 Edip Akbayram 423 Ersen Tablo tarzı veriler düz bir dosya'da (flat file'da) saklanabilir. Her kayıt bir satıra konur ve bir kayıtta her alan arasına boşluk,
sekme (tab),
 noktalı virgül (;),
virgül(,) gibi ifadeler konur.
 Olmayan değerler boş geçilir.
O zaman bir programın bunları anlaması kolay olur. Düz tabloların gelişmesiye veritabanları doğmuştur. Bir veri tabanında tablolarda hangi alanların olacağı ve bu alanlarda bulunabilecek verinin (metin,tamsayı veya kesirli sayı gibi) tipleri belirenir. Bunlara erişmek için SQL diye bir dil bulunmaktadır.
542 numaralı öğrencinin adını öğrenmek için select Name form Student şeklinde bir 'sorgu' (query) yazılır.
Zamanla, tablo yapısının çok kısıtlı olduğu ortaya çıkmıştır. Birbirine eşdeğer maddelerden oluşmayan veriler için tablo yapısı yetmez. Basit bir liste bile tablolarla kolay olarak gösterilemez. Bir şeyin altında başka birşey, onun altında da başka bir şey varsa tablolar gittikçe karmaşıklaşmaya, düzenli veri saklamak yerine giderek düzensizleşmeye başlar.
 Bir sınavın sorularını saklamayı düşünelim. Diyelim ki her sınavda bölümler, bölümlerde sorular, sorularda da şıklar olsun. Bunun için nasıl bir tablo yapmamız gerekir?
 Bir tabloda hem soru hem de şıklar saklanamaz. Bu yüzden birden çok sayıda tablo yapmak zorunda kalırız ver aralarında 'ilişki' (relation) kurmak gerekli hale gelir.
Tablolar Sınav, Bölüm, Soru ve Şık şeklinde dört adettir.
Üstelik aynı sınavın sorusu bir tabloda şıkkı başka tablodayken, bir sınavın sorusu ile başka sınavın sorusu aynı tabloda yer alır. Bir sınavdaki soruları öğrenmek için dört tablodan veri toplanması gerekir. Oysa XML ne kadar karmaşık yapıda olursa olsun veriyi bir arada tutar ve kolayca erişim sağlar.
XML-HTML Karşılaştırması HTML'de veri belli bir yapı içerisinde bulunur. Ancak bu yapı bilginin gerektiğinde erişilebilmesini değil, belli bir biçimde ekranda gösterilmesini sağlar.
HTML içerisindeki veriye kolay kolay erişemezsiniz.
Bir yazının başlığını bir kişi H1 etiketini kullanarak gösterir, başka bir kişi H2.
 Hatta font'u büyük vererek de başlık verilebilir. Bu durumda HTML belgesi içinde belli bir verinin tam olarak nerde olduğunu bulmak mümkün değildir.
 HTML, veri (data) ile biçim (style)'ın iç içe olduğu bir yapıdır. Oysa XML'de veri ayrı biçim ayrı tutulabilir. Aynı biçimle bir çok veri gösterilebilirken aynı veri bir çok biçimde gösterilebilir.
Basit bir XML örneği Bir sınavı XML olarak belirmek için şöyle bir yapı kurmak yeterlidir.
İki kere iki iki kaç eder?
22 3 4 5
Kendimi kendimden çıkarsam kaç kalır?
1 2 0 FD
Burada veri belki daha çok yer kaplar ama artık herhangi bir veriye ulaşmak çok basittir. Belki bir kişinin kendi yazdığı bir programla bu belgeden veri alması daha zordur ama en azından araya bir şey eklenirse veya çıkartılırsa program yanlış bilgiye erişmez. Dahası, bir XML belgesinden herhangi bir bilgiyi almak için çeşitli olanaklar bulunmaktadır. Programcı her zaman kendisi bir şey yapmak zorunda kalmaz.
Örneğin XPath'le
ilk sorunun 2. şıkkına erişim için
 /exam/question[number="1"]/option[id="1"]] yazmak yeterlidir.
Aynı şekilde 2. sorunun metnine
/exam/question[number="1"]/text
şeklinde erişmek mümkündür.
XPath olmadan da bir 'parser' programla XML belgesi programlar tarafından okunması için 'document' nesnesine okunabilir.
XML'in bütün espirisi bir veriyi metin olarak saklamak ve gerektiğinde kolayca erişmektir. Bu, göründüğünden çok daha güçlü özelliktir.
 Temel XML Terimleri
Her XML birimine document denir. Bu genellike bir dosyaya karşılık gelir. Document'ler element'lerden oluşur. Element içerisinde belli bir bütünlük içeren veridir. Bir belge içerisinde herşeyi içine alan bir ana element olmalıdır ki buna 'root' veya da 'document element' denir.
Her element attribute'lerden, child element'lerden ve text'lerden oluşur.
Attribute bir element hakkında bilgi veren özelliklerdir.
Text'se bir element'in içinde bulunan düz metindir.
XML'de element, attribute ve text gibi birimlere node denir.
 Burda anlatılan yapı sadece XML için değil HTML ve JavaScript gibi DOM standardını destekleyen bütün yapılar için geçerlidir.
Yazım kurallarına uygun olarak yazılmış bir belgeye 'well-formed' denir.
 Ancak bu içerisindeki verinin mantıksal olarak doğru yapıda olduğu anlamında gelmez.
'<' ile başlayan bir etiketi '>' ile kapatmak gibi kurallara uymak anlamına gelir.
Bir XML belgesinin mantıklı bir veri içermesi durumunda 'valid' olur.
Örneğin sorunun içine şık koymak yerine şıkkın içine soru koyarsanız veri yine well-formed olabilir, ama valid olmaz. Temel XML Teknolojileri XML'le birlikte bir çok dil ortaya çıkmıştır. Bir XML document'inde ne gibi element'ler ve attribute'ler olduğunu göstermek için kullanılan dile DTD denir. DTD ile benzer bir işlev gören ancak element ve attributelerin değerlerinin geçerlilik kriterlerini belirleme gibi fazladan özellikleri bulunan XSchema diye bir dil daha vardır ki bu dil de aslında XML'le yazılmıştır.
Bir XML document'inde belli bir düğümün konumunu belirtmek için XPath kullanılır.
Bir XML'i başka bir biçime, yani başka bir XML'e, düz metne veya HTML'e dönüştürmek için XSL kullanılır.
XSL'de bir XML dilidir.
Bir XML belgesinden diğer bir XML belgesine bağlantı kurmak için XLink, aynı XML belgesinde bir düğümden diğerine işaret etmek için XPointer kullanılır.
XML'in çok fazla uygulaması bunmaktadır.
XHTML, HTML'in XML versiyonu; MathML matematiksel ifadeleri belirlemek için kullanılan bir dil; SVG iki boyutlu grafikleri metin yoluyla oluşturmak için kullanılan bir dil, SMIL multimedya bileşenlerini birlikte kullanmak için kullanılan bir dildir. Ancak XML bunlarla sınrılı değildir. Hatta her programcının kendine bir veya daha fazla dil oluşturabilir. XML Dosyası Yaratmak Bir metin dosyasına '.xml' uzantısı verilip içerisine well-formed bir XML belgesi yazarsak herhangi bir uygulama tarafından işlenebilecek bir belge oluşturmuş oluruz.
Yapılacak işlemleri sırasıyla verirsek :
* Bir klasörde ('C:JavaXm' olsun) bir metin dosyası yaratıp (adı 'test' olsun) uzantısını 'xml' verin
* Bu dosyayı bir metin düzenleyicide (NotePad veya WordPad'te) açın
* İçerisine well-formed XML yazıp kaydedin
* XML'i gösterebilen bir programda (örneğin Internet Expolorer) yarattığınız belgeyi açın.
Eğer yarattığınız XML dosyası XML açabilen herhangi bir programda hatasız açılabiliyorsa XML 'well-formed' demektir. Bu şekilde Java veya herhangi bir programlama ortamına ihtiyaç duymadan XML çalışabilirsiniz.
 XML Dosyasının İçeriği Bir XML belgesinde olması gereken tek şey bir root element'tir. Yani şeklindeki ifade yeterlidir. Zorunlu olmamakla birlikte 'prolog' denilen giriş kısmı genellikle konur
Bir XML document'inde prolog 'version' ve encoding bilgisi içerebilir. Burada version XML'in versiyonudur, aşağıda kullanılan herhangi bir xml dilinin değil. Genellikle 1.0 konur. Zaten bu yazının yazıldığı tarih itibariyler sadece 1.1 versiyonu bulunmaktadır ki sadece az kullanılan dillerin karakter kodlamalarını desteklemek gibi çok önemli olmayan değişiklikler içermektedir. Belgelerdeki 'encoding' önemlidir, türkçe karakterle için türkçe encoding (ISO-8859-9)vermek gerekir. Encoding değeri olarak 'UTF-8' de verilebilir.
HTML gibi XML'de tag"lerden oluşur. Fakat, ikisi arasında tag kullanımı anlamında çok büyük bir mantık farklılığı vardır. HTML tagleri yalnızca sayfaya biçim vermek için kullanılır. (Misal bold, italik, resim, bgcolor vs..) XML'de ise tagler bilgi saklamak, ve saklanan bilgi türü hakkında bilgi vermek için kullanılır.
Buradaki XML'in konulduğu örnek :
   
 
Alıntı
<site>
 <isim> Donanim Haber </isim>

 <bölüm>
   <bölümadi> FORUM </bölümadi>
  <kullanci sayisi> 2000 </kullanici sayisi>
 </bölüm>

 <bölüm>
   <bölümadi> HABERLER </bölümadi>
  <kullanci sayisi> 500 </kullanici sayisi>
 </bölüm>
 
</site>


Tabi bu en basitinden bir XML dosyasi, ama yine de XML'in 2 ozelliği dikkat cekiyor hemen

1- bilgilerin "tree" yani agac yapisi seklinde bir hiyerarsiye sahip olmasi
2- tag isimlerini bizim vermemiz.

XML'in özü bu olsa da, hemen akla gelecek soru "iyi de kardeşim, ne işe yarar bu?"

Bir kere sakladığınız bilgiyi inanılmaz derecede anlaşılır bir standartta saklıyorsunuz. Hiç XML kullanmamış biri dahi yukarıdaki XML kodunun ne oldugunu anlayabilir. Mesela, eminim CM 03-04 oynayanlar vardır. Acın CM folderlarını, configuration dosyalarına girin. Göreceksiniz ki tüm konfigürasyonlar XML olarak tutuluyor. Hatta bu dosyaları kolayca anlayıp, CM 03-04 ayarlarını kendinize göre değistirebilirsiniz.

XML deyince, mutlaka bilinmesi gereken bir diğer kavram DTD. DTD hakkında yüzlerce resmi tanım okuyabilirsiniz, ben şimdi kısaca bir örnekle ne olduğunu anlatacağım, sanırım mantığı anlaşılacaktır:

Farzedelim ben dünyanın en büyük Kütüphanesinin yöneticisi Romario'yum. Kütüphanemde binlerce kitap var. Bunları ayrıntılarıyla kaydedip kataloglayacagim. Kitapları sınıflara ayırıyorum.. (Ansiklopedi, Atlas, Roman) diyelim. Listeyi uzatmıyorum ki işimiz uzamasın. Daha sonra bu kategorilerden Roman'ı da alt kategorilere ayırıyorum. (Politik, Korku, Aşk) şeklinde. Ve en son olarak da her roman için yazar adı, dili, ve roman adını saklıyorum.. Ansiklopedi ve Atlas için ise sadece yayınevini saklıyorum.. Ve tüm bunları XML olarak saklıyorum. (Örnek bir dosya yazacaktım ama çok uzun olacak, nasıl olacağını anladığınızı varsayarak devam ediyorum)

Bu XML dosyasını yaratıp web siteme koyuyorum. Tabi girenler bu dosyaya bakmıyorlar. Bir de stylesheet ekliyorum ki (stylesheet te XML konusunun 3üncü önemli öğesidir) insanlar HTML olarak bir sayfa görüyorlar.

ARA NOT - STYLESHEET nedir? Bu benim XML dosyama göre hazırlanmış özel bir konfigürasyon dosyası. Mesela bu dosyada diyorum ki, table oluştur, kitap ismini bold yaz, yanına yazar adını, dilini ve türünü italik yaz. Ayrıca tüm kitapları da baştan (Ansiklopedi, Atlas, Roman) kategorilerine göre ayır. Server XML dosyasını ve bu stylesheeti birleştirip bir HTML sayfası oluşturuyor. Ve sayfaya girenler kütüphanedeki kitapları HTML sayfasında görüyor.

Şimdi.. Farzedelim Rusyanın en büyük kütüphanesinin yöneticisi Karpin'de elindeki kitapları XML'e döküyor. Ve aynı yöntemle internete koyuyor. AMA ONUN TAG TANIMLARI VE XML YAPISI BENIMKInDEN COK FARKLI. Fakat büyük bir sans kacıyor, ikimizin XML yapısı aynı olsaydı, ben onun sitesindeki XML'i kendi siteme alıp kendi stylesheetimle birleştirip kendi sayfamda yayınlayabilirdim. Yani, eer tüm dünyada Kütüphane XML yapısı aynı olsa, hepsine ulasılan bir site yapılır burada search vs.. yapılabilirdi. (Bu is icin özel diller var - XQuery falan, ama bunlar genelde firmadan firmaya değişiyor). İste DTD bu. XML kuralları koyan bir dosya. Ve eger benim XML'in bu Data Definiton'a uymuyorsa hata veriyor. Ve bu sayede standarta oturtabiliyorum.

XML, DTD, Stylesheet bu. Zaten ilk etapta ögrenilmesi gerekenler bunlar. Artık hemen hemen tüm programlama dilerinin XML'e has fonksiyonları var. (Benim bildiklerim Javascript, Java, ActionScript vs..)

Hatta artık geleneksel database'ler yerine XML şeklinde databaseler yayılıyor. Ama tahmin edeceginiz gibi bunların en önemli handikapı - tüm dataların text formatında kaydedilmesi. Bu yüzden de çok yer kaplıyor. Bu DB'lere Native XML DBler deniyor. Bir de, XML olarak saklamayan, ama size XMLmiş gibi yapanlar var ki bunlar herhalde yakında cok cok popüler olurlar. Bunlar ise, kendi teknikleriyle saklıyorlar datayı, fakat sizden SQL querysi yerine XML queryisi alıyorlar, ve sonucları da XML olarak veriyorlar. Ama yeni ögrenenlerin kafası karışmasın, bu son paragraf ayrı bir başlık. Bu konu biraz XML'in DB'e uygulanışı kapsamında.

Nasıl ki web sayfası yapması ve HTML cok zor degildir ama ustalasmaya calıstıkca secenekler artar (PHP, ASP, JSP, ColFusion vs.., Javascript, Jscript, VBScript, DHTML, SHTML) ve insanların gözü korkar, bu XMLde öyle. Temelleri cok zor degil. Ama biraz derinlesince, her firmanın kendine has XML dilleri, XML spesifikasyonları vs.. oldugunu görürsünüz. Ama nasıl digerinde bir ucundan baslayınca yavas yavas hersey ögreniliyor, XMLde de öyle. Korkmayın, deneyin..
Kolay gelsin
Logged
safak'adlı üyenin imzası
Resimlerin Görüntülenmesine İzin Verilmiyor
Resimleri Görebilmek İçin Üye Ol veya Giriş Yap
Giresunform Mod
Site Polisi
*****
Offline

Konular: 2,328


View Profile
Re: XML dersleri
« Posted on: 10 Şubat 2012, 04:32:15 »

 
      uyari
Merhaba ziyaretçi. Öncelikle sitemize hoşgeldiniz. Ben robot moderatör olarak siteden daha fazla yararlanmanız için sitemize üye olmanızı öneririm. iyi eğlenceler.

giris  kayit
Logged
Sayfa: [1]
Cevap Yaz Yeni Konu Haberdar Et Okunmadı Say Bu Konuyu Gönder Yazdır
Gitmek istediğiniz yer:  

+ Hızlı Cevap

KalınİtalikAltını ÇizÜstü Çizgili|Işıldayan YazıGölgeli YazıKayan Yazı|Formatlı YazıSola DayalıOrtalanmışSağa Dayalı|Yatay Çizgi|Yazı Tipi BüyüklüğüYazı Tipi
Resim EkleSite Adresi EkleE-Posta Adresi EkleFTP Adresi Ekle|Tablo EkleTabloya Satır EkleTabloya Sütun Ekle|Üst YazıAlt YazıDaktilo tarzı yazı|Kod EkleAlıntı Ekle|Liste EkleBilgi Kutusu Ekle
agla blush bunepeki bys cicek dancing dost hihi huhu kiki lütfen morgöz sicak sleep suss thankyou yasa yimaa biy


Bu site en iyi 1024x768 ebatlarında ve Mozilla Firefox Edinin tarayıcısı ile gözlemlenir!

MySQL Kullanıyor PHP Kullanıyor Powered by SMF 1.1.16 | SMF © 2006-2011, Simple Machines XHTML 1.0 Uyumlu! CSS Uyumlu!