Transcript Document

XML TABANLI
B2B ÇÖZÜMLERİ
Doç. Dr. Selim Akyokuş
Bilgisayar Mühendisliği Bölümü
Doğuş Üniversitesi
XML tabanlı B2B Çözümleri, Selim Akyokuş
XML tabanlı B2B Çözümleri
Gündem
•
•
•
•
•
•
•
•
•
•
Sayısal Ekonomi ve B2B e-iş
B2B ve B2B İş Çözüm Modelleri
İşaretleme Dilleri ve Tarihçesi
HTML’in Sınırlamaları
XML Nedir?
XML Söz Dizimi Kuralları
XML DTD Belge Tipi
Tanımlamaları
XML şemaları (Schemas)
CSS ve XSL ile XML Sunumu
XML Belgelerinin İşlenmesi
XML tabanlı B2B Çözümleri, Selim Akyokuş
•
•
•
•
•
•
•
•
•
•
•
•
B2B Veri Değişim Standartları
B2B FrameWorks
Yatay Şemalar
Dikey Şemalar
XML Mesaj Prokolleri
Web Servisleri
SOAP
WSDL
UDDI
B2B Entegrasyon Sunucuları
Microsoft Biztalk Server
Sonuç
2
Sayısal Ekonomi
• PriceWaterHouseCoopers danışmanlık şirketine göre
sayısal ekonomi (digital economy) olarak ta adlandırılan
yeni ekonomiyi şekillendirecek 6 güç vardır :
–
–
–
–
–
–
Endüstri Yakınlaşması (Industry Convergence)
Elektronik İş (E-Business)
Bilgi Ekonomisi (Knowledge Economy)
İşletme Raporlama (Corporate Reporting)
En İyi İş Güçü için Rekabet (Competition for Best People)
Yeni Avrupa (New Europa)
• Bunlardan en önemlisi bilgi teknolojilerine dayanan
elektronik iş’tir
XML tabanlı B2B Çözümleri, Selim Akyokuş
3
B2B Elektronik İş
• B2B (Business-to-Business, İşten-İşe) e-iş genel anlamda kurumlar
arasında geleneksel yöntemlerle gerçekleştirilen iş ilişkilerinin
elektronik ortamda (Internet) yapılması olarak tanımlanabilir.
• Geçen 5 yılda bir çok işletmenin B2C (Business to Consumer) olarak
adlandırılan işletmeden tüketiciye e-ticaret sitesi açarak Internet’i bir
ticaret araçı olarak kulladığını gördük.
• B2C avantajları
– Yeni satış kanalları
– Mevcut pazar potansiyelini genişletme
– Daha az maliyet ve daha iyi müşteri memnuniyeti
– Vb...
• B2B e-iş B2C’ye göre çok daha büyük fayda ve potansiyele sahiptir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
4
B2B e-iş Faydaları
•
Geleneksel iş modellerini değiştirecek olan B2B e-iş bir çok fayda
sağlacaktır:
–
–
–
–
–
–
–
Daha iyi müşteri tatmini ve desteği
Yeni ürün ve hizmetlerin pazara hızla sunulması
Daha iyi servis
Daha iyi alım ve satış işlemleri
Daha az işletim maliyeti
Daha az üretim maliyeti
Daha düşük stok maliyeti
XML tabanlı B2B Çözümleri, Selim Akyokuş
5
B2B e-Ticaret Tahminleri
• Forrester Research araştırma şirketine göre belirli bir aşamadan
sonra B2B e-ticaret hızlı ve hiper bir büyüme kazanacaktır.
• 2003 yılında 1.3 tirilyon dolarlık hacme sahip olacağı tahmin
edilmektedir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
6
B2B e-iş Çözüm Modelleri
• B2B’de üç değişik çözüm modeli genel olarak ortaya çıkmıştır :
– Alış merkezli (buy-side) çözüm modeli
– Satış merkezli (sell-side) çözüm Modeli
– Elektronik pazar (e-pazar, e-marketplace) çözüm modeli
XML tabanlı B2B Çözümleri, Selim Akyokuş
7
Alış merkezli (buy-side) çözüm modeli
• Alış merkezli çözüm modelinde amaç şirketin alış işlemlerindeki
verimliği artırmaktır.
• Bu model için diğer bir isim e-procurement olarak geçmektedir. Bu
model birden-çoğa (one-to-many) model olarak ta tanımlanmaktadır.
• Alış merkezli modelde iş mantığı alış yapan şirket tarafında bulunur.
Şirket değişik tedarikçilerden aldığı katalog bilgilerini sisteminde
tutar. Değişik formatta gelen bilgilerin birleştirilmesini ve sürekli
güncellenmesini gerektirir.
• Alış merkezli çözümler aynı zamanda alış iş akış süreci ile ilgili alış
siparişi, onay ve ürün kabul gibi işlemleri de gerçekleştirir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
8
Satış merkezli (sell-side) çözüm Modeli
• Satış merkezli model çözümleri satış süreci verimliğini artırmak ve
maliyetleri düşürmek için alıcılar ile elektronik etkileşim sağlar.
• Bu model çoktan-bire (many-to-one) model olarak ta
tanımlanmaktadır. Bu modelde tek bir tedarikçi ürün kataloğunu bir
çok alıcıya özel fiyatlandırma şartları içinde sunarlar.
• Satış merkezli model çözümleri bir çok erişim noktası sunar. Bunlar
– tarayıcı tabanlı web çözümleri,
– alıcıya özel veya
– elektronik pazarlara yönelik entegrasyon çözümleri olabilir.
• Bu çözümler tedarik zinciri yönetimindeki satış sipariş, sevkiyat ve
lojistik gibi süreçlerin tamamının entegrasyonunu gerektirir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
9
Elektronik pazar (e-pazar, e-marketplace)
çözüm modeli
• Üçünçü B2B iş çözüm modeli e-pazar olarak adlandıracağımız
elektronik pazarlardır (e-marketplace).
• Elektronik pazarlar satıcı ve alıcı şirketlerinin hizmet ve ürünlerinin
ticareti için oluşturulan aracı sitelerdir.
• Bu model çoktan-çoğa (many-to-many) model olarak da tanımlanır.
Bu konu için online exchange, infomediary, I-market, digital
marketplace, net hub, trading hub gibi bir çok terimler
kullanılmaktadır.
• Bu modelde e-Pazar tedarikçilerin sağladığı ürün kataloglarını
birleştirerek kullanıma sunar.
• Bu yapı bilgilerin tutarlı bir şekilde kullanıcılara sunulması,
aranmasını ve alıcı ve satıcı arasındaki entegrasyonu sağlar. Aynı
zamanda alıcı ve satıcı taraflarındaki yükü azaltır.
• Bu modelde fiyat isteme, açık artırma, ters açık artırma bir çok işlem
kolay bir şekilde gerçekleştirilir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
10
Elektronik pazar (e-pazar, e-marketplace)
çözüm modeli
• Elektronik pazarlar ideal elektronik iş yapılarıdır.
• Gartner araştırma gurubuna göre elektronik pazarlar 2005 yılında
B2B pazarını kontrol edeceklerdir.
• 2005 yılında 500,000’den fazla şirketin elektronik pazarlara katılacağı
tahmin edilmektedir.
XML tabanlı B2B Çözümleri, Selim Akyokuş
11
B2B Entegrasyon
• B2B elektronik iş çok değişik teknolojileri alt yapısında
bulundurduğundan bu teknolojilerin birbiri ile uyum sağlayacak
şekilde birleştirilmesi ve entegrasyonu büyük önem arz etmektedir.
• Bugünkü bilgisayar iletişimin ve teknolojisindeki çok büyük
gelişimelere ve birikime rağmen, bilgisayar sistemlerindeki ve
veritabanlarındaki farklı formatlardaki verilerin şirket içi ve şirketler
arası taşınması ve işlenmesi en büyük problemlerden birisidir.
• B2B elektronik iş’in bir çok faydasına rağmen çok fazla
yaygınlaşamamasının nedeni uygulamalar arası uyum sağlayacak
B2B entegrasyon standartlarının oluşmamasıdır.
• XML B2B entegrasyon standartlarının oluşumundaki temel anahtar
teknolojidir.
• XML nedir ?
XML tabanlı B2B Çözümleri, Selim Akyokuş
12
İş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 tabanlı B2B Çözümleri, Selim Akyokuş
13
İş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 tabanlı B2B Çözümleri, Selim Akyokuş
14
İş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 tabanlı B2B Çözümleri, Selim Akyokuş
15
İş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 tabanlı B2B Çözümleri, Selim Akyokuş
16
HTML’in Sınırlamaları
p (paragraf başı)
b (bold)
br (line break-satır
atlama)
<P>
<b> Sn. Selim Akyokuş </b>
<br>
Barboros Cad. No: 11
<br>
Yıldız 80750, İSTANBUL
</p>
P (paragraf sonu)
Başlık
Ad
Soyad
Cadde Adı
Bina No
İl
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 tabanlı B2B Çözümleri, Selim Akyokuş
17
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 tabanlı B2B Çözümleri, Selim Akyokuş
18
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.
Başlangıç
etiketi
<Ad> Selim </Ad>
<Soyad> Akyokuş </Soyad>
Bitiş
etiketi
• 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 tabanlı B2B Çözümleri, Selim Akyokuş
19
XML Nedir?
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
]>
<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>[email protected]</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank&apos;s Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>[email protected]</email>
<web>http://www.fruity.com/rosenberg</web>
<company>Rosenberg&apos;s Shoes &amp; Glasses</company>
</contact>
</addressbook>
XML tabanlı B2B Çözümleri, Selim Akyokuş
Addressbook XML Belgesi
Kaynak : XML Unleashed
20
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)>
Addressbook.dtd
<!ELEMENT company (#PCDATA)>
XML tabanlı B2B Çözümleri, Selim Akyokuş
21
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 tabanlı B2B Çözümleri, Selim Akyokuş
22
XML Nedir?
addressbook
contact
name
Selim Akyokuş
contact
address
.......
contact
...
phone
voice
fax
216 2507070
<addressbook>
<contact>
<name> Selim Akyokuş</name>
<address> .... </address>
...
<phone>
<voice> 216 2597070 </voice>
<fax>
216 2597080 </fax<
</phone>
...
</contact>
...
</adsressbook>
XML tabanlı B2B Çözümleri, Selim Akyokuş
216 2597080
•Etiketli ağaç yapısı (labeled tree)
•Yarı Yapısal Veri Modeli
(Semistructured Data Model)
•İlişkisel (relational)
•Nesne-kökenli (objectoriented)
veri yapılarını temsil edebilir.
23
XML Nedir?
•
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.
<SİPARİŞ>
ÜRETİCİ
TOPTANCI
<FATURA>
ÜN
<S
>
İP
AR
İŞ
>
<Ü
R
BANKA
<ÜRÜN
BİLGİLERİ>
MÜŞTERİ
XML tabanlı B2B Çözümleri, Selim Akyokuş
M
DE
Ö
<
<ÇEKM E>
<ÇEKME>
E>
M
DE
<Ö
BANKA
E>
24
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 tabanlı B2B Çözümleri, Selim Akyokuş
25
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 tabanlı B2B Çözümleri, Selim Akyokuş
26
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
Başlangıç etiketi (start tag)
Karater veri
Bitiş etiketi (start tag)
• Eleman isimleri bir harf veya alt çizgi (_) ile başlayabilir. Eleman
isimleri case-sensitive’dir.
<kitap>
XML tabanlı B2B Çözümleri, Selim Akyokuş

<Kitap>
27
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.
<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 tabanlı B2B Çözümleri, Selim Akyokuş
28
Elemanlar
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 tabanlı B2B Çözümleri, Selim Akyokuş
29
Ö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 tabanlı B2B Çözümleri, Selim Akyokuş
30
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 tabanlı B2B Çözümleri, Selim Akyokuş
31
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 &#169; 2000 SAMS Publishing</copyright>
<copyright> Copyright &#xA9; 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 &amp; Mark Birbeck</yazar>
&
XML tabanlı B2B Çözümleri, Selim Akyokuş
32
Karakter ve Varlık Referansları
•
(&,<,>,",') karakterleri için XML standard varlık referansları
>
<
&
'
"
•
&gt;
&lt;
&amp;
&apos;
&quot;
DTD’ de varlık referansı tanımı
<!ENTITY firma "XYZ Bilgisayar A.Ş.">
<reklam> &firma; &quot; E-ticaret &quot; hizmetleri sunar. </reklam>
XYZ Bilgisayar A.Ş. "E-ticaret" hizmetleri sunar.
XML tabanlı B2B Çözümleri, Selim Akyokuş
33
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 tabanlı B2B Çözümleri, Selim Akyokuş
34
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 tabanlı B2B Çözümleri, Selim Akyokuş
35
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 "&#38;">
<!ENTITY apos "&#39;">
]>
XML tabanlı B2B Çözümleri, Selim Akyokuş
36
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>
Dahili (Internal or inline)
<person>
<name>
<family>Wallace</family> <given>Bob</given>
</name>
<email>[email protected]</email>
</person>
DTD
<person>
<name>
<family>Tuttle</family> <given>Claire</given>
</name>
<email>[email protected]</email>
</person>
</addressBook>
XML tabanlı B2B Çözümleri, Selim Akyokuş
37
İ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 tabanlı B2B Çözümleri, Selim Akyokuş
38
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 tabanlı B2B Çözümleri, Selim Akyokuş
39
Belge Tipi Tanımlamaları - DTD
• Bir XML belgesinin yapısı tanımlamada kullanılan temel
DTD deyimleri
DTD deyimi
Anlamı
ELEMENT
Bir XML elemanı tanımlar.
ATTLIST
Bir eleman tipinin alabileceği
özellikleri tanımlar.
ENTITY
Belli bir içeriğin bir isme bağlanarak o
isimle ilişkilendirilmesini sağlar.
NOTATION
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 tabanlı B2B Çözümleri, Selim Akyokuş
40
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 tabanlı B2B Çözümleri, Selim Akyokuş
41
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 tabanlı B2B Çözümleri, Selim Akyokuş
42
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*)>
| : Veya
XML tabanlı B2B Çözümleri, Selim Akyokuş
* : Sıfır veya
daha fazla
43
Yalnız Eleman İçeren Elemanlar
• Eleman tanımlarında kullanılan semboller ve anlamı
Anlamı
Eleman
Tanımı
A?
Opsiyonel; A alt elemanı bir defa veya hiç gözükmeyebilir.
A+
A alt eleman mutlaka bir defa veya daha fazla gözükür.
A*
A alt eleman sıfır veya daha fazla gözükebilir.
A,B
B elemanı A’dan sonra gözükmelidir.
A|B
A veya B’den bir tanesi gözükebilir.
()
(#PDATA)
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 tabanlı B2B Çözümleri, Selim Akyokuş
44
Karışık ve ANY Elemanı
• Karışık (Mixed) Elemanlar:
Karışık elemanlar hem karakter veri hemde alt elemanları
içerebilirler.
<!ELEMENT
<!ELEMENT
konu (#PCDATA)>
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 tabanlı B2B Çözümleri, Selim Akyokuş
45
Ö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
Özellik her zaman tanımlanmalıdır.
#IMPLIED
Özellik opsiyoneldir.
#FIXED Değer
Özellik sabit bir Değer’e sahiptir. Özellik eleman
içinde tanımlı olmazsa, parser bu sabit değer’in
olduğunu varsayar.
Değer
XML tabanlı B2B Çözümleri, Selim Akyokuş
Ö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.
46
Ö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>
<Kitap> XML’e Giriş </Kitap>
Opsiyonel
<!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>
<elma> ...... </elma>
XML tabanlı B2B Çözümleri, Selim Akyokuş
Default
Değer
47
Özellikler (Attributes)
Özellik Tipleri
Özellik Tipi
Anlamı
CDATA
Karakter veri (Unparsed)
Enumarated
Özelliğin sahip olabileçeği değerler kümesi
NOTATION
DTD’de tanımlanmış herhangi bir notation.
ENITITY
Harici bir varlık.
ENTITIES
Bir den fazla boşlukla (white space) ayrılmış varlıklar.
ID
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.
IDREF
Boşlukla (white space) ayrılmış ID’ler serisine referans.
IDREFS
NMTOKEN
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.
NMTOKENS
XML tabanlı B2B Çözümleri, Selim Akyokuş
48
Özellikler (Attributes)
•
Enumarated özellikler bir dizisi içerir.
Default
<!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 tabanlı B2B Çözümleri, Selim Akyokuş
49
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
XML tabanlı B2B Çözümleri, Selim Akyokuş
“http://www.xyz.com/readme.txt”>
50
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?”>
<!ELEMENT tavan (%boyut;)>
<!ELEMENT çatı (%boyut;)>
<!ELEMENT duvar (%boyut;)>
uzunluk, genişlik, yükseklik?”>
• Karakter Varlıklar (Character Entities)
Verilecek bir isim vasıtasıyla istenilen karaterleri göstermek için
kullanılır.
<!ENTITY
copyright “&#169” >
©
XML tabanlı B2B Çözümleri, Selim Akyokuş
51
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 tabanlı B2B Çözümleri, Selim Akyokuş
52
XML Şema Tanım Dili
(XML Schema Definition Language)
• XML şema tanım dili (XSD, XSDL) XML belgelerinin yapısını DTD gibi
tanımlada kullanılan yeni bir yöntemdir.
• XML şema tanım dili 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 1998 yılından itibaren gelişme aşamasında (Note, Working-draft)
olan XML şema tanım dili son şeklini alarak (recommendation)
2 Mayıs 2001 tarihinde yayınlanmıştır.
XML tabanlı B2B Çözümleri, Selim Akyokuş
53
XML Şemaları
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 tabanlı B2B Çözümleri, Selim Akyokuş
<?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>
<ElementType name="addressbook" content="eltOnly">
<element type="contact" minOccurs="1"/>
</ElementType>
</Schema>
54
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 tabanlı B2B Çözümleri, Selim Akyokuş
55
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 tabanlı B2B Çözümleri, Selim Akyokuş
56
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 tabanlı B2B Çözümleri, Selim Akyokuş
57
CSS (Cascading Style Sheets)
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
]>
<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>[email protected]</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank&apos;s Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>[email protected]</email>
<web>http://www.fruity.com/rosenberg</web>
<company>Rosenberg&apos;s Shoes &amp; Glasses</company>
</contact>
</addressbook>
XML tabanlı B2B Çözümleri, Selim Akyokuş
58
CSS (Cascading Style Sheets)
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
]>
<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>[email protected]</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank&apos;s Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>[email protected]</email>
<web>http://www.fruity.com/rosenberg</web>
<company>Rosenberg&apos;s Shoes &amp; Glasses</company>
</contact>
</addressbook>
XML tabanlı B2B Çözümleri, Selim Akyokuş
contact {
display: block;
width: 350px;
padding: 10px;
margin-bottom: 10px;
border: 4px double black;
background-color: silver;
color: blue;
text-align: center;
}
name {
display: block;
font-family: Times, serif;
font-size: 16pt;
font-weight: bold;
}
address {
display: block;
font-family: Times, serif;
font-size: 14pt;
}
city, state, zip {
display: inline;
font-family: Times, serif;
font-size: 14pt;
}
phone, email, web, company {
display: none;
}
59
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 tabanlı B2B Çözümleri, Selim Akyokuş
60
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 tabanlı B2B Çözümleri, Selim Akyokuş
61
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.xsl
Şablon
(Template)
Addressbook.html
<isim> Selim Akyokuş </isim>
<xsl:template match=”isim”>
<H2> <xsl:value-of/> </H2>
</xsl:template>
Kalıp
(Pattern)
<H2> Selim Akyokuş </H2>
XML tabanlı B2B Çözümleri, Selim Akyokuş
62
Kök (root)
<?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>
<xsl:template match="address">
<xsl:value-of/><br/>
</xsl:template>
<xsl:template match="city">
<xsl:value-of/>,
</xsl:template>
<xsl:template match="state">
<xsl:value-of/>
</xsl:template>
<xsl:template match="zip">
<xsl:value-of/><br/>
</xsl:template>
</xsl:stylesheet>
XML tabanlı B2B Çözümleri, Selim Akyokuş
<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>[email protected]</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank&apos;s Ratchet
Service</company>
</contact>
..........
</addressbook>
XML’den HTML’e dönüşüm
63
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 tabanlı B2B Çözümleri, Selim Akyokuş
64
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 tabanlı B2B Çözümleri, Selim Akyokuş
65
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
Databases
XML tabanlı B2B Çözümleri, Selim Akyokuş
XML
Belgeleri
66
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 tabanlı B2B Çözümleri, Selim Akyokuş
67
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
Olaylar
(Events)
 end element: example
 end document
XML tabanlı B2B Çözümleri, Selim Akyokuş
68
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.
<?xml version=”1.0”>
<!—Parse ağaçı örneği -->
<yazarlar>
<yazar>
<ad> Ali </ad>
<soyad> Demir </ad>
</yazar>
</ornek>
Document
Version
nextSibling
XML tabanlı B2B Çözümleri, Selim Akyokuş
Comment
Element
Element
childNodes
previousSibling
parentNode
FirstChild
Element
Element
Text
Text
LastChild
69
DOM ve DOM API
<?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>
</movie>
.
.
</movies>
Movies.xml
XML tabanlı B2B Çözümleri, Selim Akyokuş
70
DOM ve DOM API
<!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>";
MSXMXL Parser
Movies.xml belgesini yükle
Kök Belge Elemanı (movies)
}
}
</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>
XML tabanlı B2B Çözümleri, Selim Akyokuş
Kökün altıntaki eleman (movie) sayısı
Movie altındaki ilk eleman (title)
Movie altındaki son elman
(comments)
71
XML tabanlı B2B Çözümleri, Selim Akyokuş
72