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.
İş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.
İş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.
İş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ı.
HTML’in Sınırlamaları
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 Nedir?
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.
Selim
Akyokuş
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.
XML Nedir?
XML Nedir?
Bir belge tipi tanımlaması, DTD (Document Type Definitions),
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 Nedir?
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 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.
Chip
XML Uygulamaları
Aygıt ve uygulamadan bağımsız veri erişimi ve biçimlendirilmesi
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 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 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 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.
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.
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.
Elemanlar
Boş Elemanlar (Empty elements)
Boş elemanların herhangi bir içeriği yoktur.
Boş elemanlar etiketin sonuna bir (/) işareti eklenerek kısa bir biçimde gösterilebilir.
Elemanlar
Eleman Yuvalama (Nesting)
Özellikler
Özellikler (Attributes) elemanlara eklediğimiz ek bilgilerdir.
Başlangıç etiketi içinde özellik ismi ve değer ikilileri olarak geçer.
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.
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 : NNNN;
Karakter ve Varlık Referansları
(&,<,>,",') karakterleri için XML standard varlık referansları
Açıklamalar ve İşlem Komutları
Açıklama (Comments) yapısı HTML ile aynıdır.
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.
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.
Belge Tipi Deklarasyonu
İ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.
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.
Belge Tipi Tanımlamaları - DTD
Bir XML belgesinin yapısı tanımlamada kullanılan temel DTD deyimleri
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.
Boş (Empty) Eleman Tanımlamaları
İçeriği boş olan elemanlar.
Yalnız Eleman İçeren Elemanlar
Yalnızca alt seviye elemanları içerir.
Yalnız Eleman İçeren Elemanlar
Eleman tanımlarında kullanılan semboller ve anlamı
Karışık ve ANY Elemanı
Karışık (Mixed) Elemanlar:
Karışık elemanlar hem karakter veri hemde alt elemanları içerebilirler.
Özellikler (Attributes)
Bir eleman hakkındaki özellik bilgileri aşağıdaki formatta tanımlanır.
Dört çeşit Default tipi vardır.
Özellikler (Attributes)
Özellikler (Attributes)
Özellikler (Attributes)
Enumarated özellikler bir dizisi içerir.
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.
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.
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.
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.
Bu yöntem gelişme aşamasında olması nedeniyle henüz son şeklini (recommendation) alamamıştır.
XML Şemaları
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.
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ı
CSS (Cascading Style Sheets)
isim elemanı: kalın, 16pt ve Times font
Selim Akyokuş
CSS (Cascading Style Sheets)
CSS (Cascading Style Sheets)
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
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’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’den HTML’e dönüşüm
XML’den HTML’e dönüşüm
XML’den HTML’e dönüşüm
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.
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 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)
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.
DOM ve DOM API
DOM ve DOM API
XML and Veritabanları
Yeni Veritabanları XML tabanlı bir çok araç içermektedir.
XML and Veritabanları
XML and Veritabanları
XML and Veritabanları
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.
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.
SOAP (Simple Object Access Protocol)
SOAP Message Embedded in HTTP Request
SOAP (Simple Object Access Protocol)
SOAP Message Embedded in HTTP Response
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.
BizTalk Server
BizTalk Framework Compliant (BFC) Server : BizTalk FrameWork Specifikasyonununda belirtilen fonkfiyonlara sahip sunucu
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.
SONUÇ
XML elektronik veri değişiminin yeni ASCII standardı olarak kabül edilmektedir.