Bu bölümde kendimize bir makale xml dili yaratıyoruz. Bu dil bir makale bilgisini saklayacak. Makalenin yazarının adı,soyadı ve mail adresi, makale yazılma tarihi, başlık, makale için resim ve yazı bölümleri olacak.
1 <?xml version="1.0" encoding="ISO-8859-9"> 2 <article xmlns="http://www.test.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.test.com article.xsd"> 3 <author> 4 <name>Ali</name> 5 <surname>Kaya</surname> 6 <mail>a@b.com</mail> 7 </author> 8 <date>2004-01-01</date> 9 <image src="makale.jpg"></image> 10 <title>Bu bir deneme başlığıdır</title> 11 <section> 12 <heading>Başlık 1</heading> 13 <parag>Bu ilk paragraftır. Bu ilk paragraftır. Bu ilk paragraftır. Bu ilk paragraftır. Bu ilk paragraftır. Bu ilk paragraftır.</parag> 14 <parag>Bu ikinci paragraftır. Bu ikinci paragraftır. Bu ikinci paragraftır. Bu ikinci paragraftır. Bu ikinci paragraftır. Bu ikinci paragraftır. Bu ikinci paragraftır.</parag> 15 </section> 16 <section> 17 <heading>Başlık 2</heading> 18 <parag>Bu üçüncü paragraftır. Link örneği : <link address="http://www.w3.org">Tikla</link> Bu üçüncü paragraftır. Bu üçüncü paragraftır .Bu üçüncü paragraftır <link address="http://www.test.com">İkinci Tikla</link></parag> 19 </section> 20 </article>
root elementi article oluyor. author elementi içinde makale yazarı hakkında bilgi veriliyor. date makalenin tarihi, title makalenin başlığı, image ise makalenin resmi veriliyor. section ise bir başlığı ve paragrafları olan içerik bölümleridir. Her section'un bir heading ile başlığı veriliyor. parag elementi paragraf için kullanılıyor. link elementi ise link koymak için kullanılmaktadır.
Bu tür XML'lerin kurallara uygun olup olmadığını anlamak için bir schema yaratıyoruz. Hangi elementlerin kullanılması gerektiği, bir elementin içinde hangi elementlerinin olacağı, bir elementin ne tür attributeleri olacağı gibi bilgiler schema ile verilirler. Aşağıda makale için bir schema yaratıyoruz.
Bu dosyada tüm elementler ve attributeler tanımlanmıştır. Bazı elementler sadece string tutarlarken bazı elementler içine birden fazla element girebilir. Örneğin article elementi içinde author,date,image,title ve section elementleri olmaktadır. author ve image element için minOccurs 0 verilmiştir . Hiç kullanılmayabilir. section elementi için maxOccurs değeri unbounded olarak verilmiştir. 1 veya istenildiği kadar kullanılabilir.
article elementinden sonra author elementi tanımlanmıştır. author elementi içinde name,surname ve mail elementi olacaktır. name,surname,mail ve date elementi tanımlanmıştır. date elementinin type özelliği "xs:date" olarak verilmiştir. daha sonra image elementi tanımlanmıştır. image elementinin src attributesi olduğu belirtilmiştir. section elementi içinde ise heading ve parag elementi tanımlanmıştır. En son heading, parag ve link elementi tanımlanmıştır. parag elementi için mixed=true olduğu için hem string değer ve aralarında element olabilir.
Makale xml'ini html'e çevirmek için aşağıdaki XSLT yapılmıştır.