XML ve XML Uygulamaları Doç. Dr. Selim Akyokuş Bilgisayar Mühendisliği Bölümü Doğuş Üniversitesi XML ve XML Uygulamaları, Selim Akyokuş
XML ve XML Uygulamaları İşaretleme Dilleri ve Tarihçesi HTML’in Sınırlamaları XML Nedir? XML tabanlı Teknolojiler ve Uygulamalar XML Söz Dizimi Kuralları XML DTD Belge Tipi Tanımlamaları XML şemaları (Schemas) CSS ve XSL ile XML Sunumu XML Belgelerinin İşlenmesi XML ve Veritabanları Sonuç XML ve XML Uygulamaları, Selim Akyokuş
İşaretleme Dilleri (Markup Languages) Basılı yayıncılıkta bir metnin belirli kısımlarının nasıl şekilde yayınlanması için kullanılan sembol ve ayıraçlar markup (işaret) olarak adlandırılır. İşraretleme yapılarını (karakter, sembol, etiket) bir çok ortamda görebiliriz. programala dilleri : {,},begin, end ASCII kodlama standardı : CR, LF özel karakterler Kelime işlem programları : Yazı tipi, font ve stilleri ayırmak için metin içerisine gömülü işaretler Standard bir karakter, ayıraç, sembol ve etiket kümesi kullanmadan taşınabilir, paylaşılabilir ve işlenebilir bir uygulama geliştirilmesi çok güçtür. Metin ve belgelere özel bir anlam kazandırarak kolay bir şekilde taşınabilmesi, paylaşılabilmesi ve işlenebilmesi için kullanılan işaretler, kurallar ve gramer kümesini markup language (işaretleme dili) olarak adlandırılır. XML ve XML Uygulamaları, Selim Akyokuş
İşaretleme Dilleri Tarihçesi SGML (Standardized Generalized Markup Language) Bir metin veya belge kümesinde kullanılan dilin grammer ve sözlük yapısını tanımlmakta kullanılan bir meta dildir. ISO Standardı, 1986 ABD devlet, otomobil ve havacılık kuruluşlarında bir belgeleme standardı olarak kullanılmakta. İçerik ve sunum ayrı Çok güçlü bir dil olmasına rağmen Son derece karmaşık yapı Yüksek uygulama geliştrime maliyeti Bu dilin yaygın bir şekilde kullanımını engellemiştir. XML ve XML Uygulamaları, Selim Akyokuş
İşaretleme Dilleri Tarihçesi HTML (Hypertext Markup Language) Internet ortamında standard bir şekilde belge sunumu amaçlıyla geliştirildi, 1989. HTML bir SGML uygulaması (sözlüğü-vocabulary) olarak geliştirildi. (HMTL dilinin yapısı SGML ile tanımlandı) Yalnızca sunum amaçlı Çok basit yapısı ile son derece başarılı oldu. Everything should be made as simple as possible, and no simpler. (Herşey basit mümkün olduğu kadar basitleştirişmeli, fakat daha basit olmamalı.) -- Albert Einstein XML ve XML Uygulamaları, Selim Akyokuş
İşaretleme Dilleri Tarihçesi XML (eXtensible Markup Language – Genişleyebilir İşaretleme Dili) Güçlü ve esnek bir yapıya sahip olan SGML’in basit bir alt kümesi Elektronik veri değişimi, elektronik ticaret, elektronik yayıncılık, veri bütünleştirilmesi ve yönetimi, akılı arama makinaları gibi bir çok alanda stratejik bir araç olarak kullanılacak metin biçimleme teknolojisi W3C (World Wide Web, http://www.w3.org/XML/) reccomendation olarak Şubat 1998 yayınlandı. W3C standardlaştırma çalışmaları aşamalarında farklı seviyelerde standard spesifikasyonları yayınlamaktadır. Note : Bir fikir veya açıklamayı içeren en aşağı seviyedeki spesifikasyon Working Draft : Standardlaştırma çalışmalarının devam ettiğini sürede yayınlanan spesifikasyonlar. Recommendation : Working Draft aşaması sonucu elde edilen en son seviye standard specifikasyonu. XML ve XML Uygulamaları, Selim Akyokuş
HTML’in Sınırlamaları Başlık Ad p (paragraf başı) <P> <b> Sn. Selim Akyokuş </b> <br> Barboros Cad. No: 11 Yıldız 80750, İSTANBUL </p> Soyad Cadde Adı b (bold) Bina No br (line break-satır atlama) İl P (paragraf sonu) Posta Kodu Semt HTML dili belgelerin tarayıcılarda biçimlendirilmesi amaçıyla tanımlanmış bir standard etiket (tag) kümesi içereren bir dildir. XML ve XML Uygulamaları, Selim Akyokuş
HTML’in Sınırlamaları HTML belgeleri metin içeriği hakkında bir anlam ve yapı bilgisi içermez. Metin sunum bilgileri (presentation) ve içeriği (content) ayrık değildir. HTML yalnızca sunum amaçlıdır. HTML etiketlerinin bir coğu tarayıcının bir metni nasıl biçimlendirmesi ile ilgili bilgi içermektedir. Bu veri değişimi, paylaşımı, veri kopyalama, uygulama bütünleştirmesi gibi dağıtık uygulamaların gereksinimlerine cevap vermemektedir. HTML genişleyebilir bir dil değildir. Bu dili uygulamalarımıza özel yeni etiketler ekleyerek genişletemeyiz. XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? <Ad> Selim </Ad> XML’de HTML gibi işaretleme etiketleri (tag) kullanır. Uygulamaya bağlı olarak bir çok yeni etiket tanımlayabilriz. XML’in ilk harfi “Genişleyebilir (eXtensible)” bunu ifade etmektedir. XML etiketleri bilgi içeriği hakında bilgi verir. Bilgi hakında bilgi meta veri veya bilgi (metadata veya metainformation) olarak adlandırılır. <Ad> Selim </Ad> <Soyad> Akyokuş </Soyad> XML bir meta dildir. Diğer bir deyişle yeni işaretleme dillerini tasarlamak için kullanılan bir dildir. XML ile herhangi bir uygulama için XML belgesinin içinde bulunacak verinin içeriği ve yapısını bir etiket kümesi ile tanımlayarak yeni bir dil oluşturabiliriz. Başlangıç etiketi Bitiş etiketi XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? Addressbook XML Belgesi <?xml version="1.0"?> <!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [ <!ENTITY amp "&"> <!ENTITY apos "'"> ]> <addressbook> <!-- This is my good friend Frank. --> <contact> <name>Frank Rizzo</name> <address>1212 W 304th Street</address> <city>New York</city> <state>New York</state> <zip>10011</zip> <phone> <voice>212-555-1212</voice> <fax>212-555-1213</fax> </phone> <email>frizzo@fruity.com</email> <web>http://www.fruity.com/rizzo</web> <company>Frank's Ratchet Service</company> </contact> <!-- This is my old college roommate Sol. --> <name>Sol Rosenberg</name> <address>1162 E 412th Street</address> <voice>212-555-1818</voice> <fax>212-555-1819</fax> <email>srosenberg@fruity.com</email> <web>http://www.fruity.com/rosenberg</web> <company>Rosenberg's Shoes & Glasses</company> </addressbook> Addressbook XML Belgesi Kaynak : XML Unleashed XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? Bir belge tipi tanımlaması, DTD (Document Type Definitions), bir XML belgesinin içinde hangi etiketler geçebilir, hangi etkiketler hangi etiketleri içerebilir, etkiketlerin sayısı ve sırası, etiketlerin alabileceği özelikler ve değerleri tanımlar. <!ELEMENT addressbook (contact)+> <!ELEMENT contact (name,address+, city, state, zip,phone,email,web, company)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT zip (#PCDATA)> <!ELEMENT phone (voice, fax?)> <!ELEMENT voice (#PCDATA)> <!ELEMENT fax (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT web (#PCDATA)> <!ELEMENT company (#PCDATA)> Addressbook.dtd XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? Veri anlam ve yapısını içeren (self-describing) basit ve esnek veri formatı XML belgeleri kolayça anlaşılabilir. İçerik ve Sunum (CSS, XSL) ayrık. XML etiketleri verilerin nasıl biçimlendirileceği konusunda bir bilgi içermez. Bir çok hazır yazılım bileşenleri ile programlama Hiyerarşik ağaç yapısı XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? Etiketli ağaç yapısı (labeled tree) addressbook contact contact contact ... name address phone voice fax Selim Akyokuş ....... 216 2507070 216 2597080 <addressbook> <contact> <name> Selim Akyokuş</name> <address> .... </address> ... <phone> <voice> 216 2597070 </voice> <fax> 216 2597080 </fax< </phone> </contact> </adsressbook> Etiketli ağaç yapısı (labeled tree) Yarı Yapısal Veri Modeli (Semistructured Data Model) İlişkisel (relational) Nesne-kökenli (object-oriented) veri yapılarını temsil edebilir. XML ve XML Uygulamaları, Selim Akyokuş
XML Nedir? XML bir çok standardın birleşiminden oluşmaktadır. XML Syntax (söz dizimi kuralları) XML DTD XML Schema XML Namespaces Xpath Xpointer XSL XSLT XSLF SAX DOM XML ve XML Uygulamaları, Selim Akyokuş
Akılı Arama Makinaları XML Uygulamaları Akılı Arama Makinaları Arama makinaları HTML belgelerinden arama sonuçu bir çok istenmeyen belge getirebilir. Örnek: “Chip” isimli kişiyi ara Patates chip’leri Bilgisayar chip’ler Chip isimli kişiler Eğer kişiler hakkındaki isim ve adres bilgileri XML’de standard olarak saklanırsa, daha kesin ve faydalı sonuçlar elde edilir. <first-name> Chip </first-name> XML ve XML Uygulamaları, Selim Akyokuş
Aygıt ve uygulamadan bağımsız veri erişimi ve biçimlendirilmesi XML Uygulamaları Aygıt ve uygulamadan bağımsız veri erişimi ve biçimlendirilmesi <product> <id>12345678-Q</id> <description>Thinkpad 2000D</description> <price>$999.99</price> </product> Kaynak: IBM XML ve XML Uygulamaları, Selim Akyokuş
XML Uygulamaları Basın ve Yayıncılık XML basın ve yayıncılık için geliştirilmiş olan SGML dilinin basitleştirilerek türetilmiş bir dil olduğundan bu konuda aynı amaçla kullanılabilir. XML formatında saklanan belgeler bir çok farklı ortama XML araçlarını kullanarak dönüştürülebilir ve kullanılabilir. Klasik yayıncılığın yanı sıra XML yeni elektronik yayıncılıktada kullanılabilir. Elektronik yayın ortamındaki görüntü, video, ses ve diğer sayısal veri nesneleri XML ile formatlanarak saklanabilir, taranabilir ve sunulabilir. XML ve XML Uygulamaları, Selim Akyokuş
XML Uygulamaları Yazılım Geliştirme XML büyük çaplı yazılım gelişmede uygulama mimarilerinin paylaşımını kolaylaştıracaktır. OMG (Object Management Group) bir XML tabanlı bir uygulama olan XMI (XML Metadata Interchange) spesifikasyonunu kullanacağını belirmiştir. XMI, UML (Unified Modelling Language) kullanarak tasarlanmış olan uygulamaları tanımlamada kullanılan bir dildir. XMI, geliştirme ekibinin çok farklı uygulama geliştirme araçlarını kullanarak, tek bir UML modelinin paylaşımına imkan vermektedir. Bu yazılım geliştirme sürecinde geliştirme ekibi arasındaki iletişimi artırarak geliştirme sürecini kısaltmakta ve ekibi daha üretken kılmaktadır. XML ve XML Uygulamaları, Selim Akyokuş
Elektronik Veri Değişimi ve Elektronik Ticaret XML Uygulamaları Elektronik Veri Değişimi ve Elektronik Ticaret XML’in en çok ilgi çeken tarafı e-ticaret, tedarik zinciri yönetimi ve iş akışı (workflow) yönetimi gibi elektronik iş web uygulamalarında bir veri değişim formatı olarak kullanılmasıdır. XML ve XML Uygulamaları, Selim Akyokuş
XML Uygulamaları XML/EDI Geleneksel EDI (Electronic Data Interchange): VAN (Value Added Networks) ağları üzerinde X12 ve EDIFACT standardlarına dayanan büyük devlet ve ticari kuruluşların finansal, üretim, satış gibi verilerin değişiminde kullanılan bir sistemdir. 1970 lerde geliştirilmiş ve çok fazla yaygınlaşamamıştır. Yüksek kurulum maliyeti Yüksek bakım maliyeti Karmaşık yapı XML/EDI : Internet ve XML tabanlı iş uygulamaları arası veri değişim sistemi Düşük maliyet ve bakım Kolay kurulum Basit ve açık stadardlara dayalı Güvenli XML/EDI standard çalışmaları devam etmektedir. XML ve XML Uygulamaları, Selim Akyokuş
Kaynak:Bertram Ludaescher,ucsd XML Uygulamaları XML XML/EDI,E-ticaret ve E-iş Çalışmaları ebXML an open XML-based infrastructure enabling the global use of electronic business information in an interoperable, secure and consistent manner by all parties eCo Framework XML specs. to support interoperability among e-businesses Commerce One Common Business Library (CBL): set of business components, docs. In DTD, XDR, SOX BizTalk Microsoft spec. based on XML schemas cXML (Commerce XML) -- tag-sets for e-procurement into BizTalk Rosetta Net Common format for online ordering FpML (Financial products Markup Language): sharing of financial data (interest rate & foreign exchange products) OBI high volume b2b purchasing transactions over the Internet code360 XML-Broker is middleware software that manages XML based transactions Bluestone XML Suite Enables to develop and deploy e-commerce, electronic data interchange, application integration and supply chain management applications. Bluestone XML Suite products include: XML-Server, Visual-XML, XML-Contact and XwingML. webMethods Provides companies with integrated direct links to buyers and suppliers Kaynak:Bertram Ludaescher,ucsd XML ve XML Uygulamaları, Selim Akyokuş
XML Uygulamaları XML Sözlükleri Herhangi bir alandaki uygulamalarda kullanılacak XML ile tanımlanmış yeni işaretleme dilleri XML uygulaması (application) veya XML sözlüğü (vocabulary) olarak anılmaktadır. XML sözlükleri bu alanlardaki uygulamaların aynı dili konuşarak bilgi değişimi ortamını sağlamaktadır. Bu amaçla geliştirilmiş bir çok XML sözlüğü vardır (http://www.oasis- open.org/cover/xml.html#applications). Advertising: adXML place an ad onto an ad network or to a single vendor Literature: Gutenberg convert the world’s great literature into XML Travel: openTravel information for airlines, hotels, and car rental places News: NewsML creation, transfer and delivery of news Human Resources: XML-HR standardization of HR/electronic recruiting XML definitions Voice: VoxML markup language for voice applications Wireless: WAP (Wireless Application Protocol) wireless devices on the World Wide Web Banking: MBA Mortgage Bankers Association of America --> credit report, loan file, underwriting… Healthcare: HL7 DTDs for prescriptions, policies & procedures, clinical trials Math: MathML (Mathematical Markup Language) XML ve XML Uygulamaları, Selim Akyokuş
XML Söz Dizimi (Syntax) XML belgeleri işaretleme ifadeleri ve veri içeriğinden oluşan bir veri dosyası veya paketidir. İşaretleme ifadeleri elemanlar (elements), varlık referansları (entity refererences), açıklamalar (comments), işleme komutları (processing instructions), CDATA bölümleri ve veri tipi tanımlamalarından (document type declaretions) oluşur. <?xml version="1.0" ?> <!DOCTYPE e_posta SYSTEM "e-posta.dtd"> <e_posta> <kime>Herkese</kime> <kimden> Selim Akyokuş</kimden> <tarih> 7 Eylül 2000</tarih> <konu>XML ve XML Uygulamaları</konu> <mesaj> XML HTML gibi etiket tabanlı bir dildir</mesaj> </e_posta> XML ve XML Uygulamaları, Selim Akyokuş
Elemanlar Başlangıç etiketi, içerik ve bitiş etkitet’den oluşan yapı eleman olarak adlandırılır. Elemanlar başka elemanları veya karakter verileri içerebilir. Eleman <kitap> XML Unleashed </kitap> Eleman ismi Bitiş etiketi (start tag) Başlangıç etiketi (start tag) Karater veri Eleman isimleri bir harf veya alt çizgi (_) ile başlayabilir. Eleman isimleri case-sensitive’dir. <kitap> <Kitap> XML ve XML Uygulamaları, Selim Akyokuş
Elemanlar Boş Elemanlar (Empty elements) Belge Elemanı Boş elemanların herhangi bir içeriği yoktur. Boş elemanlar etiketin sonuna bir (/) işareti eklenerek kısa bir biçimde gösterilebilir. <br></br> <br/> Boş elemanlar hariç her XML başlangıç etiketi bir bitiş etiketi ile kapatılmalıdır. Belge Elemanı Hiyerarşik bir ağaç yapısında olan XML belgesinin en üst seviyesindeki eleman belge elemanı veya belge kökü (document root) olarak adlandırılır. Bu elemanın etiketide kök etiket (root tag) olarak isimlendirilir. XML ve XML Uygulamaları, Selim Akyokuş
Elemanlar Eleman Yuvalama (Nesting) kök Etiket Belge Elemanı <?xml version="1.0" ?> <!DOCTYPE e_posta SYSTEM "e-posta.dtd"> <e_posta> <kime>Herkese</kime> <kimden> Selim Akyokuş</kimden> <tarih> 7 Eylül 2000</tarih> <konu>XML ve XML Uygulamaları</konu> <mesaj> XML HTML gibi etiket tabanlı bir dildir</mesaj> </e_posta> Eleman Yuvalama (Nesting) HTML allows <B> <I> improper nesting <B> <I> XML requires <B> <I> improper nesting <I> <B> XML ve XML Uygulamaları, Selim Akyokuş
Özellikler Özellikler (Attributes) elemanlara eklediğimiz ek bilgilerdir. Başlangıç etiketi içinde özellik ismi ve değer ikilileri olarak geçer. Özellik Özellik <kitap kitap_no = "1234" kitap_sınıfı = "teknik" > <yazar> Didier Martin </yazar> <kitap_adı> Professional XML </kitap_adı> <kitap> XML ve XML Uygulamaları, Selim Akyokuş
<kitap_adı> Professional XML </kitap_adı> Karater Veri Bir elemanın başlangıç ve bitiş etiketi içindeki metin karakter veri olarak adlandırılır. Özel amaçlı olarak kullanılan (&,<,>,",') karakterleri metin içeririsinde kullanılamaz. HTML’den farklı olarak eleman içindeki boşluklar (white space) korunur. Etiket ve özellik tanımlarındaki boşlukları parser kaldırır. <kitap_adı> Professional XML </kitap_adı> Karater veri XML ve XML Uygulamaları, Selim Akyokuş
Karakter ve Varlık Referansları Karakter referansları onluk ve onaltılık sayı sistemi ile karaterleri göstermek için kullanılır. Onluk : &#NNNN; Onaltılık : &#xNNNN; © <copyright> Copyright © 2000 SAMS Publishing</copyright> <copyright> Copyright © 2000 SAMS Publishing</copyright> Varlık referansları (entity references) verilen bir isim ile DTD’te tanımlamış refereransları veya (&,<,>,",') XML özel karakterlerini göstermek için kullanılır. Varlık referansı : &isim; <yazar> Didier Martin & Mark Birbeck</yazar> & XML ve XML Uygulamaları, Selim Akyokuş
Karakter ve Varlık Referansları (&,<,>,",') karakterleri için XML standard varlık referansları > < & & ' ' " " DTD’ de varlık referansı tanımı <!ENTITY firma "XYZ Bilgisayar A.Ş."> <reklam> &firma; " E-ticaret " hizmetleri sunar. </reklam> XYZ Bilgisayar A.Ş. "E-ticaret" hizmetleri sunar. XML ve XML Uygulamaları, Selim Akyokuş
Açıklamalar ve İşlem Komutları Açıklama (Comments) yapısı HTML ile aynıdır. <!-- Açıklama --> İşlem komutları (Processing instructions) XML belgelerini işleyen uygulamalara bir komut geçilmesi istenildiğinde kullanılır. <?hedef ... Komutlar ... ?> <?xml version=“1.0” ?> XML ve XML Uygulamaları, Selim Akyokuş
CDATA Bölümleri CDATA bölümleri (CDATA sections) XML’de kullanılan işaretleme ifadelerinin göz ardı edilmesi gereken metinleri yazmada kullanılır. XML parsır’ı bu bölümde metin içerisinde yer alan işaretleme ayıraçlarını ve etiketlerini normal karakter olarak algılar. <![CDATA[ .......... ]]> <![CDATA[ *P = &A; K = "Ali"; C = (i <= 5) ; ]]> XML ve XML Uygulamaları, Selim Akyokuş
Belge Tipi Deklarasyonu Belge tipi deklarasyonları (Document type declaretion) bir XML belgesinin giriş kısmında tanımlanır ve belgenin kulladığı harici ve dahili DTD (Document Type Definiton)’yi belirtir. <!DOCTYPE kök_eleman_ismi SYSTEM "sistem_tanımlayıcısı"> <!DOCTYPE kök_eleman_ismi PUBLIC "public_tanımlayıcısı""sistem_tanımlayıcısı"> Harici DTD adresi <?xml version="1.0"?> <!DOCTYPE addressbook SYSTEM "http://xyz.com/AddressBook.dtd" [ <!ENTITY amp "&"> <!ENTITY apos "'"> ]> XML ve XML Uygulamaları, Selim Akyokuş
Belge Tipi Deklarasyonu <?xml version="1.0"?> <!DOCTYPE addressBook [ <!ELEMENT addressBook (person)+> <!ELEMENT person (name,email*)> <!ATTLIST person gender (male|female) #IMPLIED> <!ELEMENT name (family,given)> <!ELEMENT family (#PCDATA)> <!ELEMENT given (#PCDATA)> <!ELEMENT email (#PCDATA)> ]> <addressBook> <person> <name> <family>Wallace</family> <given>Bob</given> </name> <email>bwallace@megacorp.com</email> </person> <family>Tuttle</family> <given>Claire</given> <email>ctuttle@megacorp.com</email> </addressBook> Dahili (Internal or inline) DTD XML ve XML Uygulamaları, Selim Akyokuş
İyi Oluşmuş ve Doğru Belgeler İyi Oluşmuş Belgeler (Well-Formed Documents) XML söz dizimi (syntax) kurallarına uyan XML belgeleri well-formed belgeler olarak adlandırılır. Doğru Belgeler (Valid Documents) Belge için tanımlanmış olan DTD’teki gramer kurallarına uyan belgeler valid belgeler olarak adlandırılır. XML ve XML Uygulamaları, Selim Akyokuş
Belge Tipi Tanımlamaları - DTD Belge Tipi Tanımlamaları (DataType Definitions (DTD)) herhangi bir alanda kullanılacak yeni işaretleme dillerinin yapısını (gramer) tanımlar. Programlama dillerinin gramer’inin tanımlamada kullanılan EBNF (Extended Backus Naur Form) gösterimine benzer bir yapıya sahiptir. EBNF Kişi ::= (isim telefon-no*) <!ELEMENT kişi (isim telefon-no*)> DTD XML ve XML Uygulamaları, Selim Akyokuş
Belge Tipi Tanımlamaları - DTD Bir XML belgesinin yapısı tanımlamada kullanılan temel DTD deyimleri DTD deyimi Anlamı ELEMENT ATTLIST ENTITY NOTATION Bir XML elemanı tanımlar. Bir eleman tipinin alabileceği özellikleri tanımlar. Belli bir içeriğin bir isme bağlanarak o isimle ilişkilendirilmesini sağlar. XML hariçi içeriğin tanımlanmasını sağlar. Bu tanımlaran içerik XML belgesinin bir parçası olarak parse edilmez. XML ve XML Uygulamaları, Selim Akyokuş
Dört çeşit eleman tipi vardır. Eleman Tanımlamaları Dört çeşit eleman tipi vardır. Empty (Boş) : Eleman herhangi bir içerik içermez. Elemanın özellikleri olabilir. Element Only (Yalnızca Eleman) : Eleman yalnızca alt seviye (child) elemanları içerebilir. Mixed (Karışık) : Eleman alt seviye elemanlar ve karakter veri karışımını içerebilir. Any : Eleman DTD’in izin verdiği her içeriği içerebilir. XML ve XML Uygulamaları, Selim Akyokuş
Boş (Empty) Eleman Tanımlamaları İçeriği boş olan elemanlar. <!ELEMENT Elemanİsmi EMPTY> <!ELEMENT img EMPTY)> <img/> <img></img> <img src=”resim.gif”/> <img src=”resim.gif”/><img> DTD XML XML ve XML Uygulamaları, Selim Akyokuş
Yalnız Eleman İçeren Elemanlar Yalnızca alt seviye elemanları içerir. <!ELEMENT Elemanİsmi İçerik-modeli> <!ELEMENT e-posta (kime, kimden, tarih?, konu?, mesaj)> Sıralama: kime, kimden, tarih, konu, mesaj ? : Opsiyonel + : Bir veya daha fazla <!ELEMENT özgeçmiş (giriş, (eğitim | deneyim+)+, hobiler?, referanslar*)> * : Sıfır veya daha fazla | : Veya XML ve XML Uygulamaları, Selim Akyokuş
Yalnız Eleman İçeren Elemanlar Eleman tanımlarında kullanılan semboller ve anlamı Eleman Tanımı Anlamı A? A+ A* A,B A | B ( ) (#PDATA) Opsiyonel; A alt elemanı bir defa veya hiç gözükmeyebilir. A alt eleman mutlaka bir defa veya daha fazla gözükür. A alt eleman sıfır veya daha fazla gözükebilir. B elemanı A’dan sonra gözükmelidir. A veya B’den bir tanesi gözükebilir. Paratez içinde geçecek elemanları guruplar. Örneğin (A,B)+ ifadesi A ve B’nin ardışık olarak bir veya daha fazla geçeceğini göstermektedir. Karakter Veri (parsed) XML ve XML Uygulamaları, Selim Akyokuş
Karışık ve ANY Elemanı Karışık (Mixed) Elemanlar: Karışık elemanlar hem karakter veri hemde alt elemanları içerebilirler. <!ELEMENT konu (#PCDATA)> <!ELEMENT not (konu | tarih | #PCDATA)*> <not> <konu> Yeni Dönem </konu> <tarih> 1 Ekim 2000 </tarih> Okul kayıtları başlayacak. </not> ANY Elemanları: ANY elemanı karakter veri, tanımlanmış elemanlar veya bunların karşımını içerebilir. <!ELEMENT Elemanİsmi ANY> XML ve XML Uygulamaları, Selim Akyokuş
Özellikler (Attributes) Bir eleman hakkındaki özellik bilgileri aşağıdaki formatta tanımlanır. Dört çeşit Default tipi vardır. <!ATTLIST Elemanİsmi Özellikİsmi ÖzellikTipi Default> Default Anlamı #REQUIRED #IMPLIED #FIXED Değer Değer Özellik her zaman tanımlanmalıdır. Özellik opsiyoneldir. Özellik sabit bir Değer’e sahiptir. Özellik eleman içinde tanımlı olmazsa, parser bu sabit değer’in olduğunu varsayar. Özellik eleman içinde tanımlı olmazsa, parser bu değer’in olduğunu varsayar. Eğer tanımlı ise özellik farklı bir değer içerebilir. XML ve XML Uygulamaları, Selim Akyokuş
Özellikler (Attributes) Şart <!ATTLIST Kitap BasımTarihi CDATA #REQUIRED> <Kitap BasımTarihi=”1.1.2000”> XML’e Giriş </Kitap> Karakter veri <!ATTLIST Kitap Basım-Sayısı CDATA #IMPLIED> <Kitap Basım-Sayısı=”5”> XML’e Giriş </Kitap> Opsiyonel <Kitap> XML’e Giriş </Kitap> <!ATTLIST deniz renk #FIXED “mavi”> <deniz renk=“mavi”> .... </deniz> Sabit <!ATTLIST elma renk “kırmızı”> <elma renk=“kırmızı”> ...... </elma> <elma renk=“yeşil”> ...... </elma> Default Değer <elma> ...... </elma> XML ve XML Uygulamaları, Selim Akyokuş
Özellikler (Attributes) Özellik Tipleri Özellik Tipi Anlamı CDATA Enumarated NOTATION ENITITY ENTITIES ID IDREF IDREFS NMTOKEN NMTOKENS Karakter veri (Unparsed) Özelliğin sahip olabileçeği değerler kümesi DTD’de tanımlanmış herhangi bir notation. Harici bir varlık. Bir den fazla boşlukla (white space) ayrılmış varlıklar. Bir belge içerisinde geçebilecek tek tanımlayıcı bir değer (unique identifier). DTD’te tanımlanmış olan bir ID’ye olan referans. Boşlukla (white space) ayrılmış ID’ler serisine referans. XML token karaklerlerinden (harf, sayı, nokta, tire, iki nokta, alt cizgi) oluşan bir isim. XML token karakterlerinden oluşan boşlukla ayrılmış bir çok isim. XML ve XML Uygulamaları, Selim Akyokuş
Özellikler (Attributes) Default Enumarated özellikler bir dizisi içerir. <!ATTLIST kalem renk (mavi | kırmızı | yeşil | beyaz) “kırmızı”> Notation XML harici veri tiplerini tanımlamakta kullanılır. Bu örnek resim formatının gif veya jpeg olabileceğini belirtmektedir. <!ATTLIST resim format NOTATION (gif | jpeg) #REQUIRED> ID tipindeki özellik değerleri bir belge içerisinde yalnızça bir defa geçebilir. Bu bize bir elemanı unique olarak tanımlamamızı sağlar. <!ATTLIST personel personel-no ID #REQUIRED> IDREF, ID tipindeki elemanlara referans vermemizi sağlar. <!ELEMENT mühendis EMPTY> <!ATTLIST mühendis per-no IDREF #REQUIRED> <personel personel-no=”12345”> <isim> Ali Veli </isim> ..... </personel> <mühendis per-no=”12345”/> XML ve XML Uygulamaları, Selim Akyokuş
Varlıklar (Entities) Varlıklar herhangi bir veri parçasına bir isim vererek bu veri parçalarına referans vermemizi sağlar. Bunu C dilindeki DEFINE fonksiyonu gibi düşünebiliriz. Üç çeşit varlık tanımlaması vardır: Genel Varlıklar (General Entities) Parametre Varlıklar (Parameter Entities) Karakter Varlıklar (Character Entities) Genel Varlıklar Genel varlıklar bir metin parçasına bir isim vererek bu isimle metini kullanmamızı sağlar. <!ENTITY şirket “XYZ Bilgisayar Limited Şirketi A.Ş.”> <reklam> Firmamız &şirket; internet danışmanlığı hizmeti sunar. </reklam> <!ENTITY aciklama SYSTEM “http://www.xyz.com/readme.txt”> XML ve XML Uygulamaları, Selim Akyokuş
uzunluk, genişlik, yükseklik?”> Varlıklar (Entities) Parametre Varlıklar (Parameter Entities) Parametre varlık tanımlamaları DTD’nin içinde bir isimle veri parçalarına referans vermemizi sağlar. <!ENTITY % Varlıkİsmi VarlıkTanımı> <!ENTITY % boyut “uzunluk, genişlik, yükseklik?”> uzunluk, genişlik, yükseklik?”> <!ELEMENT tavan (%boyut;)> <!ELEMENT çatı (%boyut;)> <!ELEMENT duvar (%boyut;)> Karakter Varlıklar (Character Entities) Verilecek bir isim vasıtasıyla istenilen karaterleri göstermek için kullanılır. <!ENTITY copyright “©” > © XML ve XML Uygulamaları, Selim Akyokuş
Notation (Gösterim) Notation tanımlamaları XML harici verinin ve bu harici ile ilişkindirilecek bir yardımcı uygulamanın (helper application) tanımlanmasını sağlar. XML parser XML verisi üzerinde parse işlemini yapar. XML harici verilerin işlenmesinini bu veri formatları ile ilişkilendirilecek bir uygulama ile yapabilir. Aşağıdaki örnekte jpg ve gif formatında tanımlanmış verileri ilgili uygulamalarla ilişkilendirmektedir. <!NOTATION jpg SYSTEM “jpgviewer.exe”> <!NOTATION gif SYSTEM “gifviewer.exe”> XML ve XML Uygulamaları, Selim Akyokuş
XML Şemaları (XML Schemas) XML şemaları XML belgelerinin yapısını DTD gibi tanımlada kullanılan yeni bir yöntemdir. XML şemaları bir XML sözlüğü olarak tanımlanmıştır. Normal bir XML belgesi olarak işlenebilir ve parse edilebilir. Avantajları : Bir çok veri tipini desteklemesi, açık bir model olarak genişleyebilmesi, katılım (inheritance) ilişkilerini desteklemesi Bu yöntem gelişme aşamasında olması nedeniyle henüz son şeklini (recommendation) alamamıştır. XML ve XML Uygulamaları, Selim Akyokuş
XML Şemaları Addressbook Şeması Addressbook DTD <?xml version="1.0"?> <Schema name="AddressBookSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType name="name" content="textOnly"/> <ElementType name="address" content="textOnly"/> <ElementType name="city" content="textOnly"/> <ElementType name="state" content="textOnly"/> <ElementType name="zip" content="textOnly" dt:type="int"/> <ElementType name="voice" content="textOnly" dt:type="int"/> <ElementType name="fax" content="textOnly" dt:type="int"/> <ElementType name="phone" content="eltOnly"> <element type="voice" minOccurs="1" maxOccurs="1"/> <element type="fax" minOccurs="0" maxOccurs="1"/> </ElementType> <ElementType name="email" content="textOnly"/> <ElementType name="web" content="textOnly"/> <ElementType name="company" content="textOnly"/> <ElementType name="contact" content="eltOnly"> <element type="name" minOccurs="1" maxOccurs="1"/> <element type="address" minOccurs="1" maxOccurs="2"/> <element type="city" minOccurs="1" maxOccurs="1"/> <element type="state" minOccurs="1" maxOccurs="1"/> <element type="zip" minOccurs="1" maxOccurs="1"/> <element type="phone" minOccurs="1" maxOccurs="1"/> <element type="email" minOccurs="0" maxOccurs="1"/> <element type="web" minOccurs="0" maxOccurs="1"/> <element type="company" minOccurs="0" maxOccurs="1"/> <ElementType name="addressbook" content="eltOnly"> <element type="contact" minOccurs="1"/> </Schema> Addressbook Şeması Addressbook DTD <!ELEMENT addressbook (contact)+> <!ELEMENT contact (name, address+, city, state, zip, phone, email, web, company)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT zip (#PCDATA)> <!ELEMENT phone (voice, fax?)> <!ELEMENT voice (#PCDATA)> <!ELEMENT fax (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT web (#PCDATA)> <!ELEMENT company (#PCDATA)> XML ve XML Uygulamaları, Selim Akyokuş
CSS ve XSL ile XML sunumu XML’de daha önce bahs ettiğimiz gibi belge içeriği ve sunumu birbirinden ayrılmıştır. XML belgelerinin görsel olarak sunumu CSS (Cascading Style Sheets) veya XSL (eXtensible Style Language) kullanılarak gerçekleştirilir. XML ve XML Uygulamaları, Selim Akyokuş
CSS (Cascading Style Sheets) CSS HTML ve XML belgelerini görüntüleme amaçıyla kullanılan bir biçimleme dilidir. CSS biçim sayfaları (sytle sheets) belge elemanlarına uygulanacak olan bir kurallar kümesi içerir. CSS Kuralı Seçiçi { özellik1: değer1; özellik2: değer2; ...... } <p> CSS basit bir biçimleler için kullanılır </p> p { display : block; color: blue; font-family : Arial; font-size: 14pt; } XML ve XML Uygulamaları, Selim Akyokuş
CSS (Cascading Style Sheets) isim elemanı: kalın, 16pt ve Times font <isim> Selim Akyokuş </isim> isim { display : block; font-family : Times, serif; font-size: 16pt; font-weight : bold; } XML belgelerini CSS kurallarnı içeren CSS biçim dosyası ile ilişkilendirmek için xml-stylesheet işlem komutu XML belgesi başlangıçına konulur. <?xml-stylesheet type=”text/css” href=”Adressbook.css”> XML ve XML Uygulamaları, Selim Akyokuş
CSS (Cascading Style Sheets) <?xml version="1.0"?> <!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [ <!ENTITY amp "&"> <!ENTITY apos "'"> ]> <addressbook> <!-- This is my good friend Frank. --> <contact> <name>Frank Rizzo</name> <address>1212 W 304th Street</address> <city>New York</city> <state>New York</state> <zip>10011</zip> <phone> <voice>212-555-1212</voice> <fax>212-555-1213</fax> </phone> <email>frizzo@fruity.com</email> <web>http://www.fruity.com/rizzo</web> <company>Frank's Ratchet Service</company> </contact> <!-- This is my old college roommate Sol. --> <name>Sol Rosenberg</name> <address>1162 E 412th Street</address> <voice>212-555-1818</voice> <fax>212-555-1819</fax> <email>srosenberg@fruity.com</email> <web>http://www.fruity.com/rosenberg</web> <company>Rosenberg's Shoes & Glasses</company> </addressbook> XML ve XML Uygulamaları, Selim Akyokuş
CSS (Cascading Style Sheets) <?xml version="1.0"?> <!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [ <!ENTITY amp "&"> <!ENTITY apos "'"> ]> <addressbook> <!-- This is my good friend Frank. --> <contact> <name>Frank Rizzo</name> <address>1212 W 304th Street</address> <city>New York</city> <state>New York</state> <zip>10011</zip> <phone> <voice>212-555-1212</voice> <fax>212-555-1213</fax> </phone> <email>frizzo@fruity.com</email> <web>http://www.fruity.com/rizzo</web> <company>Frank's Ratchet Service</company> </contact> <!-- This is my old college roommate Sol. --> <name>Sol Rosenberg</name> <address>1162 E 412th Street</address> <voice>212-555-1818</voice> <fax>212-555-1819</fax> <email>srosenberg@fruity.com</email> <web>http://www.fruity.com/rosenberg</web> <company>Rosenberg's Shoes & Glasses</company> </addressbook> contact { display: block; width: 350px; padding: 10px; margin-bottom: 10px; border: 4px double black; background-color: silver; color: blue; text-align: center; } name { font-family: Times, serif; font-size: 16pt; font-weight: bold; address { font-size: 14pt; city, state, zip { display: inline; phone, email, web, company { display: none; XML ve XML Uygulamaları, Selim Akyokuş
XSL (eXtensible Style Language) XSL, XML belgelerinin biçimlendirilmesi tasarlanmış bir biçimleme dilidir. CSS’den çok daha güçlü bir yapıya sahip olmasına rağmen XSL yeni bir teknoloji olduğundan çok fazla yaygın değildir. XSL konusundaki standardlaştırma çalışmaları henüz tamamlanmamıştır. XSL dili W3C’nin aşağıdaki spesifikayonlarını kullanır: XSLT – http://www.w3.org/TR/xslt Xpath – http://www.w3.org/TR/xpath XSLF – http://www.w3.org/TR/xsl XML ve XML Uygulamaları, Selim Akyokuş
XSL (eXtensible Style Language) XSLT (XSL Transformations), XML belgelerinin bir dönüşümü için kullanılır. XSLT bir yapıdaki XML belgesini, XSL biçim dosyasındaki tanımlamalara göre başka bir yapıya dönüştür. XSLT, XML belgesini HTML diline, diğer bir XML belgesine veya XSLF formatlama nesnelerine dönüştürebilir. XSLT en yaygın olarak XML belgelerinin HTML belgelerine dönüşümünde kullanılır. Dönüşüm sonuçunda elde edilen HTML belgesi tarayıcılar ile görsel olarak gösterilebilir. Xpath spesifikasyonu parser’ın oluşturduğu XML ağaçının içindeki düğümleri adreslemek için kullanılır ve ağaçın belirli kısımlarını adresleyerek ağaç içinde dolaşmamızı sağlar. XSLF (XSL Formating), XSL teknolojisinin biçimleme kısmını içerir. XSLT , XML belgelerini XSLF biçimlendirme nesnelerine dönüştürür. Biçimleme nesneleri belgelerin görsel olarak sunumu sağlar. Biçimleme nesnelerinin görüntülenmesi için tarayıcıların XSLF biçimleme yapısını desteklemesi gerekir. XSLF spesifikasyonu henüz geliştirme aşamasında olduğundan bu yapıyı destekleyen bir tarayıcı yoktur. XML ve XML Uygulamaları, Selim Akyokuş
XML’den HTML’e dönüşüm Dönüştürme işlemi XSL biçimleme sayfaları (style sheets) içinde tanımlamış dönüşüm kuralları ile gerçekleştirilir. Bu kurallar şablon (template) olarak adlandırılır. <?xml-stylesheet href="AddressBook.xsl" type="text/xsl"?> Addressbook.xml Addressbook.html Addressbook.xsl <isim> Selim Akyokuş </isim> Şablon (Template) <xsl:template match=”isim”> <H2> <xsl:value-of/> </H2> </xsl:template> Kalıp (Pattern) <H2> Selim Akyokuş </H2> XML ve XML Uygulamaları, Selim Akyokuş
XML’den HTML’e dönüşüm <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html><head><title>Address Book XML Example</title></head> <body bgcolor="#FFFFFF"> <xsl:for-each select="addressbook/contact"> <xsl:apply-templates select="name"/> <xsl:apply-templates select="address"/> <xsl:apply-templates select="city"/> <xsl:apply-templates select="state"/> <xsl:apply-templates select="zip"/> </xsl:for-each> </body> </html> </xsl:template> <xsl:template match="name"> <h2><xsl:value-of/></h2> <xsl:template match="address"> <xsl:value-of/><br/> <xsl:template match="city"> <xsl:value-of/>, <xsl:template match="state"> <xsl:value-of/> <xsl:template match="zip"> </xsl:stylesheet> <addressbook> <!-- This is my good friend Frank. --> <contact> <name>Frank Rizzo</name> <address>1212 W 304th Street</address> <city>New York</city> <state>New York</state> <zip>10011</zip> <phone> <voice>212-555-1212</voice> <fax>212-555-1213</fax> </phone> <email>frizzo@fruity.com</email> <web>http://www.fruity.com/rizzo</web> <company>Frank's Ratchet Service</company> </contact> .......... </addressbook> Kök (root) XML’den HTML’e dönüşüm XML ve XML Uygulamaları, Selim Akyokuş
XML’den HTML’e dönüşüm Client’da Dönüşüm : Addressbook.xml belgesini Addressbook.xsl biçimleme sayfasını kullanarak HTML’e dönüşümünü sağlayan Javascript kodu. <html> <body> <script language="javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("Addressbook.xml") // Load the XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("Addressbook.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html> XML ve XML Uygulamaları, Selim Akyokuş
XML’den HTML’e dönüşüm Server’de dönüşüm : Addressbook.xml belgesini Addressbook.xsl biçimleme sayfasını kullanarak HTML’e dönüşümünü sağlayan ASP kodu. <% 'Load the XML set xml = Server.CreateObject("Microsoft.XMLDOM") xml.async = false xml.load(Server.MapPath("Addressbook.xml")) 'Load the XSL set xsl = Server.CreateObject("Microsoft.XMLDOM") xsl.async = false xsl.load(Server.MapPath("Addressbook.xsl ")) Response.Write(xml.transformNode(xsl)) %> Sunucu tarafında XML belgeleri HTML’e dönüştürülerek tarayıcılara gönderilir. XSL’i desteklemeyen tarayıcılardada XML belgeleri görüntülenebilir. XML ve XML Uygulamaları, Selim Akyokuş
XML BELGELERİNİN İŞLENMESİ XML belgelerinin uygulama yazılımları işlenmesi için bir çok yazılım paketi geliştirilmiştir. Bu yazılımlar XML processor veya XML parser olarak adlandırılmaktadır. Uygulama Sun X package IBM XML4J package Oracle XML package Microsoft MSXML parser Open/XML parser Lark/Larval XML parser HTTP Processor XML Parser XML Belgeleri Databases XML ve XML Uygulamaları, Selim Akyokuş
XML BELGELERİNİN İŞLENMESİ XML parser’ları veya işlemcileri üç değişik model üzerine inşa edilmiştir. Bildiri-tabanlı İşlem modeli (Declaretive processing model): Bildiri-tabanlı işlem modelinde hangi işlemlerin gerçekleştirileçeğini belirtiriz. İşlemin nasıl gerçekleştileceğini sistem belirler. Örnek : XSLT Olay-tabanlı İşlem Modeli (Event-Based Processing model): Olay-tabanlı işlem modelinde XML parser’ı XML belgesini okur iken bulmuş olduğu nesneleri (elemanlar) uygulama programına olay (event) olarak bildirir. Uygulama programı gelen olaylara göre gerekli işlemleri yapar. SAX (Simple API for XML) Ağaç-tabanlı İşlem Modeli (Tree-based processing model): Ağaç-tabanlı işlem modelinde XML parser ilk önce XML belgesini okuyarak belge yapısına göre sistem belleğinde bir ağaç oluşturur. Uygulama progamı bu ağaç yapısı içinde dolaşarak gerekli işlemleri yapar. DOM (Document Object Model) XML ve XML Uygulamaları, Selim Akyokuş
XML BELGELERİNİN İŞLENMESİ Olay-tabanlı İşlem Modeli (Event-Based Processing model) : XML Parser XML belgesini okurken karşılaştığı nesneleri (başlangıç etiketi, karaketer veri veya bitiş etiketi) bir olay olarak uygulama programına iletir. SAX (Simple API for XML) <example> <line>&quo;Hello, world!&quo;</line> </example> start document start element: example start element: line text: “Hello, World!” end element: line end element: example end document Olaylar (Events) XML ve XML Uygulamaları, Selim Akyokuş
DOM ve DOM API DOM (Document Object Model) Ağaç-tabanlı işlem modeli kullanır. DOM , XML ve HTML belgerinin işlemesi için W3C konsorsiyumu tarafından geliştirilmiştir. parentNode <?xml version=”1.0”> <!—Parse ağaçı örneği --> <yazarlar> <yazar> <ad> Ali </ad> <soyad> Demir </ad> </yazar> </ornek> childNodes nextSibling previousSibling FirstChild LastChild XML ve XML Uygulamaları, Selim Akyokuş
DOM ve DOM API Movies.xml <?xml version="1.0" standalone="no"?> <!DOCTYPE movies SYSTEM "Movies.dtd"> <movies> <movie type="comedy" rating="PG-13" review="5" year="1987"> <title>Raising Arizona</title> <writer>Ethan Coen</writer> <writer>Joel Coen</writer> <producer>Ethan Coen</producer> <director>Joel Coen</director> <actor>Nicolas Cage</actor> <actor>Holly Hunter</actor> <actor>John Goodman</actor> <comments>A classic one-of-a-kind screwball love story.</comments> </movie> <movie type="comedy" rating="R" review="5" year="1988"> <title>Midnight Run</title> <writer>George Gallo</writer> <producer>Martin Brest</producer> <director>Martin Brest</director> <actor>Robert De Niro</actor> <actor>Charles Grodin</actor> <comments>The quintessential road comedy.</comments> . </movies> Movies.xml XML ve XML Uygulamaları, Selim Akyokuş
DOM ve DOM API MSXMXL Parser Movies.xml belgesini yükle <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <title>List Movies 2 Example HTML Document</title> <script language="JavaScript"> var xmldoc; function LoadDoc() { xmldoc = new ActiveXObject("microsoft.xmldom"); xmldoc.load("Movies.xml"); } function ListMovies() { LoadDoc(); root = xmldoc.documentElement; for (i = 0; i < root.childNodes.length; i++) { DOCCONTENT.innerHTML += "<b>" + root.childNodes.item(i).firstChild.text + "</b><br>"; DOCCONTENT.innerHTML += root.childNodes.item(i).lastChild.text + "<br><br>"; </script> </head> <body> Click the button to list the movies in the Movies XML document. <br> <input type="button" value="List Movies" onclick="ListMovies()"> <div id="DOCCONTENT"></div> </body> </html> MSXMXL Parser Movies.xml belgesini yükle Kök Belge Elemanı (movies) Kökün altıntaki eleman (movie) sayısı Movie altındaki ilk eleman (title) Movie altındaki son elman (comments) XML ve XML Uygulamaları, Selim Akyokuş
XML and Veritabanları Yeni Veritabanları XML tabanlı bir çok araç içermektedir. SELECT EMPNO, ENAME FROM EMP WHERE EMPNO = 7654; <?xml version="1.0"?> <ROWSET> <ROW id="1"> <EMPNO>7654</EMPNO> <ENAME>MARTIN</ENAME> </ROW> </ROWSET> Sonuç XML formatında XML ve XML Uygulamaları, Selim Akyokuş
Veritabanı bilgileri sunumu XML and Veritabanları Veritabanı bilgileri sunumu <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="rowcol.xsl"?> <query connection="demo" find="%" sort="ENAME" null-indicator="yes" > SELECT * FROM EMP WHERE ENAME LIKE '%{@find}%' ORDER BY {@sort} </query> emp.xsql query file Rowcol.xsl Style sheet file http://localhost/xsql/demo/emp.xsql?find=T&sort=EMPNO XML ve XML Uygulamaları, Selim Akyokuş
XML and Veritabanları XML ve XML Uygulamaları, Selim Akyokuş
Veritabanı uygulamaları arası veri değişim formatı XML and Veritabanları Veritabanı uygulamaları arası veri değişim formatı XML ve XML Uygulamaları, Selim Akyokuş
XML Mesaj Protokolları Şu ana kadar XML konusunudaki araştırma ve geliştirme çalışmalarının bir çoğu değişik sektörler için geliştirilen ve uygulamaların aynı dili konuşarak bilgi değişimini amaçlayan XML sözlükleri konusunda yoğunlaşmıştı. Son zamanlarda bu araştırma ve geliştirme çalışmalarının ilgi alanı XML belgelerinin güvenli bir şekilde iş uygulamaları arasında değişimini sağlayacak XML mesaj protokolları konusuna yönelmiştir. XML mesaj protokolleri XML-RPC : HTTP üzerinden XML taşınmasını sağlayan dilden ve platformdan bağımsız basit RPC protokolü WDDX (Web Distributed Data Exchange) : HTTP üzerinden karmaşık veri yapılarını taşımak amaçıyla geliştirilen bir protokol. ebXML Transport Protokolü : Birleşmiş milletler destekli ebXML gurubunca geliştirme aşasında olan bir protokol. SOAP (Simple Object Access Protocol) : Microsoft, DevelopMentor, IBM, Lotus Developement Corp firmalarınca desteklenen HTTP üzerinden iletişim sağlayan nesne tabanlı bir protokol. XML ve XML Uygulamaları, Selim Akyokuş
SOAP (Simple Object Access Protocol) SOAP veri ve method çağrılarınının istemcileri ve sunucuları arasında iletişimini sağlar. İstek ve Cevaplar XML formatında HTTP protokolü ile taşınır. XML ve XML Uygulamaları, Selim Akyokuş
SOAP (Simple Object Access Protocol) SOAP Message Embedded in HTTP Request POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> XML ve XML Uygulamaları, Selim Akyokuş
SOAP (Simple Object Access Protocol) SOAP Message Embedded in HTTP Response HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> XML ve XML Uygulamaları, Selim Akyokuş
MicroSoft BizTalk FrameWork 2.0 BizTalk Framework 2.0 SOAP belgelerinin farklı sistemler arasında taşınmasını sağlamak amaçıyla geliştirilen bir spesifikasyondur. XML ve XML Uygulamaları, Selim Akyokuş
BizTalk Server BizTalk Framework Compliant (BFC) Server : BizTalk FrameWork Specifikasyonununda belirtilen fonkfiyonlara sahip sunucu XML ve XML Uygulamaları, Selim Akyokuş
SONUÇ Microsoft, IBM, Sun ve Oracle gibi birçok teknoloji lideri firma XML ve XML uygulamala standardlarını desteklemekte ve XML tabanlı yeni ürünlerini bilgi teknolojisi uygulamalarının kullanımına sunmaktadır. Microsoft ODBC ve OLE’den sonra en büyük yatırımını XML teknolojileri konusunda yapmıştır. Bir çok araştırmacı ve yazılım geliştiricisi XML’in yazılım endüstirisinde radikal değişiklilere sebeb olacağına inanmaktadır. “XML is a breakthrough technology.” Bill Gates – 1997 “Don’t dismiss XML-based standards as futuristic or irrelevant…” The Gartner Group XML ve XML Uygulamaları, Selim Akyokuş
SONUÇ XML elektronik veri değişiminin yeni ASCII standardı olarak kabül edilmektedir. “XML is the base protocol for this new era.” Bill Gates – June 22, 2000 Önümündeki aylar ve yıllar XML’in bir çok alandaki uygulamaları hakkında yapılan daha çok araştırma, geliştirme, yazılım ve yayın çalışmalarına ve yeni XML ürünlerine sahne olacak. XML ve XML Uygulamaları, Selim Akyokuş
Bilgisayar Mühendisliği Bölümü En geniş Kaynak: XML Cover Pages http://www.oasis-open.org/cover/ TEŞEKKÜRLER Doç. Dr. Selim Akyokuş Bilgisayar Mühendisliği Bölümü Doğuş Üniversitesi XML ve XML Uygulamaları, Selim Akyokuş