[LinuxFocus-icon]
Ev  |  Eri�imd�zeni  |  ��indekiler  |  Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Arabic  

convert to palmConvert to GutenPalm
or to PalmDoc

[Floris Lambrechts]
taraf�ndan Floris Lambrechts
<floris(at)linuxfocus.org>

Yazar hakk�nda:

Y�llard�r LinuxFocus/Hollanda'n�n ba� edit�rl���n� yapmaktay�m.Leuven, Bel�ika'da 'elektronikte end�stri m�hendisli�i' �al��maktay�m ve zaman�m� Linux, PHP, XML ve LinuxFocus ile u�ra�arak ge�irmekteyim , ayn� zamanda Stephen Hawking ve Jef Raskin (�u anda -'Uygarl�k Aray�z�') gibi yazarlar�n kitaplar�n� okuyorum.



T�rk�e'ye �eviri:
Ay�eg�l Kur�unlu <akursunlu(at)be.itu.edu.tr>

��erik:

 

XML'i ��renmek

[Illustration: xml]

�zet:

Bu yaz�, XML'in olduk�a k�sa bir tan�t�m� olacakt�r. Meta kedi Eddy, XML yaz�m polisi, ve baz� DTD'lerle tan��acaks�n�z. Endi�elenmeyin, a��klayaca��z ;-)

_________________ _________________ _________________

 

Giri�

2001 yaz�nda, baz� LinuxFocus edit�rleri LSM s�ras�nda Bordeaux'da biraraya geldiler. LSM'nin �zel-ilgi-grubu dok�manlar�ndaki konu�malar ve tart��malar ayn� konuyu i�aret etmekteydi: XML. Uzun (ve e�lenceli) saatler, XML tam olarak nedir, ne i�in iyidir ve nas�l kullan�l�r sorular�n� a��klamaya yetti. E�er ilgiliyseniz, bu makalenin de tart��maya �al��aca�� konular tam olarak bunlar olacakt�r..

Egon Willighagen ve Jaime Villate'e beni XML'le tan��t�rd�klar�ndan dolay� te�ekk�r etmek istiyorum. Bu makale, bir �ekilde Jaime'nin makalelerindeki bilgilere dayanmaktad�r ve bunlar� a�a��daki ba�lant�larda bulabilirsiniz.

 

XML Nedir

Dok�mantasyonla ilgilenen bizler, a�a�� yukar� XML'in ne oldu�unu biliyorduk. Her �eyden �nce, s�zdizimi HTML'e �ok benzemekte ve o da SGML ve (yine) HTML gibi ba�ka bir markup dili, de�il mi? Do�ru. Fakat daha fazlas� var.
XML'in hemen hemen her �ey i�in onu yararl� bir data format� yapan baz� �zellikleri var. Bir �ok karma��k �eyi a��klar g�z�k�r, ve hala kolay okunurlu�unu korur, ve programlar i�in ayr��t�r�lmas� kolayd�r. Bu nas�l olabilir? �imdi bu garip dili inceleyelim.

Eddy, meta kedisi

�lk �nce, XML bir markup dilidir. Markup diliyle yaz�lan d�k�manlar temel olarak iki �ey i�erir: veri, ve metaveri. Verinin tam olarak ne oldu�unu biliyorsunuz, bundan sonra metaveriden ;) bahsedelim. Basit�e; metaveri verinin kendisine i�erik veya anlam katan bir ek bilgidir. Basit bir �rnek verirsek: bir c�mle ele alal�m 'Kedimin ad� Eddy'dir'. Bir insan 'kedi'nin bir hayvan t�r�n�n, ve 'Eddy'nin de kedinin ismi oldu�unu bilir.Fakat, bilgisayar programlar�, insan de�ildir ve b�t�n bunlar� bilemez.Bu y�zden bilgiye anlam katmak i�in metaveri kullan�r�z (Tabii ki XML s�zdizimi ile!):

 <sentence>
   Benim <animal>kedi</animal> min ad� <name>Eddy</name>dir.
 </sentence>

�imdi bir bilgisayar bile 'kedi'nin bir t�r, ve 'Eddie'nin de onun ismi oldu�unu bilir. E�er b�t�n isimlerin mavi, b�t�n t�rlerin k�rm�z� yaz�ld��� bir d�k�man elde etmek istersek, XML bunu bizim i�in ger�ekten �ok kolay hale getirir. A�a��daki sonucu elde ederiz:

 Benim kedimin ad� Eddydir.

�imdi teorik olarak, bi�im bilgisini (bu durumda renkler) sitil dosyas� denilen ayr� bir dosyaya koyabiliriz. Bunu yapt���m�zda, bi�im bilgisini i�erikten ay�rm�� oluruz, Holy Grail'in Web Tasar�m� TM'de bahsetti�i gibi. �imdiye kadar �zel hi�bir�ey yapmad�k, metaveri eklemek markup dillerinin tasar�m nedenidir. �yleyse XML'i bu kadar �zel yapan nedir?

S�zdizimi Polisi

Her�eyden �nce, XML �ok kesin bir s�zdizimine sahiptir. �rne�in, XML'de her <etiket> bir kapan�� </etiket>ine sahiptir. [ Not: Aralar�nda hi�bir�ey olmad���nda <etiket></etiket> yazmak �ok anlams�z olaca��ndan <etiket /> de yazabilirsiniz ve hayat�n�zdan birka� dakikay� tasarruf etmi� olursunuz.]
Bir ba�ka kural da etiketleri kar��t�ramazs�n�z. Etiketleri a�t���n�z s�ran�n ters s�ras�nda kapatmak zorundas�n�z. �unun gibi bir�ey ge�erli de�ildir:

<B> Koyu yaz� <I>Koyu ve italik yaz� </B> italik yaz� </I>

S�zdizimi kurallar� </I> etiketini </B> etiketinden �nce kapatmam�z gerekti�ini s�yler.
Ve dikkat, XML d�k�man�ndaki her eleman etiketler aras�nda olmal�d�r (en d��taki iki etiket hari� tabii!). Bu nedenle, �stteki �rnekte bir c�mlenin �evresine <sentence> etiketleri koyduk. Bunlar olmadan, c�mledeki baz� s�zc�kler etiketler aras�nda olmayacakt�, ve bu da, bir �ok �ey gibi XML s�zdizimi polisini ger�ekten �ok k�zd�racakt�.
Mozilla screenshot
Mozilla'n�n s�zdizimi polisi i� ba��nda...

Fakat, g��l� bir polis g�c�n�n avantajlar� vard�r: d�zeni sa�larlar. XML �ok kesin s�zdizimi kurallar�na sahip oldu�undan, programlar taraf�ndan okunmas� �ok kolay olur. Ayr�ca XML d�k�manlar�ndaki bilgiler olduk�a yap�sald�r, bu da insanlar taraf�ndan okunup yaz�lmas�n� kolayla�t�r�r.
XML'in 'teorik' varl�klar�n�n pratikte �ok da fark edilmedi�i not edilmelidir. �rne�in, en g�ncel XML ayr��t�r�c�lar� h�zl� olmaktan �ok uzakt�r ve genellikle �ok b�y�kt�r. Bu y�zden g�r�nen odur ki XML'in yaz�l�m taraf�ndan okunmas� �ok kolay de�ildir. Burada �unu da s�yleyelim ki sadece yapabildi�iniz i�in *her�eyi* XML'de yapmak hi� de iyi bir fikir de�ildir. ��inde bir�ok tarama yapman�z gereken d�k�manlarda veya ger�ekten �ok b�y�k d�k�manlara sahip oldu�unuz uygulamalarda XML genellikle do�ru se�im de�ildir. Fakat bu, bu durumlar i�in XML'i kullanman�n imkans�z oldu�u anlam�na gelmez.
XML'in g�c�n�, ayn� zamanda yava�l���n� g�steren g�zel bir �rnek, i�inde veri taban� yazabilece�iniz ger�e�idir. (bir de HTML'le deneyin! :p). Bu tam olarak Egon Willighagen'in Alman LinuxFocus b�l�m� i�in yapt���d�r, bu sistemle ilgili makalesi bu sayfan�n sonundaki ba�lant�larda bulunabilir. H�z�n �tesinde, homebrew dosya format�n�n esnekli�i ve geni�letilebilirli�i tercih edilmi�tir ( mySQL).
XML'in kesin s�zdizimini dikkate al�narak: s�zdizimi denet�ileriyle iyi arkada� olursan�z, o zaman polise sizin i�inizin bir k�sm�n� yapt�rman�z�n baz� yollar� olabilir. E�er b�yle bir�ey yapmak istiyorsan�z DTD kullanman�z gerekir. ...

 

DTD

Yukar�daki 'Eddy meta-kedi' �rne�inde, XML etiketlerini ke�fettik. Tabii ki, b�yle yarat�c� bir davran�� polis g��leri taraf�ndan ho� kar��lanmaz! 'Mavi giysili adamlar' neyi, nas�l, ne zaman (e�er m�mk�nse) neden yapt���n�z� bilmek isterler. Hi� sorun de�il, DTD ile her �eyi a��klayabilirsiniz...

DTD yeni etiketler icat etmenize izin verir. Ger�ekten de XML, XML s�zdizimini takip etti�iniz s�rece yeni diller yaratman�za izin verir.
DTD ( Document Type Definition), bir XML dilinin tan�m�n� i�eren bir dosyad�r. O ger�ekten, b�t�n olas� etiketler, onlar�n olas� �zellikleri ve bile�imlerinin listesidir. DTD, XML dilinde neyin m�mk�n olup, neyin m�mk�n olmad���n� tarif eder. Bu y�zden 'XML dili'nden bahsederken, ger�ekte belli bir DTD'den bahsediyor oluruz.

Polisi �al��t�rmak

Bazen DTD sizi belli bir yerde belli bir�ey yapmaya zorlar . �rne�in, DTD sizi d�k�man�n ba�l���n� i�eren bir etiket eklemeye zorlayabilir. Bunun g�zel taraf�, gerekli etiketleri otomatik olarak yazan bir yaz�l�m�n var olmas�d�r (�rne�in bir emacs mod�l�).
Bu yolla d�k�man�n baz� b�l�mleri otomatik olarak doldurulur. S�zdiziminin �ok kesin ve iyi tan�mlanm�� olmas� nedeniyle, DTD t�m yaz�m i�lemi boyunca size rehberlik eder. Ve ne zaman yanl�� yaparsan�z, bir sonland�rma etiketini unutmak gibi, polis sizi uyar�r. Sonu�ta size �ok da k�zmazlar; ger�ek d�nyadaki polislerin 'Sessiz kalma hakk�na sahipsiniz' dedikleri gibi, XML polisi size arkada��a 'S�zdizimi hatas� sat�r xx : '... :) der.
Polis bu i�in hepsini sizin i�in yaparken, tabii ki *siz* i�erik �zerinde devam eder ve yo�unla��rs�n�z.

Kar���m

XML'in �ok iyi son bir �zelli�i de birden fazla DTD'yi bir kerede kullanabilmesidir. Bu bir�ok de�i�ik veri tiplerini ayn� zamanda bir d�k�manda kullanabilece�iniz anlam�na gelir.

Bu 'kar���m' xml isim bo�luklar� ile yap�l�r. �rne�in, .xml d�k�man�n�za Docbook DTD'yi ekleyebilirsiniz (bu �rnekte 'dbk' eki kullan�l�r).
B�ylece b�t�n Docbook etiketlerini d�k�man�n�zda kullanabilirsiniz. (<sadece_bir_etiket> diye bir Docbook etiketi oldu�unu varsayal�m):

 <dbk:sadece_bir_etiket> sadece baz� kelimeler </dbk:sadece_bir_etiket>

�sim bo�lu�u sistemini kullanarak, herhangibir xml DTD'nin herhangibir etiketini ve �zelli�ini kullanabilirsiniz. Gelecek b�l�mde de g�rece�iniz gibi bu pek �ok se�ene�e a��kt�r...  

Mevcut DTDler

Kullan�lmakta olan DTD'lerin k���k bir k�sm� �unlard�r;  

Ba�lant�lar

W3C(World Wide Web Consortium)
XML, MathML, CML, RDF, SVG, SOAP, XHTML .... hakk�nda bilgiler i�eriyor...
www.w3.org

Jaime Villate taraf�ndan yaz�lm��t�r (ilk ikisini okumak i�in bir online s�zl��e ihtiya� duyacaks�n�z:)
XML'e giri�(�spanyolca)
XML'le nas�l HTML olu�turulur(�spanyolca)
LSM-slaytlar�

HTML tidy, program:
www.w3.org/People/Raggett/tidy

Docbook
www.docbook.org

Mozilla.org SVG projesi
www.mozilla.org/projects/svg

�lgili LinuxFocus makaleleri:
XML ve XSLT 'yi LinuxFocus.org(/Hollanda) kurmak i�in kullanmak
DocBook ile PDF d�k�manlar� yaratmak

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Floris Lambrechts, FDL
LinuxFocus.org
�eviri bilgisi:
en --> -- : Floris Lambrechts <floris(at)linuxfocus.org>
en --> tr: Ay�eg�l Kur�unlu <akursunlu(at)be.itu.edu.tr>

2002-09-23, generated by lfparser version 2.31