230 likes | 374 Views
XML HAKKINDA. XML. HTML gibi işaretleme etiketlerini kullanan , verilerin depolanmasını sağlayan ve bu verileri metin formatında saklayan bir dildir . HTML ile XML arasındaki temel fark XML işaretleme etiketlerinin bilginin içeriğini tanımlamak için kullanılmasıdır .
E N D
XML • HTML gibiişaretlemeetiketlerinikullanan, verilerindepolanmasınısağlayanvebuverilerimetinformatındasaklayanbirdildir. • HTML ile XML arasındakitemelfark XML işaretlemeetiketlerininbilgininiçeriğinitanımlamakiçinkullanılmasıdır. • HTML’dekiyapınınaksineXML’dekullanılacakolanetiketleröncedentanımlıdeğildir. • Yanibir XML belgesininyapısıtamamıylekullanıcıtarafındanoluşturulur • Verinintarifedilmesiiçin • DTD(Document Type Definition (XML belgesindekullanılacaketiketleriveyapılarıöncedentarifettiğimizkütükler)) adıverilenyapılarkullanılmaktadır. • XML ve DTD’nin birlikte kullanılması ile belgeler kendini tarif eden bir yapı halini alırlar. • XML dökümanındakinesnekavramıvebunesneleribelirten tag yapılarıbizimtarafımızdanoluşturulduğuiçin XML genişletilebilirözelliğesahiptir. • XML'iHTML'inyerinegeçecekbirdildeğil de tanımlayıcısıolarakdüşünmekdahauygundur.
XML • XML ve HTML arasındaki en belirgin fark XML’in verinin kendisiyle ilgilenmesi, HTML’in ise verinin sunumuyla ilgilenmesidir. Buna bağlı olarak HTML belgeleri veriye ilişkin şekillendirme bilgilerini içerirken, XML dökümanları ise verinin tanım bilgilerini içermektedir. XML’in tasarım amaçlarından biri de verinin taşınmasıdır. • Aşağıda basit bir XML örneği görmektesiniz. <öğrenci> <isim>Mehmet</isim> <soyisim>Levent</soyisim> <numara>1200001</numara> <bölüm>Bilgisayar Mühendisliği</bölüm> <sınıf>4. sınıf </sınıf> </öğrenci>
XML – Etiketleri • XML kütükleri her zaman belgelerin mantıksal bölümlerinin (element) başlangıç ve bitişlerini işaret eder. • HTML’dekullanılan <p> ve <h1> gibi standart etiket yapıları yukarıdaki XML belgesinde kullanılmamıştır. • Bahsedilen bu özelliği nedeniyle XML belgeleri genişleyebilir (extensible) bir yapıya sahiptir. • Belgelerin bu hali gerçek anlamda herhangi bir şey ifade etmez. • Belgenin iletimi (gönderim veya alım) ya da sunumu için başka şeylerin de yapılması gerekmektedir. <öğrenci> <isim>Mehmet</isim> <soyisim>Levent</soyisim> <numara>1200001</numara> <bölüm>Bilgisayar Mühendisliği</bölüm> <sınıf>4. sınıf </sınıf> </öğrenci> Öğrenci nesnesi için bir etiket Öğrenci nesnesi ait bir özellik
XML – Nasıl Kullanılır • XML ile veriler yapı bakımından modülerlik kazanmaktadır. • XML belgeleri, verinin içeriğiyle ilgilenmektedirler. • Bu sayede verilerin içerik, yapı ve sunum kısımları ayrı modüller halinde farklı XML belgelerinde tutulmaktadır. • XML belgeleri Veri Adaları (Data Islands) adı verilen teknik sayesinde HTML sayfaları içerisinde de depolanabilmektedir. • Bu teknik sayesinde verinizin sadece sunumuyla ilgilenilmektedir • Veri Adaları(Data Islands) bir HTML sayfasında XML komutlarının gömülü olması ve onların işlenebilmesi demektir. Böylece HTML sayfasının içine artık sadece HTML etiketleri değil, aynı zamanda XML komutları da yazılabilir
XML – Nasıl Kullanılır • Veriyi HTML’den ayırır. Böylece küçük JS kodları ile bir XML dosyasını okuyarak web sayfamızın veri içeriğini dinamik olarak güncelleyebiliriz. • Veri paylaşımını basitleştirir. XML verisi düz metin şekline saklanır. Bu da verinin hem donanımdan hem de yazılımdan bağımsız saklanmasını sağlar. Böylece farklı platformlar arasında kolay veri paylaşımı gerçekleşir. • Veri taşınmasını basitleştirir. Uyumsuz sistemler arasındaki en büyük problem veri taşınması sırasında yaşanan zaman problemidir. XML bu zorluğu ortadan kaldırır. • Platform değişikliğini basitleştirir. Alt yapıda yapılacak bir işletim sistemi, uygulama, veritabanı veya tarayıcı değişikliğinden etkilenmez ve veri kaybını önler.
XML – Nasıl Kullanılır • Data Island HTML sayfalarına iki şekilde gömülür: • Direk XML datasını HTML‘niniçine gömerek HTML sayfasından XML'ireferans göstererek. <XML ID="XMLID"> <öğrenci> <isim>Mehmet</isim> <soyisim>Levent</soyisim> <numara>1200001</numara> <bölüm>Bilgisayar Mühendisliği</bölüm> <sınıf>4. sınıf </sınıf> </öğrenci> </XML> <XML ID="XMLID" SRC="students.xml"></XML>
XML • 1. satır XML versiyonunu ve kullanılacak karakter setini deklare eder. • 2. satır ise belgenin KÖK elemanını tanımlar. • Sonraki 4 satır ise KÖK elemanın ÇOCUKLARINI tanımlar • ÇOCUKLAR birbirleriyle kardeştirler ve her çocuğun kendi çocuğu da olabilir. • Son satır ise KÖK elemanın bittiğini belirtir. Satır 1 Satır 2 Satır 7 <?xml version="1.0" encoding="windows-1254"?><not> <kime>Erman</kime> <kimden>Ozgur</kimden> <konu>TBMM Ders</konu> <icerik>Yarın yapılacak XML dersini unutmayalım!!!</icerik></not>
XML – Söz Dizimi (Syntax) • XML başlangıç ve bitiş etiketi kurallarına sıkı sıkıya bağlıdır. • HTML’de örneğin <p> ile başlamamız gereken bir paragrafı </p> etiketiyle kapatmasak bile tarayıcı çoğu zaman bu hatayı göz ardı ederek HTML belgesini görüntüler. XML bunu kesinlikle kabul etmez. • XML’in bu nitelikte bir başka özelliği de büyük/küçük harf duyarlı (case-sensitive) olmasıdır. Bu bağlamda bir elemanın başlangıç etiketinin bitiş etiketiyle tamamen aynı yazılışta olması gerekir. • XML Yorum: • <!– Bu bir yorumdur--> • XML sözdiziminin temel taşı olan elemanların(element) isimlendirilmesinde uyulması gereken kurallar şunlardır: • İsimler harf,sayı ya da diğer karakterleri içerebilir. • İsimler bir sayı veya _ (alt çizgi) karakteri ile başlamamalıdır. • İsimler “xml“(ya da XML veya Xml) şeklinde başlamamalıdır • İsimler boşluk içermemelidir.
XML – Özel Karakterler • 5 tane ön tanımlı özel karakter vardır. • Kullanım • <mesaj>maas<1000 then</mesaj>YANLIŞ • <mesaj>if maas < 1000 then</mesaj>DOĞRU
XML – Özellikler (Attributes) • Özellikler elemanlar hakkında ek bilgiler verir. • <imgsrc="bellek.gif"> • <a href="index.asp"> • Özellikler tırnak için gösterilmelidir. • <personsex="female"> veya • <personsex='female'> • Eğer bir özellik kendi içinde Tırnak karakterini içiyorsa: • <gangster name='George "Shotgun" Ziegler'> veya • <gangstername="George "Shotgun" Ziegler">
XML – DTD (DocumentTypeDecleration) • DTD'leri, XML dokümanlarının yapı bilgilerini tutan modüller olarak tanımlamak mümkündür. • Doküman içinde kullanılacak olan tüm varlıklar daha önceden DTD içerisinde tanımlanmalıdır. • XML belgelerinin platformdan bağımsız olması ve kolayca oluşturulabilmesi uygulamada çok fazla anlam ifade etmiyor. • Belgeyi kullanacak olan uygulamalara belgenin yapısı hakkında tanımlamalar da bulunulması gerekir. • Bu tanımlamalar sayesinde belgeyi işleyecek olan uygulama belgenin içeriği hakkında bilgi sahibi olur ve işlemlerini bu çerçevede sürdürür. • Kısaca DTD belgenin içeriğini tanımlamamıza yarar. • DTD bildirim sözcükleri XML belgesine eklenir.
XML – DTD (DocumentTypeDecleration) <?XML version=”1.0”?> <öğrenci> <isim>Mehmet</isim> <soyisim>Levent</soyisim> <numara>1200001</numara> <bölüm>Bilgisayar Mühendisliği</bölüm> <sınıf>4. sınıf </sınıf> </öğrenci> • Örnek Bu bilginin parser tarafından işlenebilmesini sağlamak amacıyla <?XML version=”1.0”?> <!DOCTYPE öğrenci SYSTEM ”öğrenci.dtd”> <öğrenci> <isim>Mehmet</isim> <soyisim>Levent</soyisim> <numara>1200001</numara> <bölüm>Bilgisayar Mühendisliği</bölüm> <sınıf>4. sınıf </sınıf> </öğrenci> yukarıdada görüldüğü gibi sisteme öğrenci nesnesinin tanımını öğrenci.dtd isimli dosyada bulunduğunu belirtmiş oluyoruz.
XML – DTD (DocumentTypeDecleration) • Öğrenci.dtd isimli dosya: • Eğer “Declaration” file kullanmasaydık ve “Definition”larımızı XML belgesinin içine gömmeye kalksaydık , bunu belgeye aşağıdaki satırları ekleyerek sağlamak zorundaydık. <!ELEMENT öğrenci(isim, soyisim, numara, bölüm, sınıf)> <!ELEMENT isim (#PCDATA)> <!ELEMENT soyisim (#PCDATA)> <!ELEMENT numara (#PCDATA)> <!ELEMENT bölüm (#PCDATA)> <!ELEMENT sınıf (#PCDATA)> <!DOCTYPE öğrenci[ <!ELEMENT öğrenci(isim,soyisim,numara,bölüm,sınıf)> <!ELEMENT isim (#PCDATA)> <!ELEMENT soyisim (#PCDATA)> <!ELEMENT numara (#PCDATA)> <!ELEMENT bölüm (#PCDATA)> <!ELEMENT sınıf (#PCDATA)> ]>
XML – DTD (DocumentTypeDecleration) • DTD Oluşturma • Bir DTD oluşturmak için öncelikle XML’in temel özelliklerini bilmeliyiz. • Bir doctype bildirimi, DTD ile XML belgesini birbirine bağlar. • Doctypebildirisi XML belgesinin girişine yazılır ve herhangi bir elemandan önce gelir. • Bu bildiriden önce XML bildirisi yer alır. Bundan başka işleyici komutları, yorum satırları da olabilir. • Bir öğrenci elementini data halinde XML kullanarak geliştirebilmek için önce elementin hangi özellikleri bulunduğunu belirlememiz gerekir. • Diyelim ki buna karar verdik: • Özelliklerimiz isim, soyisim, numara, bölüm ve sınıf olsun. • O zaman içinde <isim>, <soyisim>, <numara>, <bölüm>, <sınıf> elementlerini bulunduran <öğrenci> elementine ihtiyacımız var.
XML – DTD (DocumentTypeDecleration) • Eğer DTD yi XML kodunun içine yazıyorsak aşağıdaki gibi olmalıydı. <!DOCTYPE öğrenci[ <!ELEMENT öğrenci(isim,soyisim,numara,bölüm,sınıf)> <!ELEMENT isim (#PCDATA)> <!ELEMENT soyisim (#PCDATA)> <!ELEMENT numara (#PCDATA)> <!ELEMENT bölüm (#PCDATA)> <!ELEMENT sınıf (#PCDATA)> ]> <!DOCTYPE öğrenci [ Bu satırda <öğrenci> adında bir kök elementi bulunan DOCTYPE bildirisi yapılıyor. Köşeli sol parantez ([), bir iç DTD alt kümesinin başladığını gösterir. Eğer bir dış DTD de bulunsaydı, bu parantezden önce dış DTD referansı yer alacaktı. <!ELEMENT öğrenci(isim,soyisim,numara,bölüm,sınıf)> Bu satır ise <öğrenci> elementinin, bir <isim>, <soyisim> <numara> <bölüm> <sınıf> elementlerini içerdiğini, bunlardan sadece birer tane olabilceğini ve bu elementlerin sırasının yukarıdaki gibi olacağını ve örneğin <soyisim> elementini <isim> elementinden önce gelmemesi gerektiğini anlatmaktadır.
XML – DTD (DocumentTypeDecleration) <!ELEMENT isim (#PCDATA)> <!ELEMENT soyisim (#PCDATA)> <!ELEMENT numara (#PCDATA)> <!ELEMENT bölüm (#PCDATA)> <!ELEMENT sınıf (#PCDATA)> Bu satırlar ise bize <isim>, <soyisim> <numara> <bölüm> <sınıf> elementlerinin her birinin “parsed character” verisi tuttuğunu fakat herhangi bir çocuk element içermediğini belirtir.
XSL(T)(ExtensibleStylesheet Language) • XML önceden tanımlanmış etiketleri kullanmadığı için (kendi etiketlerimizi tanımlayabildiğimiz için) , bu etiketlerin anlamı anlaşılmaz. • <table>, bir HTML çizelgesi anlamına gelebildiği gibi başka birçok anlama da gelebilir. • XML’indoğal yapısından dolayı tarayıcı XML belgesini nasıl görüntüleyeceğini bilemez. • Bu XML belgelerini göstermek için, belgelerin nasıl gösterilmesi gerektiğini tanımlayan bir mekanizmaya ihtiyaç vardır. • Bunlardan biri CSS (Cascading Style Sheets)’dir. CSS, HTML ile kullanılmak üzere tasarlanmıştır. • XML ile kullanılacak potansiyeli olmasına rağmen, CSS'in temel işlevi sadece web görsel ortamıdır. • Yani web üzerinden sunum yapmaktır. CSS ile bir elemanın renk, büyüklük ve pozisyonu gibi özellikleri rahatlıkla ayarlanabilmektedir. • W3C XML formatlamak için XSLT yi kullanmayı önermiştir.
XSL(T)(ExtensibleStylesheet Language) • XSL (eXtensibleStylesheet Language), XML’in tercih edilen “stylesheet” dilidir. • XSL, HTML tarafından kullanılan CSS’den daha beceriklidir. • XSL de, XML'in yapısını kullanarak sunumlar hazırlamak için kullanılır. • Fakat sunum, yalnız web üzerinden değil, aynı zamanda işitsel ya da yazılı da olabilir. • Diyelim ki, BAŞLIK diye bir kitap başlığı etiketimiz var. XSL'e, “BAŞLIKı gördüğün zaman, içeriğini bold ve rengini kırmızı yap” kuralını tanımlıyoruz(verimizi webde yayınlamak istediğimizi düşünelim). • XSL işlemcisi (mesela IE 5 içerisinde bulunan, ya da bir XSL viewer), bunu HTML'e çeviriyor. • Yani XSL, XML kodlarını değişik biçimlere çevirmek için kurallar tanımlayan bir stil uygulaması olarak da düşünülebilir. • Mesela, görme engelliler için bir web sayfasından verilerin sese çevrilmesi gibi amaçlar için kullanmak hayal değildir
XSL 3 kısımdan oluşur: • XML belgelerini çevirmeye yarayan yöntem. • XML’inbölümlerini ve şablonlarını tanımlamaya yarayan yöntem • XML belgelerini biçimlendiren yöntem. • Daha basitçe XSL: • XML’iHTML’e ya da başka yapıdaki XML belgelerine çevirmeye yarayan, • XML verisini süzen ve sıralayan, • XML belgesinin bölümlerini adresleyen, • XML verilerini veri değerine göre biçimlendiren (örneğin negatif değerleri kırmızı renkle gösteren), • XML verilerinin çıktısını değişik aygıtlara veren (ekran, kağıt vb.) bir dildir. • Eğer belli yapıda bazı verilerimiz var ve aynı amaç içinde kullanmamız gereken başka yapılarda verilerimiz de varsa, ikisinin ortak bir yapıya dönüştürülmesi için, belgemizi başka bir XML belgesine çevirmek gereğini duyabiliriz.
XSL(T)(ExtensibleStylesheet Language) XSL 3 kısımdan oluşur: XML belgelerini çevirmeye yarayan yöntem. XML’inbölümlerini ve şablonlarını tanımlamaya yarayan yöntem XML belgelerini biçimlendiren yöntem. Üstteki üç madde aslında XSL’i oluşturan üç ayrı dile denk düşer: XSLT : XML’i çevirir. XPath : XML’in bölüm ve şablonlarını tanımlar. XSL-FO(Formatting Objects) : XML görüntülenmesini tanımlar. XSLT, XML belgelerini diğer türden belgelere veya diğer XML belgelerine çevirmeye yarar. XPath, XML belgelerinin kısımlarını adreslemekte kullanılır. XPath, XSLT tarafından kullanılır. Biçimlendirme işlemi, XSL çevirisinin sonuçlarının, kullanıcı (okuyucu yada dinleyici) tarafından anlaşılabilen uygun bir biçime dönüştürülmesidir.