XSLT ye Giriş

Yazar: İbrahim Ersoy
Kategori: XML WEB Servisleri
Eklenme Tarihi: 29.8.2008 21:13:09



XSLT ye giriş seviyesi olacak bu makalede XSLT nin yanı sıra XSL i de anlatmaya çalışacağım...

XSLT nin en basit şekilde tanımlayacak olursak; XSLT,XML?dir.XML deki gibi ?<? ve ?>? tag açma ve kapama işaretleme yapıları en başından itibaren XSLT de desteklidir.

<?xml version=?1.0??>

<ulke>
 <sehir>Istanbul</sehir>
 <sehir>Ankara</sehir>
</ulke>

Yukarıdaki kodlama bir XML belgesine aittir.XSLT Belgeside XML e çok benzer;

<?xml version=?1.0??>
<xsl:stylesheet xmlns:xsl=?http://www.w3.org/1999/XSL/Transform? version=?1.0?>
.....
</xsl:stylesheet>



Kısaca İki Dökümanın görünüş itibariyle incelemiş bulunuyoruz.XSLT kendisine has formülleri,düğümleri,nitelikleri kullandığından ötürü fazla detaya girmek istemedim.Umarım Başlangıç için yeterlidir.

Konumuza geri dönecek olursak;


XSLT nin XML olarak düşünmemizin yararlarından birisi XML in Platform bağımsız olmasından ötürü XSLT ninde platform bağımsız olması ve aynı temel teknoloji tarafından çözümlenebilmesidir(parse işlemi).

XSLT nin diğer bir yararı belirli bir DTD(Document Type Definition) uymadan XSLT nin kendi işlemcisinin belirlediği XSLT spesifikasyonlarında normal olmayan bir DTD nin tanımlanmasına olanak sağlamasıdır.Bununla ilgili bir örneği ilerleyen makalelerimde göstereceğim.Konumuza dönersek eğer;

XSLT nin esas amacı XML belgelerini dönüştürmektir.Bu ne demektir? XSLT Xml Belgelerini başka XML belgelerine dönüştürmemize yarar.bunu biraz açarsak; XSLT işlemcileri,XSLT stil sayfalarının yanı sıra girdi XML belgesini çözümleyerek, girdi XML belgesindeki öğelerini de kullanaraktan XSLT stil sayfasında bulunan yönergeleri işlemektedir.Bu işleme sırasında XSLT Yapılandırılmış bir XML çıktısı ortaya çıkarır.XSLT yönergeleri,XML öğeleri şeklindedir ve XML belgesindeki öğelere erişip kullanmak için yine XML kullanmaktadır.

XSLT sadece biçimlendirme içinde kullanılmaz.çünkü w3c nin hazırladığı XSL FO(Biçimlendirme Nesneleri-Formatting Objects) adı verilen XSL adlı ayrı bir biçimlendirme özelliği vardır.ve bu XML belgelerini biçimlendirmede yoğun bir biçimde kullanılır.


XSL FO(Extensible Style Language Formatting Objects)



Birazcık daha XSL FO dan bahsedelim isterseniz...

XSL FO,bir W3C önerisidir.ve Adı sonradan XSL olarak değiştirilmiştir.

XSL FO nun amacı biçimlendirmedir.Birazdan XSL FO ile ilgili bir örnek gösterdiğimde konuyu daha iyi kavrayacaksınız.

<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="kok">
<!?Sayfa Şablonu -->
</fo:simple-page-master>
</fo:layout-master-set>


<fo:page-sequence master-reference="kok">
<!-- İçerik -->
</fo:page-sequence>
</fo:root>




1)<?xml version="1.0" encoding="ISO-8859-1"?>

Her XSL FO belgesi aynı zamanda da bir xml belgesidir.Ve daima yukarıdaki gibi bir deklarasyon ile başlamalıdır.

2)<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

Burada görüldüğü üzere her XSL FO belgesinin birer kök elementine sahip olduğunu gösteriyor ve XSL e ait aduzayını ekliyor.

3)<fo:layout-master-set>
</fo:layout-master-set>

Sayfa şablonları eklemek için kullanılan bir düğümdür.

4)<fo:simple-page-master master-name="kok">
<!?Sayfa Şablonu -->
</fo:simple-page-master>

Burada tek bir sayfa şablonu eklenmiş bulunmaktadır.Unutulmaması gerekirki; her master-name özelliğine verilen değer benzersiz olmalıdır.

5)<fo:page-sequence master-reference="kok">
<!-- İçerik -->
</fo:page-sequence>

Bu element yani fo:page-sequence sayfa içeriklerini belirlememize yarar.İçerik i alacağımız kısım köprüleme yaptığımız kısımdır.gördüğünüz üzere master-name ve master-reference in ortak değerlerinin aynı olması bundan dolayıdır...


XSL FO yu da size anlattığıma göre diğer makalemde xslt ve xsl ile kaldığımız yerden devam edeceğiz.


İyi Günler Dilerim...


İbrahim Ersoy

1985 Kütahya doğumlu.2005 yılında Bilgisayar Programcılığı bölümünden mezun oldu.Anadolu Üniversitesi İşletme Fakültesinde Lisans eğitimine devam ediyor. 8 yıldan beri bilgisayarlar ile ilgileniyor.Programlama ya ilk 2001 yılında visual basic 6 ile başladı 2 yıl sonra .net in çıkmasıyla visual basic.net e merak sardı.Daha sonra veritabanı programcılığı alanında kendini geliştirdi.Çeşitli küçük çaplı kurumsal uygulamalar yazdı.Vb.net in kendisine yetmeyeceğini düşünerekten 2005 yılında C# a geçiş yaptı. 2006 yılında Directx Sdk sını araştırması belki de hayatının dönüm noktası oldu.3D oyun programcılığına bu şekilde merak sardı.Şu anda halen daha Managed DirectX ve XNA ile ilgili araştırmalarına devam ediyor. Bilgi sahibi olduğu diller ve programlar: DirectX,XNA,Vb.NET,Flash,ASP.NET,HTML,C#,Flex

Gökhan GÜR - 12.2.2010
anlatımınız güzel, ve devamının gelmesini temenni ederim, saygılar...

Yorumunuz