İlk Dinamik Sayfa

Top  Previous  Next

Öncelikle örneğimizde kullanacağımız XML dokümanına bir göz atalım.

 

<?xml version="1.0" encoding="UTF-8"?>

<root>

  <calisan>

    <AD>Mehmet Çelik</AD>

  </calisan>

</root>

Bu, bir çalışanın adını tanımlayan basit bir XML dokümanıdır. Geçerli bir XML dokümanının sadece bir kök imi olmalıdır. Örneğimizdeki kök iminin adının root olduğunu görüyoruz.

Dokümandaki ilk satırda yer alan <?xml version="1.0" encoding="UTF-8"?> ifadesi bir işlenme talimatıdır (Processing Instruction). Bu işlenme talimatı XML ayıklayıcısına (Parser) bu dokümanının yapısal versiyonunun "1.0" ve kodlamasının "UTF-8" olduğunu söylemektedir.

XML Dosyasını Hazırlamak

Yukarıda verilmiş olan XML'i örneğimizde kullanabilmemiz için disk üzerinde bir dosya oluşturup bu XML içeriğini içine kopyalayalım. Bunu yapmak için MoreMotion XML Editörü (mmEd) kullanabiliriz.

Adımlar:

1.mmEd'i başlatın {KURULUM_DİZİNİ}\mmed.exe
2."Dosya | Yeni" Mönüsünü kullanın
3.Dosya tipini "XML" olarak belirleyin ve [Tamam] düğmesine basın
4.Örnekteki XML dokümanını Kes & Yapıştır ile editöre aktarın ve "C:\XML\data.xml" olarak kaydedin.

 
Şimdi <root><calisan><AD> patikasını üzerinden ulaşılabilen çalışanın adını sayfada gösterelim.

Adımlar:

1.Yeni bir sayfa oluşturun ve "Page1" olarak adlandırın
2.İçine 2 adet metin elemanı yerleştirin
3.Soldaki metin elemanına "Çalışan Adı:" değerini verin
4.Sağdaki metin elemanına ise "$vof(/root/calisan/AD)" değerini verin

 
FirstVof

$vof() Fonksiyonu

Bir MoreMotion Application Studio fonksiyonu olan $vof() derleme sırasında <xsl:value-of select="?"/> XSL ifadesine dönüştürülür.
Buna göre bizim örneğimizdeki $vof(/root/calisan/AD), <xsl:value-of select="/root/calisan/AD"/> ifadesine dönüştürülecektir.

Test

Kullanmış olduğumuz $vof() fonksiyonu sayfamızın dinamik olacağını ima etmektedir. Eğer sayfamızı derlersek, Application Studio "Page1.xsl" adlı bir dosya oluşturacaktır.

Bir sayfanın derlenmesi iki şekilde olur;

1.Sayfayı tarayıcı üzerinde önizlemek için F9 tuşuna bastığımızda
2.Projenin derlenmesi için CTRL + F9 tuşlarına bastığımızda

 
Bu bölümdeki örnekler için sadece önizleme yapacağız. Şimdi F9 tuşuna basın. Aşağıdaki gibi bir sonuç elde etmeniz gerekir.

TheOutput

$vof() fonksiyonu çalışmamış gibi gözüküyor. Ama bu doğru değil. Nedenini birazdan açıklayacağım.

Önce F9 tuşuna bastığınızda neler olduğuna bir bakalım.

1.Bir $vof() fonksiyonunu içerdiği için, MoreMotion Application Studio sayfanın dinamik olduğunu anladı ve bu nedenle sayfayı XSL olarak derleyip "Page1.xsl" dosyasını oluşturdu.
2.Daha sonra oluşturulmuş olan XSL dosyasının doğruluğunu test etmek için MSXML XSLT işlemcisini harekete geçirdi ve bu işlemciye "Page1.xsl" dosyasını ve boş bir XML dosyasını parametre olarak verdi.
3.MSXML işlemcisi dönüşüm işlemini yapıp "Page1.html" adlı HTML dökümanını ürettikten sonra, Application Studio varsayılan web tarayıcısını çağırıp bu dokümanın görüntülenmesini sağladı.

 
MSXML işlemcisine verilen boş XML dokümanı bir veri içermediği için, $vof(/root/calisan/AD) tanımı, daha doğrusu <xsl:value-of select="/root/calisan/AD"/> XSL talimatı boş bir değer döndürdü.

Önizleme için XML Dokümanı

Eğer önizleme sırasında Application Studio'nun boş bir XML dokümanı yerine bizim istediğimiz XML dokümanını kullanmasını istiyorsak XML dosyasının adını sayfanın "Önizleme için XML Dosyası" özelliğinde belirtmeliyiz.

Adımlar:

1.Sayfa üzerinde boş bir noktaya tıklayın. Bu sayfanın seçilmesini sağlayacaktır.
2.Özellik editörünü açmak için F4 tuşuna basın.
3.Editörün "Diğer" adlı sekmesine geçin
4."Önizleme için XML Dosyası" özelliğine "C:\XML\data.xml" değerini girin.

 

XMLFileforPreview

Tekrar F9 tuşuna basın. Şimdi aşağıdaki sonucu almış olmalısınız.

TheCorrectOutput

 

camera2

Nasıl yapıldığını izle

 

Örneklerimiz sırasında $vof() fonksiyonunun diğer kullanım şekillerini de göreceğiz. $vof() fonksiyonun amacı XSL talimatlarının eleman özelliklerin içinde kullanımını basitleştirmektir. Aslında aynı sonucu, içinde doğal XSL talimatlarını kullanabileceğimiz "$xsl()" fonksiyonunu kullanarak da alabilirdik.

xsl() Fonksiyonu

FirstXsl

Bir "$xsl()" fonksiyonu içinde kullanılan XSL talimatları, Application Studio tarafından hiçbir değişiklik yapılmadan olduğu gibi sonuç dokümanına aktarılırlar.

Bir XML dokümanındaki Kök İmi ve Verikaynağı İmleri

Bir dinamik sayfanın ihtiyaç duyduğu XML verileri MoreMotion AF (MoreMotion Uygulama Çatısı) tarafından üretilir. XML içindeki kök imin adı "root" olarak sabitlenmiştir. Bu nedenle $vof() ve $xsl() fonksiyonları içinde XML düğümlerine referanslar verilirken "root" imini belirtmeye gerek yoktur.

 

<?xml version="1.0" encoding="UTF-8"?>

<root> <-- Kök İm -->

 

<calisan> <-- Verikaynağı İmi -->

  <AD>Mehmet Çelik</AD>

</calisan>

 

<urunler> <-- Verikaynağı İmi -->

  <item>

    <AD>Masaüstü Bilgisayar</AD>

    <STOK>20</STOK>

    <FIYAT>799.99</FIYAT>

  </item>

  <item>

    <AD>Dizüstü Bilgisayar</AD>

    <STOK>10</STOK>

    <FIYAT>1199.99</FIYAT>

  </item>

</urunler>

 

</root>

Bunun anlamı eğer biz $vof() tanımı içinde, kök imi olan "root" kelimesini kullanmazsak, Application Studio bunu bizim yerimize ekleyecek ve örneğin $vof(/calisan/AD) tanımını <xsl:value-of select="/root/calisan/AD"/> olarak açacaktır.

Hiyerarşik olarak kök iminin bir altındaki imlere veri kaynağı imi denir. Örneğimizdeki "calisan" ve "urunler" birer veri kaynağı imleridir. Takip eden bölümlerde MoreMotion çatısının sayfalar için otomatik olarak XML verisi üretebilmesi için veri kaynaklarının nasıl tanımlandığını göreceğiz.