XSL ( XSL-FO ) Giriş

bora

Bu giriş yazısında, XSL dilini kullanarak, xml formatındaki verilerimizden çıktı üretmek ( PDF ) için gereken adımları anlatmaya çalışacağız.

·         XML                       : Hepimizin bildiği veri taşıma/aktarma için kullanılan dil .

·         XSLT                       : XML verisinin dönüşümü için kullanılan teknoloji .

·         XPATH                  : XML içerisindeki verilere expressionlar ile erişebilmek için kullanılan yöntem .

·         XSL ( XSL-FO )     : Bu da XML ile taşınan , XSLT ile dönüştürlen verinin çıktısını oluştururken kullanılan formatlama dili .  HTML gibi düşünülebilir .

Hemen kafanızda daha iyi canlanması için şu örneği verelim .

Örnek olarak aşağıdaki gibi bir verimiz olsun, XML formatında :

Bu örnek kişinin arkadaş listesini saklıyor.

Bizden aşağıdaki gibi bir çıktı oluşturmamız isteniyor :

Bu veriyi XSLT ile gezmemiz , XPATH ile doğru xml nodelarını almamız ve XSL-FO ile de çıktımızın layoutunu oluşturmamız lazım.

Bu çıktı için şöyle bir XSL-FO kodu yazılmış:

Sarı ile çizdiğimi yerlere bakarsak ,

Xsl:for-each  bir XSLT syntaxı , for dönügüsü başlatıyor .

Hemen içindeki “select” özelliği ile (“./friend”) xml veri içerisindeki tüm friend node larını for döngüsü içindeki iterasyona katmış.

Bu döngü içerisinde fo-table-row , fo-table-cell gibi tagler var. bunlar işte XSL-FO elementleri . bunları kullanarak ekranı çiziyoruz.

Yine fo elementlerinin en içinde de xsl-value-of ile friend xml node içindeki name ve phNo tag degerleri alınmış.

Tüm hikaye konsept olarak bu şekilde . FO ile başlayan taglerin kullanımını ögrenmek gerekiyor. XPATH ile de sürekli xml den veri cıkaracağımız için onu da ögrenmeliyiz. Ama intetrnette XPATH için cok kaynak var . sorun cıkacağınız sanmıyorum.

XSL-FO için o kadar bol kaynak yok , editorler bile paralı . bi tane open source editor buldum ama cok bızıklayamadım eger iş görürse bir sonraki mailde anlatırım .

Şimdi gelelim localinizde bu işlemleri nasıl gerçekleştireceksiniz.

Elimizdeki xml input ve fo dosyaları ile cıktı üretebilmek için apache fop diye bir icat car.

Apache FO Processor .

Aşağıdaki adresten FOP indiriyoruz:

http://www-eu.apache.org/dist/xmlgraphics/fop/binaries/fop-2.3-bin.zip

bu zip dosyasını

D:\dev\xsl-fo\fop-2.3\fop\

gibi bir dizine cıkardığınızı varsayıyorum

Fop.bat dosyasının oldugu dizini

Environment variables altındaki path değişkenine eklememiz gerekiyor.

Ben FOP_HOME diye bir değişken tanımlayıp onu da path e ekledim.

Bu işlemleri yaptıktan sonra ekteki zipi bir dizine cıkarın, komut satırından o dizine düşün ve

“fop -xml data.xml -xsl template.xsl -pdf out.pdf”

Şeklinde komutu çalıştırdığınızda out.pdf oluşmuş ise geliştirme ortamınız hazır demektir.

Aşağıdaki tutorial ile devam edebilirsiniz.

http://www.renderx.com/tutorial.html

bir sonraki yazıda görüşmek üzere J

Bir cevap yazın