Mobil Uygulama Geliştirme Android için XML Dili Android için XML Dili XML’in Sahibi Kimdir? XML Nedir? Ne değildir? XML’in Amacı Nedir? Dünyadaki kurum yada Kuruluşlar XML’den nasıl yararlanıyor? XML Belgelerinin kod yapısı nasıldır? 2 XML’in Sahibi Kimdir? XML W3C (World Wide Web Consortium) organizasyonu tarafından geliştirilmiş bir projedir. http://www.w3.org/ W3C bağımsız bir kuruluştur. (www) standartlarını belirleyen bir topluluktur. XML hiçbir firmanın,kurumun yada şirketin tekelinde olmayan bir standarttır.Herkes alır kullanır. 3 XML Nedir? Ne değildir? Kelime Anlamı XML (extensible Markup LangueGenişletilebilir işaretleme dili) dir. Eks-em-el olarak okunur. XML bir belgenin yapısını ve görünümünü tanımlamak için kullanılan uluslararası bir standarttır. XML platform bağımsız bir teknolojidir. 4 Java-XML-Lunix platform bağımsız bir teknolojidir. Bu üç teknoloji Android’de birleşmiştir. 5 XML nedir? Ne Değildir? Bir veritabanının XML Servisleri kullanılarak verilerin dış sistemlere taşınmasına izin verir.Bu sebepten dolayı çok popülerdir. Mesala Moskovada bir kütüphanenin içinde kaçtane kitaplar var.Hangi kitap var Amerikada bir kütüphane sizde hangi kitaplar benim paylaşırmısınız dedi.Bende kaçtane var onu sizinle paylaşıyım dedi.Bunlar internet üzerinden nasıl haberleşebilir 6 XML nedir? Ne Değildir? Bunların birbiriyle haberleşeceği dil XML’dir. XML program geliştiricilerin kendi etiketlerini tanımlamasına imkan tanır. Bu durum rahat ve etkin programlamaya da zemin hazırlar. Oluşturulan etiketlerin hepsi kendi yapıları içerisinde standardize edilirler. HTML’nin taglarını kullanmak zorundasınız. XML’de ise kendi taglarınızı yazıyorsunuz. XML bu yönü ilede oldukça esnektir. 7 XML nedir? Ne Değildir? XML aynı HTML gibi markup dillerdendir. (HTML’nin çocuğu gibidir. Ama kısıtlı değildir.) Bir belgedeki verileri seçerek işaretlemeye ve onlara biçim kazandırmaya yarayan dillere markup dilleri diyoruz. Örneğin bana bu etiketteki bilgileri getir. Personel tag’ı olsun personelin boyu, yaşı, kilosu,doğum tarihi ve maaşı gibi veriler olsun.Sadece bana maaşı>5000 büyük olanları getirdiğinizde bir işaretleme yapım bunlara bir biçim getirdiniz. 8 XML nedir? Ne Değildir? XML bir meta-dildir. (XML Hem Dil Hemde Teknolojidir.) Meta-dil etiketler(tags) yardımıyla başka bir dil tanımlamaya izin verir. XML ile siz başka bir dil daha tanımlayabiliyorsunuz. 9 Markup Dili XML tabanlı markup dilidir. XHTML javada JSF’de de görürsünüz.Net Beans ile yazılan JSF sayfalarının çoğunluğu XHTML’dir. 10 Markup Dili Cep telefonları için WML vardı.WML 2.0’dan sonra kullanımı azaldı. En son gelinen noktada XHTML Mobile Profile vardır. 11 Markup Dili XML verilerin bir standart ihtiyacına binaen oluşturulmuştur. XML hem bir teknlojidir hem de bir dildir. 12 Markup Dili XML standart bir teknlojidir. XML ile kod geliştirmesi ve çalıştırması için ek bir yazılıma gerek duymaz.Web tarayıcısında bile çalışır. 13 XML’in Amacı nedir? XML’nin gayesi HTML gibi sadece veriyi görüntülemek değildir. XML’in gayesi veriyi tanımlamak ve taşımaktır.XML bunun için geliştirilmiştir. Bize çok güzel imkanlar sağlamaktadır. XML verileri değiştirmek içinde kullanılır. 14 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? Gerçek dünyada veritabanı sistemleri farklı biçimlerde veriler kullanırlar. XML kurum ve kuruluşlar arasındaki veri alışverişini sağlar Bir kurum .net kullanır, java kullanır,php kullanabilir. Veritabanları,yazılımlar veya sistemler değişebilir. Her kurum farklı farklı teknolojiler kullanır. 15 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? XML verilerin alışverişindeki temel sorunları ortadan kaldıran bir ortak dildir. Bir kurum projelerinde .net kullansın veritabanı m.sql olsun diyer tarafta başka bir kurum projesinde java veritabanıda mysql kullansın. XML değişik alt yapıların birbiri ile iletişimde buluna bilmesini çok kolay bir şekilde yapabilmektedir. 16 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? XML farklı sistemler arasında verilerin alışverişini sağlar. XML verilerin yapısının tanımlamada ve taşınmasında kullanılan standart bir teknolojidir. 17 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? XML Başta veritabanları arasında daha sonra web ortamında, masaüstü ve mobil uygulamaların arasında kullanılır. Veriyi taşıdığı için çok önemli rol oynamaktadır. 18 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? XML sayasinde çok farklı ve değişik uygulamaların veritabanları arasında veri alışverişi yapabilmektedir. Cep telefonun da bir proje geliştirmişsiniz ordan veritabanına bir bilgi gidiyor. Ordan masüstüne geliyor. XML bu aralarda veri taşınmasında kullanılır. 19 Dünyadaki kurum ve kuruluşlar XML’den nasıl yararlanıyorlar? XML verileri standart olarak tanımlandığıdan veri alışverişi kolaylaştırmaktadır. XML kısaca dünyada bütün bilgilerin paslaştığı ve buluştuğu ortak noktadır. Java da her platformda çalışıyor ama java gibi değildir. .net ile nasıl paslaşacak arada bir gereklidir. Web servislerinde de XML kullanılır.Bilgiler çekildiği için XML bulunmak zorudadır. 20 XML verileri nasıl saklar XML verilerimizi otamatik olarak içerik bilgileriyle beraber saklar. XML verileri etiketleri arasında ve öz niteliklerinde tutar XML halinde tutulan verileri biz istediğimiz anda içerik ve sunum bilgileri XML birbirinden ayırabilir. XML Java Kitapları getir dediğimizde ekrana getirebilir. Sisteme de yükleye bilir 21 XML Belgelerinin Kod Yapısı Nasıldır? XML belgeleri gövde kısmı ile başlar. En üste ana node vardır.Nodelar gövdeleri temsil ediyor. Ana yer ve çocuklar. Çocuklarında çocukları şeklinde dallanıp gidiyor. Matematik te pascal üçgeni vardır.Onada biraz benziyor. Anne var çocuk var çocukların çocukları var 22 XML Belgelerinin Kod Yapısı Nasıldır? Burda seviyeler çok önemlidir. İkinci seviye birinci seviye hepsi önemlidir.Sorgulamada önemlidir. Her seviye aslında bir TAG denk geliyor. Gövde içerisinde kendimize ait elemanlarımız vardır. Gövde kısmı hiyerarşik ağaç yapısındadır. 23 XML Belgelerinin Kod Yapısı Nasıldır? XML büyük ve küçük harfe duyarlıdır. Belgemizde en üst seviyede bulunan elemana kök eleman denir.En az bir elemanı içine alan her eleman kök elamanıdır. Diğerleri de çocuk olmuş oluyor. Bir elemanın içinde başka elemanlarda olabilir 24 XML Belgelerinin Kod Yapısı Nasıldır? Resimde 3 tane elemanın devamı yok 4 elemanın bir alt seviyede.Dahada hiyerarşik yapıda dallanabilir. 25 XML Belgelerinin Kod Yapısı Nasıldır? Gövdedeki her elamanın başlangıç ve bitiş etiketleri bulunmaktadır. Bunlar birbirine kesmeyecektir.<container> açtığınızda kapatmanız gerekmektedir. Bu elemanların adlandırılması değişken tanımlama kurallarıyla aynıdır.Bunların hepsi javadaki tanımlamalar aynıdır. 26 XML Belgelerinin Kod Yapısı Nasıldır 27 Enbaşta arabalar diye bir kök vardır.Kökün altında araba araba diye çocuklar vardır. Çocuğun içinde marka model renk diye birimler vardır. Sağ taraftada hiyerarşik yapısı vardır. 28 29 30 31 Domain ismini tersten yazalım.Firmaların birbirleriyle kodları karışmasın diye bu şekilde kullanır. 32 33 34 35 36 37 38 Arabaların bilgileri veritabanına gittiğinde kaydedilebilir. Döngülerin vasıtasıyla veritabanındaki bilgiler ya XML yada XML’den veritabanına kaydedilebilir. Veritabında kullandığınız alanlara denk geliyor. Araba diye tablonuz var. Marka model renk de onun alanları oluyor. 39 Arabanın 1. kaydında bu bilgiler Arabanın 2. kaydında bu bilgiler Arabanın 3. kaydında bu bilgiler 40 Bunu siz tarayıcı üzerinden de görebilirsiniz. Her başalayan bitişi var. Bunun üzerine tez yapan insanlar vardır. 41 42 43 44 Enbaşta arabalar diye bir kök vardır.Kökün altında araba araba diye çocuklar vardır. Çocuğun içinde marka model renk diye birimler vardır. Sağ taraftada hiyerarşik yapısı vardır. XML basit tanımı ile bir veri işaretleme dilidir. Bir açıdan HTML' e (Hyper Text Markup Language) benzer. XML dokümanı, veri ve bu veriyi işaretlemek için kullanılan takılardan oluşur. Şekil 3.1' de örnek bir XML dokümanı verilmiştir. Şekil 3.1: Basit bir XML örneği Şekil 3.1: Basit bir XML örneği HTML ve XML Arasındaki Farklılıklar HTML verinin tarayıcıda nasıl görüntüleneceğini tanımlayan sabit takılardan oluşur. XML ise Web sistemlerine bilgi işlem yeteneği kazandırmak için tasarlanmıştır. XML içeriği bağlamdan bağımsız olarak tanımlamak için kullanılır. Böylelikle iki farklı uygulama arasında veri alış verişi herhangi bir karışıklığa sebep olmaksızın gerçekleşir. HTML ve XML Arasındaki Farklılıklar Her bir verinin ne anlama geldiği onu çevreleyen takı tarafından tanımlanmıştır. XML ile verinin görünümü değil anlamı tanımlanmaktadır. XML ile HTML arasındaki diğer bir fark ise HTML takılarının sabit olmasıdır. HTML takı kümesi genişletilemez. HTML ve XML Arasındaki Farklılıklar XML' de ise uygulamaya ya da içeriğe özgün takı kümesi ve takıların uymak zorunda olduğu bir gramer tanımlanabilir. Bu fark Şekil 3.2' deki verilen örnekte gösterilmiştir. Örnekte bir derse ait sınıf listesi hem HTML hem de XML kodlandığında oluşan dokümanlar verilmiştir. Şekil 3.2(a)' da verilen HTML dokümanında sınıf listesinin bir tarayıcıda nasıl görüntüleneceğine ilişkin HTML takıları yer almaktadır. HTML ile kodlanmış dokümanın içeriğine ilişkin bir bilgi çıkarmak zordur. Şekil 3.2(b)' de ise sınıf listesinin içeriği, tanımlanan XML takıları ile kodlanmıştır. Bu dokümanda her bir verinin ne anlama geldiği takılarla açıklanmaktadır. Ayrıca tüm öğrencilerin notlarının listelenmesi gibi işlemler çok kolaylıkla yapılabilir. XML dokümanı üzerinde işlem ve sorgulama yapmaya çok uygundur. WWW' in Gelişimi HTML ve XML standartları World Wide Web Consortium (W3C) tarafından yönetilmektedir. Mevcut XML 1.0 sürümünün tanımına http://www.w3.org/tR/REC-xml web sitesinden erişebilirsiniz. XML, Web' i bir sunum ortamından bilgi işlem ortamına dönüştürmek amacıyla geliştirilmiştir (Şekil 3.3). XML, Web' i bir sunum ortamından bilgi işlem ortamına dönüştürme Bir veritabanının XML Servisleri kullanılarak verilerin dış sistemlere taşınmasına izin verir. XML farklı sistemler arasında verilerin alışverişini sağlar. XML Bileşenleri XML dokümanı bir metin dosyasıdır. Bu nedenle herhangi bir metin editörü ile açılabilir ve içeriği düzenlenebilir. Bir XML dokümanı, öğe ve takılardan oluşur (Şekil 3.4). Her bir öğe açan ve kapatan takı ile çevrilmiştir. XML Bileşenleri Bazı takılar parametre alabilir. Bu parametreler öznitelik olarak adlandırılır. (Şekil-3.5). Özniteliklerin sırasının bir önemi yoktur. XML Bileşenleri Takı isimleri HTML takılarının aksine küçük/büyük harfe duyarlıdır. Örneğin <kişi> takısı ile <Kişi> takısı farklı takılar olarak ele alınır. Benzer şekilde <kişi> açan takısını ancak </kişi> kapatan takısı sonlandırabilir. XML Bileşenleri Takı adları abecesel (Alfabetik) ve nümerik karakterlerden oluşur. İngiliz alfabesindeki harfler [a..z], [A..Z], rakam [0..9], alt çizgi (_), nokta (.), ayıraç () ya da İngiliz alfabesi dışındaki karakterlerden (ö,ç,W gibi) oluşabilir. Ancak takı adları, rakam, nokta ve ayıraç ile başlayamaz. XML Bileşenleri Takı adları istenilen uzunlukta olabilir. Öğe içinde "<" karakteri doğrudan yer alamaz. Çünkü bu karakter her zaman yeni bir açan takı olarak değerlendirilir. Eğer öğe içinde bu karakteri kullanmanız gerekirse, &lt; yazmalısınız. XML Bileşenleri XML ayrıştırıcısı &lt; katarını "<" karakteri ile yer değiştirecektir. XML için bu türden beş tane özel karakter tanımı vardır (Tablo 3.1). Tablo 3.1: Özel karakterler XML Bileşenleri Eğer öğe içinde bu özel karakterlerden çok sayıda varsa, bu durumda yukarıda tanımlanan karşılıkları kullanmak, okunurluğu azaltır. Bu tür bir durumda, bu bölüm, CDATA tanımlaması içine alınır (Şekil 3.6). XML ayrıştırıcı CDATA içinde tanımlanmış metni değerlendirmez Şekil 3.6: CDATA kullanımına ilişkin bir örnek Boşluklar, Açıklama Satırı, İşlem Komutları, Doküman Bilgi Başlığı Karakter referanslar: Karakter referansları, ekranda görüntülenmesi mümkün olmayabilecek karakterleri tanımlamak için kullanılır. Karakter referanslar on tabanında önünde "&#" olacak şekilde ya da onaltı tabanında önünde "&#x" olacak şekilde tanımlanır ve ";" ile sonlandırılır. Örneğin &#169; or &#xA9; © sembolünü Görünmeyen Boşluklar XML' de dört adet görünmeyen boşluk karakteri tanımlanmıştır: Yatay sekme Satır besleme Satırbaşı Boşluk Tüm bu görünmeyen boşluklar içeriğe dahildir. XML ayrıştırıcıları, seçeneğe göre bu boşlukları içerikten çıkarabilir. Açıklama Satırı XML dokümanına açıklama satırları eklenebilir: <!-- açıklama metni --> Açıklama satırları doküman içinde, takı dışında herhangi bir yere konulabilir. İşlem Komutları XML ile dokümanı işleyecek herhangi bir uygulamaya bilgi aktarmak amacıyla işlem komutu içerebilir. İşlem komutu "<?" ile başlar ve "?>" ile sonlanır. "<?" karakter katarını (karakter topluluğu) hedef XML adı izler. Ancak bu ad öğe olarak değerlendirilmez. İşlem komutu, XML dokümanı içinde herhangi bir yerde geçebilir. İşlem Komutları Şekil 3.7' deki örnek XML dokümanında, PHP yorumlayıcısına aktarılmak üzere işlem komutu verilmiştir. Şekil 3.7: İşlem komutu örneği: XML dokümanı içinde PHP betiği Doküman Bilgi Başlığı XML dokümanın başında doküman hakkında bilgi içeren xml tanımı yer alır: <?xml 16"?> version="1.0" encoding="UTF- Versiyon numarası dokümanın hangi belirtimine dahil olduğunu tanımlar. XML Doküman Bilgi Başlığı Örnekteki 1.0 değeri bu dokümanın "6 Ekim 2000 tarihinde yayınlanan Extensible Markup Language (XML) 1.0" belirtimine uygunluğunu belirtir. Kodlama özniteliği ise dokümanın hangi karakter kümesi kullanarak kodlandığını tanımlar. Bu bilgi, özellikle metin editörleri ayrıştırıcıları için önem taşır. ve XML Düzgün Oluşturulmuş XML Dokümanı Tüm XML dokümanlarının sağlamak zorunda oldukları ve XML standardı tarafından belirtilmiş kurallar dizisi vardır. Bu kurallara uyan bir doküman düzgün oluşturulmuş XML dokümanı olarak adlandırılır. Bu kurallar aşağıda sıralanmıştır: XML Kuralları 1. Her açan takı ile eşleşen bir kapatan takı olmalıdır. 2. Öğeler iç içe geçebilir ama birbirlerini örtmezler. 3. Bir dökümanın sadece bir tane kök öğesi olabilir. 4. Öznitelik değerleri çift tırnak içinde verilmelidir. 5. Bir öğenin aynı isimli iki özniteliği olamaz. 6. Açıklama satırları ve işlem komutları takılar içerisinde yer alamaz. Düzgün Oluşturulmuş XML Dokümanı Şekil 3.8' de düzgün oluşturulmuş bir XML dokümanı verilmiştir. Düzgün oluşturulmuş bir XML dokümanı, bilgisayarda bir ağaç yapısında gösterilebilir. Örneğin Şekil 3.8' de verilen XML dokümanına karşı düşen ağaç Şekil 3.9' da verilmiştir. Düzgün Oluşturulmuş XML Dokümanı Geçerli XML Dokümanı XML dokümanlarının uymak zorunda olduğu bir gramer vardır. Bu gramere uyan dokümanlar geçerli doküman olarak adlandırılır. Bir XML dokümanı düzgün oluşturulmuş bir doküman olabilir ama geçerli olmayabilir. XML dokümanın hem düzgün oluşturulmuş hem de geçerli olması istenir. Geçerli XML Dokümanı İki uygulama arasında düzgün veri alış verişi için bu özellik gereklidir. Ayrıca oluşturulan XML dokümanının tutarlılığının ve veri bütünlüğünün sağlanması açısından da zorunluluktur. Gramer iki farklı biçimde tanımlanabilir: DTD (Document Type Definition) ve yine kendisi bir XML dokümanı olan XML Schema. Geçerli XML Dokümanı Farklı alanlardaki uygulamalar için geliştirilmiş çok sayıda DTD ve XML Schema mevcuttur. Çeşitli forumlarda bu sunulmuş durumdadır. dokümanlar kullanıma Şimdi sırasıyla DTD ve XML Schema yapılarını ayrıntılı olarak inceleyeceğiz. Document Type Definition (DTD) DTD, XML dokümanın uyması gereken kuralları tanımlar. Bu kurallar takı adlarını ve takıların diziliş yapısını, yani grameri tanımlar. Her XML dokümanı, eğer tanımlanmış ise DTD kurallarına uymak zorundadır. DTD kurallarına uyan XML dokümanı geçerli doküman olarak adlandırılır. Öğe Tanımı DTD dokümanı içinde öncelikle takı tanımları verilir: Takı adını, parantez içinde, öğenin içeriğine ilişkin tanımlama izler. Yukarıdaki örnekte, isim öğesi içinde ad ve soyad öğelerinin yer aldığı tanımlanmaktadır. Bunun yanında, bir öğe boş olarak tanımlanmak istenebilir. Bu durumda parantez içine EMPTY yazılır. Öğe Tanımı Eğer öğe karakter verilerden oluşuyor ise #PCDATA tanımlaması kullanılır. Burada PCDATA Parsed Character DATA kelimelerinden oluşturulan bir kısaltmadır. Örneğin ad ve soyad öğeleri bu şekilde tanımlanabilir: PCDATA tanımlaması, verinin nasıl yapılandırılacağı ile ilgili bir koşut içermez. PCDATA PCDATA PCDATA PCDATA Öğe Tanımı Şekil 3.10' da bir DTD ve bu DTD' ye göre geçerli bir XML dokümanı örneği verilmiştir. Şekil 3.10 Öğeleri bir araya getirmek ve iç içe öğeler tanımlamak mümkündür. DTD bu amaçla kullanılabilecek beş farklı sembol içermektedir: Öznitelik Tanımı Bazen veriyi öğenin içinde vermek yerine öznitelik olarak takı ile beraber vermek uygun olur. Şekil 3.11' de, daha önce <telefon> öğesi için telefon şehir alan kodunu öğenin içinde vermek yerine, telefon takısının alan özniteliği olarak tanımladık (Şekil 3.11 için bir sonraki sayfaya geçiniz): Öznitelik Tanımı Öznitelikleri DTD' de ATTLIST anahtar kelimesi ile tanımlıyoruz: Öznitelik çeşitli tiplerde tanımlanabilir: Öznitelik Tanımı CDATA CDATA Yukarıda öznitelik türleri sıralanmıştır. Bunun dışında, özniteliklerin öğe içinde kullanımı ile ilgili birkaç özelliği daha kontrol edebileceğimiz anahtar kelimeler mevcuttur. Bunların kullanımı isteğe bağlıdır. Bu anahtar kelimeler aşağıda açıklanmıştır: Varsayılan Değer FİXED REQUIRED IMPLIED Aksi belirtilmedikçe öğe içinde özniteliklerin kullanımı isteğe bağlıdır. IMPLIED anahtar kelimesi ile tanımlanmış bir özniteliğe, öğe içinde değer verilmemiş ise XML ayrıştırıcı bu özniteliği göz ardı eder. Bütün Bir DTD Örneği Ve DTD'deki Gramere Uygun Kodlanmış XML Dokümanı Örneği Şekil 3.11' de bütün bir DTD örneği ve bu DTD' deki gramere uygun olarak kodlanmış bir XML dokümanı örneği verilmiştir. Bütün Bir DTD Örneği Ve DTD'deki Gramere Uygun Kodlanmış XML Dokümanı Örneği