xml hakkinda

23

Upload: jessie

Post on 09-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

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 .  - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML HAKKINDA
Page 2: XML HAKKINDA

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. 

HTML’deki yapının aksine XML’de kullanılacak olan etiketler önceden tanımlı değildir.

Yani bir XML belgesinin yapısı tamamıyle kullanıcı tarafından oluşturulur

Verinin tarif edilmesi için o DTD (Document Type Definition (XML belgesinde kullanılacak etiketleri ve yapıları

önceden tarif ettiğimiz kütükler)) adı verilen yapılar kullanılmaktadır. XML ve DTD’nin birlikte kullanılması ile belgeler kendini tarif eden bir

yapı halini alırlar. XML dökümanındaki nesne kavramı ve bu nesneleri belirten tag

yapıları bizim tarafımızdan oluşturulduğu için XML genişletilebilir özelliğe sahiptir.

XML'i HTML'in yerine geçecek bir dil değil de tanımlayıcısı olarak düşünmek daha uygundur.

2

Page 3: XML HAKKINDA

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.

3

<öğ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>

Page 4: XML HAKKINDA

XML kütükleri her zaman belgelerin mantıksal bölümlerinin (element) başlangıç ve bitişlerini işaret eder.

HTML’de kullanı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.

4

<öğ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

Page 5: XML HAKKINDA

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

5

Page 6: XML HAKKINDA

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.

6

Page 7: XML HAKKINDA

Data Island HTML sayfalarına iki şekilde gömülür:o Direk XML datasını HTML‘nin içine gömerek 

HTML sayfasından XML'i referans göstererek. 

7

<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>

Page 8: XML HAKKINDA

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.

8

<?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>

Satır 1Satır 2

Satır 7

Page 9: XML HAKKINDA

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:o İsimler harf,sayı ya da diğer karakterleri içerebilir.o İsimler bir sayı veya _ (alt çizgi) karakteri ile başlamamalıdır.o İsimler “xml“(ya da XML veya Xml) şeklinde başlamamalıdıro İsimler boşluk içermemelidir.

9

Page 10: XML HAKKINDA

5 tane ön tanımlı özel karakter vardır.

Kullanım o <mesaj>maas < 1000 then</mesaj> YANLIŞo <mesaj>if maas  &lt; 1000 then</mesaj> DOĞRU

10

Page 11: XML HAKKINDA

Özellikler elemanlar hakkında ek bilgiler verir.o <img src="bellek.gif">o <a href="index.asp">

Özellikler tırnak için gösterilmelidir.o <person sex="female">

veyao <person sex='female'>

Eğer bir özellik kendi içinde Tırnak karakterini içiyorsa:o <gangster name='George "Shotgun" Ziegler'>

veyao <gangster name="George &quot;Shotgun&quot; Ziegler">

11

Page 12: XML HAKKINDA

<person sex="female">  <firstname>Anna</firstname>  <lastname>Smith</lastname></person>

<person>  <sex>female</sex>  <firstname>Anna</firstname>  <lastname>Smith</lastname></person>

12

Tercih edilen yöntem

<not tarih="10/01/2008">  <kime>Erman</kime>  <kimden>Jani</kimden>  <konu>Reminder</konu>  <icerik> Dersi Unutma</icerik></not>

<not"> <tarih>=10/01/2008</tarih>  <kime>Erman</kime>  <kimden>Jani</kimden>  <konu>Reminder</konu>  <icerik> Dersi Unutma</icerik></not>

<not>  <tarih>=10/01/2008</tarih> <gun> 18</gun> <ay> 12 </ay> <yil> 2012</yil> <kime>Erman</kime>  <kimden>Jani</kimden>  <konu>Reminder</konu>  <icerik> Dersi Unutma</icerik></not>

Page 13: XML HAKKINDA

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.

13

Page 14: XML HAKKINDA

Örnek

14

<?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>

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.

Page 15: XML HAKKINDA

Öğ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.

15

 <!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)> ]>

Page 16: XML HAKKINDA

DTD Oluşturmao Bir DTD oluşturmak için öncelikle XML’in temel özelliklerini

bilmeliyiz. o Bir doctype bildirimi, DTD ile XML belgesini birbirine bağlar. o Doctype bildirisi XML belgesinin girişine yazılır ve herhangi bir

elemandan önce gelir. o Bu bildiriden önce XML bildirisi yer alır. Bundan başka işleyici

komutları, yorum satırları da olabilir. o Bir öğrenci elementini data halinde XML kullanarak

geliştirebilmek için önce elementin hangi özellikleri bulunduğunu belirlememiz gerekir.

o Diyelim ki buna karar verdik:o Özelliklerimiz isim, soyisim, numara, bölüm ve sınıf olsun.  o O zaman içinde <isim>, <soyisim>, <numara>, <bölüm>,

<sınıf> elementlerini bulunduran <öğrenci> elementine ihtiyacımız var.

16

Page 17: XML HAKKINDA

Eğer DTD yi XML kodunun içine yazıyorsak aşağıdaki gibi olmalıydı.

17

<!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.

Page 18: XML HAKKINDA

18

<!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.

Page 19: XML HAKKINDA

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’in doğ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.

19

Page 20: XML HAKKINDA

XSL (eXtensible Stylesheet Language), XML’in tercih edilen “style sheet” 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

20

Page 21: XML HAKKINDA

XSL 3 kısımdan oluşur:o XML belgelerini çevirmeye yarayan yöntem.o XML’in bölümlerini ve şablonlarını tanımlamaya yarayan yöntemo XML belgelerini biçimlendiren yöntem.

Daha basitçe XSL:• XML’i HTML’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.

21

Page 22: XML HAKKINDA

XSL 3 kısımdan oluşur:

XML belgelerini çevirmeye yarayan yöntem.XML’in bölümlerini ve şablonlarını tanımlamaya yarayan yöntemXML 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.

22

Page 23: XML HAKKINDA

Tesekkurler

23