Makale Özeti

Merhaba. FRP Kitap Merkezi sitesinin yapımına serinin beşinci makalesiyle devam ediyoruz. Bu makalede; Expression Web'de XML ve XSL işlemlerini anlatacağım. Elbette XML'in derinliklerine dalmadan Expression Web ile ihtiyacımız kadarını kullanmayı öğreneceğiz.

Makale

Başlayalım. Her şeyden önce bu makalede XML kullanarak çekeceğim bilgiler mesajlar olacağı için mesajları hazırlıyoruz. Mesaj formatımız şu şekilde olacak.

FRP Kitap Merkezi Açıldı.
FRP/RPG Kitaplarının tanıtımının yapılacağı FRP Kitap Merkezi sitesi açılmıştır. Bu site ile belli türdeki kitapların (roman ya da oyun) tanıtımı yapılacaktır.
Admin
23/04/2007

Mesajlarımız başlık, içerik, mesajı giren ve tarih parçalarından oluşuyor.

XML eXtensible Markup Language (Genişletilebilir işaretleme Dili) 1996 yılında World Wide Web Consortium tarafından geliştirilmeye başlanmış, diğer dilleri açıklamak üzere geliştirilmiş bir dildir. HTML ile benzer gözükseler de birbirilerinden tamamıyla farklıdırlar. HTML verinin biçimini tanımlarken, XML verinin yapısını tanımlamaktadır. 

XSL (eXtensible Stylesheet Language) ise XML'in biçimlendirilmesini sağlar. XML ve XSL ilişkisini; HTML ve CSS gibi hayal edebilirsiniz. Ama bunun yanında XSL söz dizimi olarak XML'i kullandığı için başka bir işaretleme diline ihtiyaç duyulmaz.

XML dosyaları .xml; XSL dosyaları .xsl uzantısı kullanırlar ve geliştirme ortamı için herhangi bir text editörü yeterlidir. Örneğin Notepad.

XML söz dizimi altaki gibidir.

<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

Bizim örneğimiz için şunun gibi olacaktır.

<mesajlar>
   
    <mesaj>
        <baslik></baslik>
        <icerik></icerik>
        <mesajiGiren></mesajiGiren>
        <tarih></tarih>
    </mesaj>

</mesajlar>

Bunun yanında özellikler şeklinde gösterimde vardır.

<mesajlar>
   
    <mesaj baslik="" icerik="" mesajiGiren="" tarih=""></mesaj>

</mesajlar>

Bir XML sayfası oluşturarak başlayalım. File>New>Page



XML'i seçip OK ile XML sayfamızı oluşturuyoruz.



Aynı şekilde bir tane daha XML sayfası oluşturalım. Birini "mesajlar.xml" ve diğerini "mesajlar2.xml" olarak kaydedelim. Şimdi XML sayfaların içlerini dolduruyoruz.

mesajlar.xml
<?xml version="1.0" encoding="utf-8" ?>

<mesajlar>
   
    <mesaj>
        <baslik>FRP Kitap Merkezi Açıldı.</baslik>
        <icerik>FRP/RPG Kitaplarının tanıtımının yapılacağı FRP Kitap Merkezi sitesi açılmıştır. Bu site ile belli türdeki kitapların (roman ya da oyun) tanıtımı yapılacaktır.
        </icerik>
        <mesajiGiren>Admin</mesajiGiren>
        <tarih>23/04/2007</tarih>
    </mesaj>

    <mesaj>
        <baslik>Masa üstü FRP nerede oynayabiliriz?</baslik>
        <icerik>Masa üstü FRP oynamak için maalesef ki gerçek anlamda pek bir yer kalmamıştır. Bunun yanında Kadıköy ve Bakırköy'de FRP'de oynatan kafeler olduğu
        duyulmaktadır. Oysa FRP Türkiye’de 90'ların sonunda altın çağını yaşamıştır. Beşiktaş’ta Sihir, Saklı Kent Kadıköy'de Geçit, Kayıp, Ansolon kafeler malesef tarihin tozlu
        raflarındaki yerlerini almışlardır.
        </icerik>
        <mesajiGiren>Admin</mesajiGiren>
        <tarih>25/04/2007</tarih>
    </mesaj>

    <mesaj>
        <baslik>Arkadaşları FRP oynamaya eve toplasam annem kızar mı?</baslik>
        <icerik>EVET! Aslında ilk başta ne olduğunu anlayamayacağı için olur diyecektir, ama ilk oyunda canlandırmalarda bağırmalar çağırmalar olacağı için ikinci toplantıyı
        istemeyecektir. Ayrıca Solamnia şövalyeleri olarak Thakisis'in uşaklarından birini sorgularken, kapının açılıp içeriye bir annenin girmesi ve size kurabiye yaptım çocuklar demesi;
        biraz keyfinizi kaçırabilir.
        </icerik>
        <mesajiGiren>Admin</mesajiGiren>
        <tarih>01/05/2007</tarih>
    </mesaj>

    <mesaj>
        <baslik>FRP oynamayı nasıl öğrenebilirim?</baslik>
        <icerik>Bilen bir arkadaşınızı kolundan tutup bize FRP oynat diyerek.</icerik>
        <mesajiGiren>Admin</mesajiGiren>
        <tarih>03/05/2007</tarih>
    </mesaj>

</mesajlar>

mesajlar2.xml
<?xml version="1.0" encoding="utf-8" ?>

<mesajlar>
   
    <mesaj baslik="FRP Kitap Merkezi Açıldı." icerik="FRP/RPG Kitaplarının tanıtımının yapılacağı FRP Kitap Merkezi sitesi açılmıştır.
Bu site ile belli türdeki kitapların (roman ya da oyun) tanıtımı yapılacaktır." mesajiGiren="Admin" tarih="23/04/2007"></mesaj>

<mesaj baslik="Masa üstü FRP nerede oynayabiliriz?" icerik="Masa üstü FRP oynamak için maalesef ki gerçek anlamda pek bir yer kalmamıştır.
Bunun yanında Kadıköy ve Bakırköy'de FRP'de oynatan kafeler olduğu duyulmaktadır. Oysa FRP Türkiye’de 90'ların sonunda altın çağını yaşamıştır.
Beşiktaş’ta Sihir, Saklı Kent Kadıköy'de Geçit, Kayıp, Ansolon kafeler malesef tarihin tozlu raflarındaki yerlerini almışlardır."
mesajiGiren="Admin" tarih="25/04/2007"></mesaj>

<mesaj baslik="Arkadaşları FRP oynamaya eve toplasam annem kızar mı?" icerik="EVET! Aslında ilk başta ne olduğunu anlayamayacağı için olur
diyecektir, ama ilk oyunda canlandırmalarda bağırmalar çağırmalar olacağı için ikinci toplantıyı istemeyecektir.
Ayrıca Solamnia şövalyeleri olarak Thakisis'in uşaklarından birini sorgularken, kapının açılıp içeriye bir annenin girmesi ve
size kurabiye yaptım çocuklar demesi; biraz keyfinizi kaçırabilir." mesajiGiren="Admin" tarih="01/05/2007"></mesaj>

<mesaj baslik="FRP oynamayı nasıl öğrenebilirim?" icerik="Bilen bir arkadaşınızı kolundan tutup bize FRP oynat diyerek."
mesajiGiren="Admin" tarih="03/05/2007"></mesaj>

</mesajlar>

XML sayfalarımızı oluşturduğumuza göre, şimdi bir tane aspx sayfası oluşturarak devam edelim. Master page'i kullanarak yeni bir sayfa yaratıp messages.aspx olarak kaydediyoruz.(Master page'den yeni sayfa oluşturmak için bu serinin ilk makalesini kontrol edebilirsiniz.)

XML'i sayfaya eklemek için yapmanız gereken tek şey; Folder List'teki mesajlar.xml dosyasını content alanına sürükleyip bırakmak.



Mesajları XML'den çekmiş olduk.



Görünüşü düzenleyelim, tablonun yanındaki küçük oka basarak "Common Data View Tasks" ı açıp, Edit Columns'a tıklıyoruz. Açılan pencerede Displayed Columns'daki "mesaj"ı seçip Remove ile kaldırıyoruz.



Bundan sonra sayfamızı kaydetmek için bastığımızda karşımıza gelen ekranla Expression Web'in bizim için XSL sayfasını hazırlamış olduğunu görüyoruz. OK diyerek XSL'i kaydediyoruz.



Tekrar "Common Data View Tasks" da Change Layout'u tıklayarak açılan listeden kendimize bir görünüş seçiyoruz.



Mesaj sayfasının görünüşü alttaki şekle geldi.



Mesajların sonundaki admin ve tarihleri sadece ilk seçenekte, kesip başlığın yanına koyuyoruz. Diğerleri otomatik olarak bu değişikliği uyguluyorlar.



Tekrar "Common Data View Tasks" da Data View Properties'e basıyoruz. General tabında eğer sayfada kullanıcı aradığını bulamazsa göreceği mesajı yazıyoruz.



XSLT Processing tabında ASP.NET XML control'ü seçerek. XML'in server tarafında çalışmasını sağlıyoruz



Her şey yolunda ise farklı bir yolla XML'imizi çalıştıralım. Master page'den bir sayfa daha oluşturuyoruz. messages_deneme.aspx olarak kaydediyoruz. Burada ASP.NET kontrollerini XML ile deneyeceğiz. İlk önce content alanına Toolbox>ASP.NET Controls>Data altından XmlDataSource'u sürükleyip bırakıyoruz.



"Common XmlDataSource Tasks"da Configure Data Source'u tıklıyoruz.



Gelen ekranda Data file olalarak "mesajlar.xml"i seçip OK diyoruz.



Arkasından kontrol olarak FormView'u content alanına sürükleyip bırakıyoruz. "Common FormView Tasks" da Choose Data Source'da XmlDataSource1'i seçiyoruz.



Edit template'e tıkladığımızda ise FormView'a veri gelmediğini görüyoruz.



FormView'u silip, "Common XmlDataSource Tasks" da Configure Data Source tekrar tıklayıp bu sefer söz dizimi farklı olan "mesajlar2.xml"i seçiyoruz.



Bu sefer edit template'e girdiğimizde. Daha önce alışık olduğumuz gibi verilerin geldiğini görüyoruz. (Bu konuda daha detaylı bilgiyi bu serinin üçüncü makalesinden alabilirsiniz.)



Item Template'de düzenlemelerimizi yapabiliyoruz.



Bu denemeyle ASP.NET Kontrollerinin sadece özellikler gösterimli söz dizimi ile çalıştığını öğreniyoruz.

<mesajlar>
   
    <mesaj baslik="" icerik="" mesajiGiren="" tarih=""></mesaj>

</mesajlar>

Bu makalemde Expression Web'de XML ve XSL'e değindim.

Çalışmaya ait dosyaları buradan indirebilirsiniz.

İyi çalışmalar.

Teşekkürler
Örneği buradan indirebilirsiniz.