XML (Extensible Mark-up Language)

XML’e GiriÅŸ

XML (Extensible Markup Language), W3C (Worl Wide Web Consortium) tarafından geliştirilen bir kaynak hazırlama standartıdır.
XML aslında SGML (Standart Generalized Markup Language) adlı daha geniÅŸ ve kapsamlı bir standardın alt kümesi sayılabilir. 1980’den beri var olan SGML çok kapsamlı ve karmaşık yapısıyla bazı zorluklar içeriyordu. XML bu karmaÅŸayı mümkün olduÄŸunca azaltmak ve uygulama kolaylığı saÄŸlamak amacıyla geliÅŸtirildi.
XML bir dil olmaktan çok bir dil tanımlama aracıdır. Bu standartı kullanarak kendi dilinizi üretebilir, kendi kurallarınızı koyabilirsiniz.
HTML ile XML aynı ÅŸey deÄŸildir. HTML’in önceden belirlenmiÅŸ kuralları vardır ve HTML ile yazılan bir döküman bu kurallara uymak zorundadır. Mesela <BODY> ve <HEAD> gibi imler HTML’de önceden tanımlıdırlar; bunları deÄŸiÅŸtiremezsiniz. Fakat XML’de imleri siz tanımlarsınız. Bu sayede <BuyukBaslik>, <KucukBaslik>gibi imler tanımlamanız mümkün olabilir.
XML dokümanlarında elemanlar aşağıdaki gibi yazılırlar:

<Paragraf>
Bu ilk paragraf
</Paragraf>

Yukarıdaki eleman iki im’in arasına yazılmıştır. ˙Imler <ve > sembolleri arasında yazılırlar. Bir im’in etki alanını bitirmek, bir baÅŸka deyiÅŸle bir im’i kapatmak için / sembolü kullanılır.
Elemanlara bazı özellikler atanabilir.

<Para kur="dolar">34.25</Para>

Bu örnekte <Para>adlı imin kuradlı bir özelliÄŸi olduÄŸu anlaşılıyor. XML’de boÅŸ elemanlar tanımlanabilir. Buna örnek vermek gerekirse;

<Resim kaynak="/home/user/resim.gif"></Resim>

veya

<Resim kaynak="/home/user/resim.gif"/>

XML’in bazı kurallarından bahsedelim:

· Elemanların özellikleri her zaman tırnak iÅŸaretleri içerisinde tanımlanmak zorundadır.

        <Yazi tip="italik">Maslak</Yazi>

· BoÅŸ elemanlar hariç bütün elemanlar açma ve kapama imleri arasına yazılmak zorundadır. Bu kurala göre aÅŸağıdaki satırlar XML kurallarına uygun deÄŸildir.

·         <Paragraf>Ilk paragraf
·         <Paragraf>Ikinci Paragraf
·         DoÄŸrusu şöyle olmak zorundaydı
·         <Paragraf>Ilk paragraf</Paragraf>
·         <Paragraf>Ikinci Paragraf</Paragraf>

· Içiçe geçen imler doÄŸru yapılmalıdır. Bu kurala göre aÅŸağıdaki tanımlama yanlıştır.

·         <Kalin><italik>Bu satır yanlış</Kalin></italik>

Doğrusu şöyle olmalıydı

<Kalin><italik>Bu satır do¸gru</italik></Kalin>

Yukarıdaki 3 kural XML kullanıcılarının en yaygın olarak çiğnedikleri kurallardır.

Bunun kaynağı ise HTML kullanma alışkanlığıdır. Tarayıcı (Browser) üreticilerinin yazım hatalarını mümkün olduğunca tolere edebilme kaygısı yüzünden kurallara uygun olmayan HTML dökümanları sanaldoku üzerinde sorunsuz yayımlanabilmektedir. Ancak bu kaygı, beraberinde karmaşık yazılımları gerektirdiği için tarayıcıların dökümanları işleme hızlarında dikkate değer bir düşüş yaşanmaktadır.

Bir XML dökümanı sözkonusu olduğunda 3 önemli dosya gündeme gelir.

· XML kaynak dökümanı

· stylesheet’ denilen, dökümanın herhangi bir yayım aracında nasıl gör üneceÄŸini belirleyen dosya .

· XML kaynağının kurallarının yazıldığı DTD adlı dosya. DTD (Document Type Definition) dosyası XML dosyası içinde kullandığınız imlerin tanımlarının yapıldığı dosyadır .

örnek

<?xml version="1.0" standalone="no"?>
<!DOCTYPE Dunya:Turkiye SYSTEM "sample.dtd">
<!-- XML dokumani burada basliyor -->
<Dunya:Turkiye xmlns:Dunya='http://www.Dunya.com/'>
<Dunya:Insanlar>Duygu Caglar</Dunya:Insanlar>
<Dunya:Yas>21</Dunya:Yas>
</Dunya:Turkiye>

Ilk satırda <?xml ve ?> arasında kalan kısım temel tanımların yapıldığı yerdir. versionXML dökümanının versiyonunu belirtir. standaloneseçeneÄŸi XML dökümanının dışarıdan verilecek bir DTD dosyasına ihtiyacının olup olmadığını belirler. standalone=”no” buyruÄŸu dökümanın kendisini tanımlayabilmesi için bir DTD’ye ihtiyac duyduÄŸunu söyler. Bu örnekte ihtiyaç duyulan dosyanın sample.dtdadlı dosya olduÄŸu ayrıca belirtiliyor. Aslında DTD ve stylesheet dosyalarını XML dökümanının içine gömmek mümkündür. Ama genelde tercih edilen bir yöntem deÄŸildir .

<!DOCTYPE Dunya:Turkiye SYSTEM "sample.dtd">

satırı dökümanın kök elemanını ve kök elemanı içerisinde yazılacak bütüm imlerin tanımlarının yer aldığı DTD dosyasını belirler. Bizim örneğimizde dökümanın kök elemanı Dunya:Turkiye adlı elemandır. SYSTEM anahtar sözc üğü ise DTD dosyasının ayrı bir yerel dosya içerisinde bulunduğunu belirtir.

<!-- ve -->sembolleri içerisinde yer alan bütün cümleler yorum olarak algılanır ve XML yorumlayıcıları tarafından ihmal edilir. Son olarak Dunya:Turkiye,Dunya:Insanlarve Dunya:Yas imlerini kullandık. C¸ oÄŸu XML imi gibi bunlar da kendilerini tanımlayan DTD'ler olmadan anlamsızlardır. Bu imler görüldüğü gibi iki parçadan oluÅŸmaktadır.

Parçalar arasında : sembolü kullanılmış. Bunun sebebi im adlarını seçerken alanadı kullanmamızdır: sembolünün sol tarafı alanadı'nı, sağ tarafı ise imin kendisini ifade eder

Alanadı kullanımı XML dünyasında yeni kullanılmaya başlamıştır. Kabaca im tanımlarının karışmaması için tasarlanmıştır. Örnek vermek gerekirse; Dunya:Turkiye yerine Turkiye imini kullansaydık ve başka bir yayıncı da Turkiye imini kullansaydı, iki üreticinin ürettikleri dökümanları ortak olarak 6 kullanmaları mümkün olamazdı. Alanadları xmlnsanahtar sözcüğü ile belirtilir.

EÅŸsizlik saÄŸlası amacıyla alanadları olarak genellikle sanaldoku yörelerinin adları kullanılır. Bizim verdiÄŸimiz örnekte http://www.Dunya.com alanadı olarak kullanılmış. Alanadı olarak sanaldoku sayfalarını kullanmanın bir diÄŸer faydası ise kullanılan XML dökümanı ile ilgili dosyaların herkes tarafından bilinen bir yere konulabilmesine imkan tanımasıdır. Buraya XML’i tanımlayan DTD dosyaları konulabileceÄŸi gibi, bazı stylesheet dosyalarıda konulabilir. Son olarak eklenmesi gereken bir nokta ise ÅŸudur; ilerleyen zamanlarda tarayıcıların XML programlarını istenilen ölçüde tanımaları durumunda ilgili dökümanlar on-line olarak iÅŸlenebilecektir. Tarayıcı bir XML dökümanı ile karşılaÅŸtığında onu tanımlayan DTD’yi ilgili yerden çekecek ve varsa stylesheet dosyasını kullanarak görüntüleyecektir.

DTD (Document TypeDefinition)

Bu bölümde DTD kavramını kabaca bir örnek üzerinden anlatmaya çalışaca ğız. Örnek DTD dosyası aşağıda verilmiştir.

<!-- Örnek bir DTD dosyası -->
<!ELEMENT Dunya:Turkiye (Dunya:Insanlar, Dunya:Yas)>
<!ELEMENT Dunya:Insanlar (#PCDATA)>
<!ELEMENT Dunya:Yas (#PCDATA)>

Bu DTD dosyasının amacı bir önceki bölümde yazdığımız XML kaynağını tanımlamaktır. <!ELEMENT buyruğu XML dökümanı içerisinde kullanılan büt ün imleri tanımlamak için kullanılır. Dunya:Insanlar ve Dunya:Yas imleri Dunya:Turkiye iminin içerisinde ve belirlenen sıra ile kullanılmak zorundadır .

Bu iki im’e Dunya:Turkiye iminin çocukları denir.

Dunya:Insanlar ve Dunya:Yas imlerinin tanımlarında ise #PCDATA sözcüğü kullanılmıştır (PCDATA=’Parsed Character Data’). Bunun anlamı Dunya:Insanlar ve Dunya:Yas imleri arasında < ve & hariç bütün karakter veya karakter kümesini kullanabilirsiniz. Mesela <Dunya:Insanlar>Dunya Turkiye</Dunya:Insanlar> satırı doÄŸru bir XML satırıdır .

XSL (Extensible Stylesheet Language)

Yazdığımız DTD ile XML dökümanını tanımlamış olduk. Bu çerçeve içinde elimizdeki dökümana doÄŸru tanımlanmıştır (valid) diyebiliriz. Ancak dök ümanın görüntüleniÅŸi hakkında hiçbirÅŸey yapmadık. Bu iÅŸ için stylesheet kullanmamız gerekecek. Stylesheet olarak ÅŸu an yaygın olarak kullanılan CSS (Cascading Style Sheet) aracını kullanabilirsiniz. CSS daha çok HTML dökümanlarını biçimlendirmek için kullanılmakla birlikte XML’i de desteklemektedir.

Biçimlendirme için kullanılabilecek ikinci bir araç ise XSL (Extensible StyleSheet Language) adı verilen ve kendinize özgü stylesheet kodları oluşturabilmenize olanak sağlayan dildir. XML kullanmamızın sebebi yanlızca sanaldoku olmadığı için biz XSL kullanmayı tercih edeceğiz. Bu bölümde XSL kavramını kabaca bir örnek üzerinden anlatmaya çalışacağız. Örnek XSL dosyası aşağıda verilmiştir.

<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns:fo="http://www.w3.org/TR/WD-xsl/FO">
<xsl:template match="/">
<fo:block font-size="18pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
</xsl:stylesheet>

Bu örnekte dikkati çeken ilk şey bir XSL dosyasının aynı zamanda düzgün tanımlı bir XML dökümanı olmasıdır. XML dökümanını biçimlendirecek buyruklar <xsl:stylesheet> ve </xsl:stylesheet> imleri arasında yer alırlar. Genel olarak bakıldığında XML dökümanı içerisinde yer alan imlerin formatları <xsl:template> ve </xsl:template> imleri arasında tanımlanır.

<xsl:template match="/">

Yukarıdaki satır, / ile belirtilen im için bir şekil tanımlar. /sembolü kök elemana karşılık gelir. Bizim örneğimizde kök eleman Dunya:Turkiye idi. Bizim XSL örneğimize göre kök elemanı içerisindeki yazıların font büyüklükleri 18pt olmak zorunda.

Bu XSL dosyasını XSL yorumlayıcılarından birinden geçirirsek XML dosyasının görüntüsünü elde edebiliriz.

Bir XML dökümanının doğru olması için gereken şartlar:

· Bir XML dökümanı ya DTD kullanmalı ya da dökümanın başında <?xml version="1.0" standalone="no"?> deklerasyonu yer almalıdır.

· Elemanların bütün özellikleri çift tırnaklar içinde belirtilmelidir.

· Bütün elemanlar açma ve kapama imleri arasında yazılmalıdırlar.

· BoÅŸ bir im kullanılacaksa im’in bitiminden önce \ iÅŸareti kullanılmalıdır.

·         <Resim kaynak="duygu.jpg"/>

Bazı XML buyrukları

<?xml...?>
<?xml version="number"
[encoding="encoding"]
[standalone="yes[no]"] ?>

version XML dökümanının versiyonu gösterir ve kesinlikle yazılması gerekir. encoding Kullanılacak karakter kümesini belirtir US-ASCII, iso-8859-1 gibi. standalone EÄŸer ’no’ ise, dökümanı tanımlayan bir DTD belirtmek zorunludur. Bunun için <!DOCTYPE> buyruÄŸu kullanılır.

<!DOCTYPE>
<!DOCTYPE root-element SYSTEM|PUBLIC
["name"] "URI_of_DTD">

Bu buyruk XML dökümanını tanımlayan DTD kaynağını belirtmek için kullanılır. İki şekilde kullanılılabilir.

<!DOCTYPE root-element SYSTEM "URI_of_DTD">
<!DOCTYPE root-element PUBLIC "name" "URI_of_DTD">

SYSTEM DTD dökümanının yerini belirtir.

<!DOCTYPE <Book>
SYSTEM "http://www.domain.com/dtd/mydoctype.dtd">

PUBLIC EÄŸer kullanılan DTD çok büyük bir yaygınlık kazandı ise özel bir isimlendirme ÅŸeması kullanılır. XML iÅŸlemcisi bu tanımı gördüğü zaman ilgili DTD kaynağını sistemde kayıtlı olduÄŸu yerlerden bulmaya çalışacaktır. EÄŸer ilgili dosyayı bulamaz ise SYSTEM buyruÄŸu ile tanımlanmış DTD’yi kullanacaktır.

<!DOCTYPE <Book> PUBLIC
"-//Dunya/DTD/EN"
"http://www.Dunya.com/dtd/xmlbk.dtd">
<![CDATA[...]]>

XML dilinde özel anlamları bulunan karakterleri özel anlamları haricinde kullanmaya yarar. ’...’ ile belirtilen yere yazılan herÅŸey XML iÅŸlemcisi tarafından salt metin olarak algılanacaktır

<![CDATA[
Burada XML dilinde özel anlamları bulunan karakterleri
bir problem olmadan rahatça kullanabiliyorum. Meselâ
<?xml version="3.145678"?> yazmam bir hata mesajı
üretmeyecektir.
]]>
<!--....-->

XML dokümanı içerisine bazı açıklamalar veya yorumlar yazabilmemizi sağlar.

XML’e Has Özelikler

xml:lang
xml:lang="iso_639_identifier>

xml:lang özeliği bütün elemanlar için kullanılabilir. Elemanın hangi dilde yazıldığını belirtmek için kullanılır.

<Paragraf xml:lang="en">Hello</Paragraf>
<Paragraf xml:lang="fr">Bonjour</Paragraf>

xml:space

xml:space="default|preserve"

Elemanın içerisinde yer alan boÅŸluk veya tab karakterlerinin dikkate alınıp alınmamsını belirler. EÄŸer ’preserve’ seçeneÄŸi kullanılırsa boÅŸ ve tab karakterleri dikkate alınacaktır.

xml:link
xml:link="link_türü

Elemanın bir link olduğunu belirtmek için kullanılır.

Özel Karakterler

XML’de özel manaları bulunan karakterleri ifade edebilmek için deÄŸiÅŸik bir metod kullanılır. XML’de yaygın olarak kullanılan 5 özel karakter şöyle gösterilir.

· & &

· < <

· > >

· " "

· ' '

Kolaylıkla görüleceği gibi özel karakterleri ifade etmek için & ve ; işaretleri beraber kullanılır.

DTD ˙Içinde Eleman Tanımları

XML dökümanı içerisinde kullandığınız elemanların tanımlarını DTD dosyaları içerisinde yapmak zorunluluğu vardır. Bunun için şu kalıp kullanılır.

<ELEMENT eleman_ismi kural>

Eleman isminin içerisinde < ve > karakterleri olmamalıdır. Eleman isimleri karakter veya _ sembolü ile başlamalıdır. Ayrıca eleman isimleri xml ile başlamamlıdır. Bu son kurala uyulmaması aslında ciddi bir probleme yol açmayabilir. Ancak xml sözcüğü ile başlayan ve XML yapısı içerisinde özel anlamları olan bir takım imler bulunmaktadır. Bu imlerde çakışma olasılığı bulunduğundan ötürü bu kısıtlamaya uyulması çok yerinde olacaktır.

111 ANY ve PCDATA 222 En basit eleman tanımı ANY buyruğu ile yapılır.

<!ELEMENTkutuphaneANY>

’ANY’ sözcüğü ile <kutuphane> ve </kutuphane> imleri arasında herhangi bir karakterin veya karakter katarının veya baÅŸka imlerin bulunabilmesi saÄŸlanır. EÄŸer iki im arasında sadece özel bir takım karakterlerin tanımlanması isteniyorsa ’PCDATA’ anahtar sözcüğü kullanılır.

<!ELEMENTkutuphane(#PCDATA)>

Bu buyruk ile <kutuphane> ve </kutuphane> imleri arasında eleman isimleri hariç diğer karakterlerin yer alabileceği belirtilir. Bir örnek vermek gerekirse

<kutuphane>KTU Kütüphanesi</kutuphane>
<kutuphane></kutuphane>

kullanımları doğru olduğu halde

<kutuphane>
<universite>KTU</universite>
Kütüuphanesi
</kutuphane>

kullanımı yanlıştır.

Bununla beraber bir elemanın içerisinde başka elemanların bulunma zorunlulu ğu şu şekilde belirtilir.

<!ELEMENT Insan (Baslik>>
<!ELEMENT Baslik (#PCDATA>>
Yukarıdaki örnekte Insan imi içerisinde Baslik imi bulunmak zorundadır.
15
<!ELEMENT Insan (Baslik, Tarih)>
<!ELEMENT Baslik (#Baslik)>
<!ELEMENT Tarih (#Tarih)>

Yukarıdaki örnekte ’Insan’ im’i içerisinde ’Baslik’ ve ’Tarih’ imleri olmak zorundadır ve belirtilen sıraya uymak zorundadır.

<!ELEMENT Insan (Baslik|Tarih)>
<!ELEMENT Baslik (#Baslik)>
<!ELEMENT Tarih (#Tarih)>

Yukarıdaki örnekte ’Insan’ im’i içerisinde ’Baslik’ veya ’Tarih’ imlerinden birisi olmak zorundadır. Ancak ikisi birden bulunamaz.

Gruplama ve Yineleme

Imlerin XML dökümanı içerisinde yer alma sırasını belirlemek mümkündür.

<!ELEMENT Insanlar ((baslik, yazar)| aciklama)>
<!ELEMENT baslik (#PCDATA)>
<!ELEMENT yazar (#PCDATA)>
<!ELEMENT aciklama (#PCDATA)>

Yukarıdaki örnekte ’Insanlar’ im’i içerisinde ya ’aciklama’ im’i olmak zorundadır ya da ’baslik’ ve ’yazar’ im’i ardarda olmak zorundadır. Ayrıca bu imlerin kaçar defa yer alabileceÄŸini belirleyebilirsiniz.

? Ya bir kere, ya hiç
+ En az bir kere
* Bir çok kere veya hiç
<!ELEMENT yazar (yazarismi+)>
<!ELEMENT yazarismi (#PCDATA)>

Yukarıdaki örnekte ’yazar’ im’i içerisinde ’yazarismi’ im’i ya bir kere yer alacaktır veya hiç kullanmayacaktır. Buna benzer fakat daha karmaşık tanımlamalar yapmak mümkündür .

BoÅŸ Ä°mler

XML dökümanı içerisinde yer alan boş elemalar ayrıca tanımlanmak zorundadır.

<!ELEMENT elemanismi EMPTY>
Entities

<I>General Entities</I>

Bir karakter kümesi için makro tanımlamak için kullanılır.

<!ENTITY isim "karsilik">

<, >, &, 've " karakterleri i»cin gereken tanımlamalarıkendi DTD dökümanınız içerisinde yapmak zorunda deÄŸilsiniz. Bunlar XML iÅŸlemcisi tarafından önceden yapılmıştır. Copyright sembolu için bir makro tanımı aÅŸağıdaki gibi yapılabilir. Bu sembolün Unicode karşılığı 169 (Hexadecimal 0xA9) ’dur.

<!ENTITY copyright "&#xA9;">

<I>Parameter Entities</I>

Bir önceki gibi makrolar tanımlamak için kullanılır ancak tanımlanan makrolar sadece DTD içinde kullanılmak içindir. Bu şekilde tanımlanan bütün makro isimlerinin başına % sembolü konulur. Bu sembol makronun sadece DTD içerisinde kullanılabileceğini gösterir.

<!ENTITY % isim "karsilik">

<I>External Entities</I>

Dısarıdan yapılan linkler için kullanılır.

<!ENTITY alinti SYSTEM
"http://www.Dunya.com/stocks/quoates.xml">

EÄŸer ‘alinti’ adli makro, XML dökümanı içerisinde kullanılacak olursa, iÅŸaret edilen URL’den yani http://www.Dunya.com/stocks/quoates.xml adresinden içerik alınacak ve XML dökümanı içerisine gömülecektir.

Örnekler

Örnek 1

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE Insan SYSTEM "file:///bilisim/duygu/doc/xml/prog01.dtd">

<Insan>Beginning XML</Insan>

<!ELEMENT Insan (#PCDATA)>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<xsl:value-of select="."/>

</xsl:template>

</xsl:stylesheet>

Örnek 2

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Insan SYSTEM "file:///bilisim/Duygu/doc/xml/prog02.dtd">

<Insan> Insan

<Baslik>Duygu Caglar XML</Baslik>

</Insan>

<!ELEMENT Insan (Baslik)>

<!ELEMENT Baslik (#PCDATA)>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<xsl:value-of select="."/>

</xsl:template>

<xsl:template match="Baslik">

<xsl:value-of select="."/>

</xsl:template>

</xsl:stylesheet>

Örnek 3

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Kisi SYSTEM "file:///bilisim/Duygu/doc/xml/prog03.dtd">

<Kisi> Duygu Caglar </Kisi>

<!ELEMENT Kisi (#PCDATA)>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<HTML>

<xsl:value-of select="."/>

</HTML>

</xsl:template>

</xsl:stylesheet>

Örnek 4

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Insan SYSTEM "file:///bilisim/Duygu/doc/xml/prog04.dtd">

<Insan>

<Baslik>System Duygu Caglar</Baslik>

</Insan>

<!ELEMENT Insan (Baslik, Konu)>

<!ELEMENT Baslik (#PCDATA)>

<!ELEMENT Konu (#PCDATA)>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<HTML>

<xsl:value-of select="."/>

</HTML>

</xsl:template>

</xsl:stylesheet>

Örnek 5

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Insan SYSTEM "file:///bilisim/Duygu/doc/xml/prog05.dtd">

<Insan>

<Baslik>Duygu Caglar</Baslik>

</Insan>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

20

<xsl:template match="/">

<HTML>

<xsl:apply-templates/>

</HTML>

</xsl:template>

<xsl:template match="Baslik">

<HEAD>

<xsl:value-of select="."/>

</HEAD>

</xsl:template>

</xsl:stylesheet>

Örnek 6

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Insan SYSTEM "file:///bilisim/Duygu/doc/xml/prog06.dtd">

<Insan>

<Baslik>System Duygu Caglar</Baslik>

<Konu>System Yonetici Nitelikleri</Konu>

</Insan>

<!ELEMENT Insan (Baslik, Konu)>

<!ELEMENT Baslik (#PCDATA)>

<!ELEMENT Konu (#PCDATA)>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<HTML>

<xsl:apply-templates/>

</HTML>

</xsl:template>

21

<xsl:template match="Baslik">

<HEAD>

<xsl:value-of select="."/>

</HEAD>

</xsl:template>

<xsl:template match="Konu">

<P>

<xsl:value-of select="."/>

</P>

</xsl:template>

</xsl:stylesheet>

Yorum Gönder

0 Yorumlar

Ad Code

Responsive Advertisement