| | Yardım ve Nasıl Yapılır Eğitim Şablonlar Destek ve Görüş Teknik Kaynaklar Ek Kaynaklar | Uyarı: Bu sayfayı desteklenmeyen bir Web tarayıcısıyla görüntülüyorsunuz. Bu Web sayfası, Microsoft Internet Explorer 6.0 veya sonraki sürümüyle, Firefox 1.5 veya Netscape Navigator 8.0 veya sonraki sürümüyle en iyi şekilde çalışır. Desteklenen tarayıcılar hakkında daha fazla bilgi edinin.
Access 2002'de XML dosyalarını XSLT ile dönüştürme
Genişletilebilir Biçimlendirme Dili (XML)'ni uygulamalar arasında veri değişim standardı olarak kullanmanın en önemli avantajlarından biri, XML veri belgelerini Köprü Biçimlendirme Dili (HTML) dosyaları gibi diğer biçimlere ve yapılara dönüştürme kolaylığıdır. Bu başkalaşımları tanımlamak için kullanılan "taşıt", XML tabanlı bir dil olan Genişletilebilir Stil Sayfası Dili: Dönüştürmeler (XSLT)'dir.
XSLT, başka bir XML tabanlı dilin alt kümesidir: Genişletilebilir Stil Sayfası Dili (XSL). XSL, XML belgelerinin biçimlerini tanımlamak için kullanılır, XSLT ise verilerin yapısını seçmek ve işlemek için şablonlar ve komutlar içerir.
XSLT'nin nasıl çalıştığını anlamak için, Microsoft Internet Explorer gibi tarayıcıların XML verilerini nasıl işlediğine bakmalıyız. Bir XML veri dosyası tarayıcıda açıldığında, tarayıcı XML verisini ağaç benzeri bir yapıya ayrıştırmak için yerleşik bir ayrıştırıcı kullanır. XML veri dosyasında bir XSLT belgesine yapılan bir başvuru bulunursa, tarayıcı stil sayfası dosyasını açar ve girdi ağacına uygular. Tarayıcı, XSLT dosyasındaki desenlerle XML dosyasındaki belli öğeleri (bazen düğüm olarak da adlandırılırlar) eşleştirmek için kaynak dosyayı tarar. Bir eşleşme olduğunda, tarayıcı eşleşen şablonu elemanlara uygular ve şablondaki kurallara göre verileri çıkarır. Şablon, veri işleme komutları veya biçimlendirme için HTML etiketlerini, veya ikisini birden içerebilir. Sonuç, şablonlar ve dosyanın biçimini değiştiren HMTL etiketleri tarafından gerçekleştirilen değişiklikleri yansıtan bir çıkış ağacıdır. Bundan sonra tarayıcı çıkış ağacını ayrıştırır ve HTML yönergelerine dayanarak görüntüler. Yani en alt düzeyde, XSLT bir ağaç yapısını başka bir ağaç yapısına dönüştürmekte kullanılır.
Genel dönüştürme işlemi
Varolan bir XML veri dosyasını başka bir biçime dönüştürme işlemi şöyle özetlenebilir:
- Öncelikle Microsoft Access dışında, Notepad gibi bir metin düzenleyicisi kullanarak bir XSLT dosyası (.xsl dosya uzantısına sahip) oluşturun. Verilerinizi dönüştürmek ve yeniden yapılandırmak için gerekli işlem yönergelerini bu dosyaya ekleyin. Çıkış belgenizde yer almasını istediğiniz her eleman veya eleman grubu (dalı) için bir işlem yönergesi gerekir. XSLT dosyaları oluşturma konusunda daha fazla bilgi, Microsoft Developers Network (MSDN) Web sitesinde bulunabilir.
- XSLT dosyasına işaret eden XML veri dosyasına (.xml dosyası) bir işlem etiketi ekleyin.
- Sonuç çıkış dosyasını (bir .htm dosyası) üretmek üzere, XSLT stil sayfasını XML veri dosyasına uygulamak için bir XSLT işlemcisi kullanın.
Microsoft Developer Network (MSDN) Web sitesinden bedava olarak yüklenebilecek Microsoft MSXML3 işlemcisi de dahil olmak üzere, pek çok kullanılabilir XSLT işlemcisi vardır. MSXML3 işlemcisi Microsoft Office XP ve Microsoft Windows XP ile birlikte yüklenebilir. Bu yazıda yer alan örnekleri çalıştırmak için, sisteminizde MSXML3 işlemcisinin yüklü olması gerekir.
Bir metin işlemcisine yönergeler girerek elle bir XSLT dosyası oluşturmanın yanısıra, Access XML Ver iletişim kutusu, verilerinizin biçimini bir XSL dosyasına kaydetme seçenekleri de sunar. Access tarafından üretilen XSL (.xsl) dosyası, kendi XSLT dosyasını oluşturmak için bir başlangıç noktası olarak kullanılabilir.
XSLT ve XML dosyalarının yapısı
Aşağıda örnekleri anlamanız için, XML'in verileri nasıl tanımladığını kısaca gözden geçireceğiz. HTML gibi, XML ve XML tabanlı dosyalar da (XSL ve XSLT gibi) veriler ve veri yapısı hakkında bilgi veren öğe etiketleri ve öznitelik atamaları kullanır. Tipik bir XML öğesi, bir başlangıç etiketi, öğe verileri ve sonladırma etiketi içerir. Öznitelikler, genellikle öğenin başlangıç etiketinde ad-değer çifti olarak bulunur ve öğe hakkında ek bilgiler sağlarlar. Bir öğe etiketi ve özniteliğinin genel şekli şöyledir:
<BAŞLANGIÇ-ETİKETİ öznitelik="değer">öğe verileri<BİTİŞ ETİKETİ>
Bütün XML ve XML tabanlı dosyalar benzer bir yapıya sahiptir. Unix ve DOS işletim sistemlerindekine benzer bir şekilde, bir XML veri dosyası, bir kök düğümle başlayan ve üst ve alt öğelerle aşağılara doğru inen (kökün en üstte, dallar ve yaprakların aşağıda olduğu bir ters ağaç yapısı) hiyerarşik bir yapıya sahiptir. Bir XML veri dosyasının kökü, belgenin en dıştaki düğümü olarak ele alınır (yani bütün belgeyi içerir).
XML veri dosyasında kök düğümden sonra gelen öğe, Belge öğesi olarak adlandırılan en dıştaki öğe etiketidir. Bu öğe, belgeyi oluşturan tüm diğer öğeleri, öznitelikleri ve metni (bu öğenin altları olarak anılan) içerir.
XML'i bir tarayıcıda oluşturma
XSLT (.xsl) dosyası nasıl kullanılır? Giriş XML veri dosyası (.xml), genellikle XSLT dosyasına başvuran "<xsl:stylesheet" ile başlayan etiket içerir. XML veri dosyasını Microsoft Internet Explorer gibi bir Web tarayıcıda açtığınızda, tarayıcı giriş verilerini bir ağaç yapısına ayrıştırır ve bir XML işlemcisini (MSXML3 işlemcisi gibi) çağırır. İşlemci, XSLT dosyasını bu veri ağacına göre işleyerek çıktı veri ağacını üretir. Bu çıkış yapısı daha sonra tarayıcıda görüntülenecek bir .htm dosyası üretecek şekilde ayrıştırılır. XML veri dosyasında hiçbir XSLT (veya başka bir stil sayfası) başvurusu yoksa, veri işlenmemiş XML verileri olarak veya kullandığınız tarayıcıya göre değişen bir varsayılan yapıda görüntülenir. İlerde göreceğiniz gibi, Internet Explorer, XML dosyalarını genişletilebilir ağaç benzeri bir yapıda görüntüleyen bir varsayılan XSL stil sayfasına sahiptir.
XSLT dosyası, girdi XML veri ağacını çapraz olarak geçmek için gezinti yönergeleri içeren bir dizi şablondan oluşur. İşlemci, XSLT dosyasında bir şablon yönergesiyle karşılaştığında, girdi XML veri ağacını şablondakiyle eşleşen bir "düğüm" (bir eleman) bulana kadar tarar. Bu eleman veya elemanlar dizisi (dallar), işlenir ve şablonda bulunan HTML biçimlendirmeleriyle birlikte sonuç ağacına yazılır. Koşullu işlem komutları (if-then ve sıralama yapıları gibi) da, gerek duyulduğunda çıktı verisinin yapısını değiştirmek için şablona dahil edilebilirler. Sonuç belgesi, tarayıcı tarafından okunan bir .htm dosyasıdır.
XSLT stil sayfası örneği
Aşağıda, bu yazıda daha sonra üzerinde çalışacağımız bir XSLT dosyası görülüyor:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">
<xsl:template match="/">
<HTML> <HEAD> <TITLE>Employees</TITLE> </HEAD> <BODY> <h4>Çalışan adlarının sıralı listesi</h4>
<xsl:for-each select="//Employees"> <xsl:sort select="LastName" order="ascending"/> <xsl:value-of select="LastName"/>, <xsl:value-of select="FirstName"/> <br/> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
Bir stil sayfasını tanımlayan öğe başlangıç etiketini içeren standart XSLT dosyası başlığı. xmlns:xsl bölümü, ad alanı önekini belirtir. Ad alanları hakkında daha fazla bilgi almak için, Microsoft Developers Network (MSDN) Web sitesine bakın.
Kaynak belgesinin belirli bir bölümüyle karşılaşıldığında tetiklenen XSL şablon kuralı.
Biçimlendirme bilgilerini tanımlayan HTML etiketleri.
XSL koşullu programlama yönerge ve işlem gövdesi.
Bu stil sayfası, bir çalışan kayıt grubunu içeren XML dosyasını işleme ve bu kayıtlardan iki tanesini LastName, FirstName şeklinde çıkış olarak vermek için tasarlanmıştır. XML veri dosyası bu yazının daha sonraki bölümlerinde görülebilir. Bu dosyayı daha sonra oluşturacağız. Şimdi stil sayfasına biraz daha ayrıntılı olarak bakalım.
Karşılaşılan ilk XSL şablonu şudur: <xsl:template match="/">. Pek çok şablonun standart şeklini gösteren bu şablon yönergesi, işlemciye giriş XML veri dosyasında kök düğümle ("/") eşleşen düğümü bulmasını ("düğüm" ve "öğe" birbirinin yerine kullanılabilen adlardır) ve bu düğümün bütün alt öğelerini işlemeye başlamasını söyler. Esasında, bu şablon yönergesi işlemciye giriş belgesini işlemeye başlamasını söyler. Bu şablon bütün XSLT dosyalarında yer almayabilir. Çoğu durumda, XSLT dosyasında bir şablon eksikse ve işlemci nasıl ilerleyeceğini bilmiyorsa, işlemciye "geçerli düğümün tüm alt düğümlerini nasıl işleyeceğini" söyleyen bir varsayılan şablon çağrılır.
"/" aslında bir XPath deyimidir. XPath, XSLT ile birlikte bir XML veri yapısının elemanlarını ve özniteliklerini gezinmek için kullanılır. XPath bu yazının konusunun dışında, ancak XPath hakkında ek bilgiler Microsoft Developers Network (MSDN) Web sitesinde bulunabilir.
Bazı HTML biçimlendirme etiketlerini çıkış belgesine ekledikten sonra, bir sonraki XSLT yönergesi olan <xsl:for-each select="//Employees"> işlemciye ("//" ile gösterilen) geçerli konuma göre (bu durumda kök düğüm), Employees öğe etiketinin alt öğelerine gitmesini ve bu etiketin alt öğelerini denemeye başlamasını söyler. <xsl:sort select="LastName" order="ascending"/> yönergesi LastName öğesini artan sırada sıralar. <xsl:value-of select="LastName"/>, and <xsl:value-of select="FirstName"/> yönergeleri LastName ve FirstName öğelerini sırayla seçer ve bu iki öğenin değerlerini çıkış olarak verir. Diğer etiketler biçimlendirme bilgileri sağlarlar veya bütün açık etiketleri kapatma etiketleridirler. XML, her açılan etiket için bir kapatma etiketi olması konusunda HTML'den daha katıdır. XML'de birbirinin üstüne gelen içiçe etiketlere izin verilmez.
İşlemi özetlersek, XSLT, XML veri dosyasında belli bir eleman veya eleman dallarıyla karşılaşıldığında tetiklenen şablonlar ve yönergeleri kullanır. Şablon yönergeleri, veri dosyası içinde elemanları konumlandırır ve işlemin çıktısını belirler. Şablon gövdesinin çoğu, HTML etiketleri ve çıktı metninden oluşur. Yönerge komutları işlemciye verinin hangi parçasının çıktı haline geleceğini söyler. Belli elemanları veya eleman dallarını işleyen yönergeler, girdi XML veri dosyasındaki gerçek sıralarına bakılmaksızın çıktı verisi sırasında yerleştirilirler. Böylece verinin gereksinimlerinizi karşılayacak şekilde yeniden yapılandırılması sağlanır. Koşullu programlama yönergeleri, verilere filtre uygulamanıza ve sıralamanıza olanak verir. Bu tekniklerin birleşimi, XML verinizi sanal olarak her biçime dönüştürmeniz için güçlü araçlar sunar.
XML veri dosyasını dönüştürme
Dönüştürmenin nasıl yapıldığını görmek için, bir Microsoft Access veritabanından gelen verileri içeren bir XML veri dosyasını, bir Web tarayıcısında görüntülemek üzere biçimlendirilmiş .htm dosyasına dönüştürme örneğini izleyelim. Bu örnekte şimdiye kadar ele alınan tekniklerden bazıları vurgulanıyor.
Employees.xml dosyasını oluşturacak ve Microsoft Internet Explorer'ı belirli bir stil sayfası kullanmadan varsayılan .xsl stil sayfası ile çalışırken göreceğiz.
- Northwind örnek veritabanını açın. Northwind veritabanı, genellikle Microsoft Office ile yüklenir ve şu konumda bulunabilir: C:\Program Files\Microsoft Office\Office10\Samples.
- Dosya menüsünde Veri Ver'e gidipFarklı kaydetme türü açılan listesinde XML Belgeleri'ni seçerek, Employees tablosunu bir XML belgesi olarak verin. Varsayılan dosya adı olan "Employees.xml"yi koruyun. XML olarak veri verme hakkında daha fazla bilgi almak için Access Yardımı'na gidin.
- Employees.xml dosyasını bulun ve açmak için çift tıklatın.
- Varsayılan tarayınıcınızın Internet Explorer olduğunu düşünersek, dosya genişletilebilir öğe dallarıyla birlikte bir ağaç yapısı olarak görüntülenecektir. Bu ağaç yapısı, Internet Explorer tarafından verileri dönüştürmek için varsayılan XSLT stil sayfası kullanılarak oluşturulur.
Internet Explorer uygulamasının varsayılan XML çıkışı:
<?xml version="1.0" encoding="UTF-8" ?>
- <dataroot>
- <Employees>
<EmployeeID>1</EmployeeID>
<LastName>Smith</LastName>
<FirstName>Nancy</FirstName>
<Title>Sales Representative</Title>
<TitleOfCourtesy>Ms.</TitleOfCourtesy>
<BirthDate>1968-12-08T00:00:00</BirthDate>
<HireDate>1992-05-01T00:00:00</HireDate>
<Address>507 - 20th Ave. E. Apt. 2A</Address>
<City>Seattle</City>
<Region>WA</Region>
<PostalCode>98122</PostalCode>
<Country>USA</Country>
<HomePhone>(206) 555-9857</HomePhone> ....
Şimdi daha önce gördüğümüz XSLT stil sayfasını Employees.xml veri dosyasına uygulayalım. Bu yazıdaki sonuçları elde etmek için bilgisayarınıza MSXML3 işlemcisinin en son sürümünün yüklenmiş olması gerektiğini unutmayın. Internet Explorer 4 ve Internet Explorer 5, şu anda eskimiş olan XSL belirtimlerine dayanan eski bir MSXML sürümüyle gelir. MSXML3, varolan işlemcinin üstüne yüklenmesi için, (MSXML3 Readme dosyasında anlatıldığı gibi) Değiştirme modunda yüklenmiş olmalıdır.
XSLT dosyanızı oluşturma ve deneme:
- Microsoft Notepad gibi bir metin düzenleyicisini açın.
- Aşağıdaki XSLT dosyasını boş bir belgeye yapıştırın. Bu dosyanın daha önce tanımladığımız dosyanın grafik çağrılarının ayrılmış hali olduğunu not edin.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Employees</TITLE> </HEAD> <BODY> <h4>Çalışanların sıralı listesi</h4> <xsl:for-each select="//Employees"> <xsl:sort select="LastName" order="ascending"/> <xsl:value-of select="LastName"/>, <xsl:value-of select="FirstName"/> <br/> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
- Dosyayı, Employees.xml dosyasıyla aynı konuma kaydedin. Dosyayı "SortNames.xsl" olarak adlandırın. .xsl uzantısını unutmayın.
- Notepad gibi bir metin düzenleyicisiyle Employees.xml veri dosyasını açın.
- İmleci belgenin ilk satırının sonuna yerleştirin ve ENTER tuşuna basın.
- Oluşturduğunuz boş satıra aşağıdaki metin satırını kopyalayıp yapıştırın:
<?xml-stylesheet type="text/xsl" href="SortNames.xsl"?>
Employees.xml dosyasını açtığınızda, bu satır tarayıcıya SortNames.xsl stil sayfasını uygulamasını söyler.
- Employee XML veri dosyasına yaptığınız değişiklikleri kaydedin.
Şimdi Employee.xml veri dosyasını çift tıklatarak açın. Tarayıcınızda açılmalı ve soyadlarına göre sıralanmış çalışanlar listesini görüntülemelidir.
SortNames.xsl dosyasının çıktısı:
Çalışanların sıralı listesi
Buchanan, Steven Callahan, Laura Davolio, Nancy Dodsworth, Anne Fuller, Andrew King, Robert Leverling, Janet Peacock, Margaret Suyama, Michael
Şimdi de yine Employees.xml dosyasıyla kullanılabilecek başka bir XSLT stil sayfasına bakalım. Bu örnek çalışan tablosunu döndürmektedir.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="dataroot">
<html><body>
<h1>A list of employees</h1>
<table width="640">
<xsl:apply-templates/>
</table>
</body></html>
</xsl:template>
<xsl:template match="Employees">
<tr>
<td><xsl:number/></td>
<td><xsl:value-of select="LastName"/></td>
<td><xsl:value-of select="FirstName"/></td>
<td><i><xsl:value-of select="Title"/></i></td>
</tr>
</xsl:template>
</xsl:stylesheet>
Bu örnekte yönergesi işlemciye şablon kuralının izlediği standart bir XSLT başlığı görüyoruz. Kök düğümü şablonunu eklemediğimize dikkat edin. Böylece varsayılan işlem, geçerli düğümün tüm alt düğümlerinin çağrılması olarak gerçekleşecek. Belgenin başında olduğumuz için, kök düğümü geçerli düğümdür.
<xsl:template match="dataroot"> yönergesi işlemciye "veri kökü" elemanını bulmasını ve tüm alt elemanlarını işlemeye başlamasını söyler. Böylece tablo tanımını da içeren bazı HTML etiketleri sonuç ağacına çıkarlar. Ardından <xsl:apply-templates/> yönergesini görüyoruz. Bu sık kullanılan yönerge, "girişte geçerli düğümün ("veri kökü") tüm alt düğümlerini seç, her biri için eşleşen şablon kuralını bul ve işle" der. Bu durumda işlemci "veri kökü" elemanının alt elemanına karşılık gelen <xsl:template match="Employees"> kuralını bulur ve işler. <td><xsl:number/></td> <td><xsl:number/></td> yönergesi tablomuzdaki her satır için sıralı bir numara verir. <td><xsl:value-of select="LastName"/></td> <xsl:apply-templates/> <xsl:apply-templates/> Şimdi bu stil sayfasını Employees.xml dosyasında, daha önceki örnekteki yönergeleri kullanarak işlemelisiniz. Employees.xml dosyasındaki başvuruyu bu stil sayfasını işaret edecek hale getirmeyi unutmayın.
Employees.xml dosyası ve bu stil sayfasının çıkışı şöyledir:
Employees.xml dosyasının ve bu stil sayfasının çıkışı şöyledir:
A list of employees
| 1 |
Davolio |
Nancy |
Sales Representative |
| 2 |
Fuller |
Andrew |
Vice President, Sales |
| 3 |
Leverling |
Janet |
Sales Representative |
| 4 |
Peacock |
Margaret |
Sales Representative |
| 5 |
Buchanan |
Steven |
Sales Manager |
| 6 |
Suyama |
Michael |
Sales Representative |
| 7 |
King |
Robert |
Sales Representative |
| 8 |
Callahan |
Laura |
Inside Sales Coordinator |
| 9 |
Dodsworth |
Anne |
Sales Representative |
Sonuç
Bu yazıda XSLT ve XSL dillerine giriş yaptık ve dosya yapılarını ve bazı işlem yönergelerini tanıttık. XML veri dosyalarını bir biçimden diğerine dönüştürmekte nasıl kullanıldıklarını tartıştık. Ayrıca Internet Explorer'da kullanılan varsayılan XSLT stil sayfasının ve iki tane özel XSLT dosyamızın çıkışlarına baktık. Bu kavramların, kendi XSLT ve XSL dosyalarınızı oluşturmak ve onları kendi uygulamalarınızda kullanmak konusunda bir başlangıç noktası sunduklarını ümit ederiz. Bu yazıda geçen herhangi bir kavram konusunda daha fazla bilgi almak için, Microsoft Developers Network (MSDN) Web sitesine başvurun.
Microsoft Access'te programlama ile ilgili daha fazla bilgi için, Microsoft Geliştirici Ağı'ndaki (MSDN) Office Geliştirici Merkezi'ni (Developer Center) ziyaret edin.
|