• xml: extensible markup language demek.
    once kelime anlami ile bakalim. markup language isaretleme dili, xml napiyor, bir veriyi isaretleyerek tanimlamaya yariyor. ornegin:
    <insanlar>
    <insan><isim>ali</isim><soyisim>deli</soyisim></insan>
    <insan><isim>veli</isim><soyisim>meli</soyisim></insan>
    </insanlar>

    elinizde 2 insandan olusan ve isim soyisimlerini saklamak istediginiz bir veri listesi olsaydi bunu yukardaki sekilde saklayabilirdiniz.

    ornegin siz bir firmasiniz, ve firmanizin insanlar xml'ini sizin firmanizin oldugunu belirtmek istiyorsunuz. bu sizin xml'inizi baskasinin xml'inden ayrimaya yarar.

    <x:insanlar xmlns:x="http://firmam/">
    <x:insan><x:isim>ali</x:isim><x:soyisim>deli</x:soyisim></x:insan>
    <x:insan><x:isim>veli</x:isim><x:soyisim>meli</x:soyisim></x:insan>
    </x:insanlar>

    burada eklediginiz xmlns:x="http://firmam/"'da x'e prefix denir (bir isaretci gibi dusunulebilir) ve bu x prefix'inin gosterdigi namespace http://firmam/'dir. burada http://firmamin/ gecerli bir adres falan olmasi gerekmiyor sadece sizin oldugunu belirtsin yeter.

    boylece siz insanlar bilgisini internette yayimliyorsunuz diyelim. bu http://firmam/'a bagli bir de kurallar dosyasi bulunmasi lazim. bu kurallara xsd denir. xsd'nin icinde tum uretilen xml dosyalarinin yapisinin insanlar'in icinde insan, insanin icinde de isim soyisim olmasi gerektigini belirtirsiniz. birisi sizden veri alacaksa, sizin gonderdiginiz verinin neye benzeyecegini bu xsd sayesinde anlar, ve size bilgi gonderecekse, bu xsd sayesinde sizin anlayacaginiz, kabul edebileceginiz bir veri yapisi olusuturabilir.

    boylece firmalar kendi xml verilerini, ve bu verilerin xsdlerini olustururlar.

    xml'in x'i extensible olmasi da sundan: bir firma sizin xml dokumaninizi temel alip kendi namespace'i ile extend edebilir, yani genisletebilir.

    <x:insanlar xmlns:x="http://firmam/" xmlns:y="http://naberabi/">
    <x:insan><x:isim>ali</x:isim><x:soyisim>deli</x:soyisim><y:telefon>212 555-5555</y:telefon></x:insan>
    <x:insan><x:isim>veli</x:isim><x:soyisim>meli</x:soyisim><y:telefon>312 444-5544</y:telefon></x:insan>
    </x:insanlar>

    yukaridaki dokuman x namespace'i perspektifinden bakildiginda (yani bu dosyayi http://firmam/ namespace'ine bakan benim firmama gonderdiklerinden ben sorunsuz bir sekilde okuyabilirim. http://naberabi/'yi anlayan bir baska firma/kisi mesela bu xml'i hem benim anladigim bilgilerle hem de ekstra belirttigi telefon bilgisiyle isleyebilir.

    xml'i islemek icin bir cok dil var: xpath, xslt, linq for xml bunlara ornekler. bu dillerle, yukardaki insanlar listesinden bir web sayfasi olusturmak vs mumkun.

    xml cok net kurallarla isaretlendiginden, metin tabanli oldugundan, tum dillerde, tum sistemlerde xml'i anlayan ve olusturan yapilar artik cok yerlestiginden internette, firmalar arasi iletisimde, veya en basidinden veriyi diskinize kaydetmek istediginizde (insanlar tarafindan okunabilir oldugundan) xml tercih sebebidir.

    html'de xml'in bir turevi oldgundan ozellikle xhtml denen sey, yukarida bahsettigim xml teknolojisinin, html xsd'si ile tanimlanmis, ve http://www.w3.org/1999/xhtml namespace'inde olan bir xml'dir.

    not: bu yazi xml'in ne oldugunu hic bilmeyen bir insana biraz neyin en oldugunu anlatmak amaciyla yazilmistir. default namespaces, sgml, xml attributes turu bilgiler atlanmistir, veya bazi seyleri basitlestirmek adina %100 dogru soylenmemistir. ornegin html xml'in bir turevi degildir, xml de html'de sgml'den turemistir. ama xhtml strict bir xml'dir (mesela <br> tag'ini <br /> olarak yazmaniz lazim).
  • birbirine uyumlu olmayan sistemler arasında veri alı$veri$ini rahatlıkla gerçekle$tirmeyi sağlayan markup language. yazılım, donanım ve uygulamalardan bağımsızdır. esnek ve geni$leyebilir bir yapısı vardır. örneğin:

    <?xml version="1.0"?>
    <urunler yil="2005">

    <elma>
    <yer>amasya</yer>
    <tur>sulu</tur>
    <renk>kirmizi</renk>
    <yeme>isirarak</yeme>
    </elma>

    </urunler>

    - html'in rakibi değil, tamamlayıcısı olabilir.
    - bilgiler veri adaları (data islands) sayesinde html dosyaları içerisinde depolanır.

    notasyonla ilgili birkaç hatırlatma:

    - kullanılacak tag'ler önceden tanımlı değildir, kullanıcı tanımlar. örneğin: <isim>ahmet</isim>
    - mutlaka kapanı$ tag'leri konmalıdır. <cesit> diye açtığınız tag'i kapamanız gerekmektedir. (bo$ olduğu zaman istisnası hariç)
    - tag hiyerar$isine dikkat etmeniz gerekir. <urunler> <isim> elma </urunler> </isim> diye bir$ey olmaz.
    - tag'ler küçük/büyük harfe duyarlıdır/ case sensitive'dir.
    - yukarıdaki "urunler" tag'i "root element", "isim" ise "child element"tir.
    - tag'lerdeki attribute'lar tırnak içerisine alınmalıdır. <urunler yil=2005> olmaz, doğrusu <urunler yil="2005"> dir. eğer birden fazla attribute kullanacaksanız, çift tırnaktan sonra tek tırnak gelir, vice versa. örneğin: <urunler yil="2005" ay='mayis'>
    - html'den farklı olarak metindeki bo$luklar da değerlendirmeye alınır.
    - text içinde & < > " ' karakterleri kullanılamaz. bunun yerine metin versiyonları kullanılır.
    - comments'lar html'dekilere benzer, yani <!-- --> 'dır. ancak comment içinde -- yazmak - <?xml version="1.0"?> satırına encoding'i attribute olarak yazabiliriz. örneğin
    <?xml version="1.0" encoding="iso-8859-2"?> ve eğer encoding vermez isek utf-8 olarak kabul eder.
    - <isim></isim> ile <isim/> arasında bir fark yoktur.
    - notepad ile pek rahat yazılsa da, xml notepad diye bir fasilite vardır.
    http://www.google.com.tr/…0,ggld:en&q="xml notepad"
  • turkiye'de "egzemel" diye okunur, aborijinler "moa?" diyor buna..
  • farklı ve birbiriyle uyumsuz platformlar arasında veri paylaştırmaya / aktarmaya çalışan programcılar için bulunmaz nimet...
  • sql server'da bir veri tipi. xml tipli field'lar primary key olamiyor sanirim. uzerlerinde direkt xpath sorgusu cali$tirabiliyorsunuz.

    ornegin adi "kisi_bilgisi" olan bir xml field'in icinde

    <isim>alper</isim>
    <boy>1.80</boy>
    <gozler>mavi</gozler>

    bilgisi bulunsun. a$agidaki sorgu bu satiri, yani ismi alper olani secer :
    select * from tablo where kisi_bilgisi.query('isim').value('/', 'varchar(20)') = 'alper'

    xml field'lar, satirlar arasinda parametre sayisi farkli olanlar olabildiginde, her parametre icin bir field (kolon) acmaktansa esnek bir field'da toplamaya yarar. projelerde hayat kurtarici oldugu durumlar az degildir.
  • xml data saklama olayını kolaylaştırır, pratikleştirir. bir bakıma bilgiyi kategorize der, bilgiye ulaşmayı kolaylaştırır. dahası bir standard olarak kabul edildiği takdirde * b2b * uygulamalarda kendine yer edinecektir. örneğin bir şirket teklif hazırlarken, price listini veya ürün/hizmet portfoliosunu xml kullanarak hazırlayıp gönderirse, karşı taraf da xml kullanıyorsa, bilgi transferini ve saklamayı çok yüksek oranda hızlandırır. e zaman tasarrufu da b2b uygulamalarda büyük bir nimettir.
  • w3c'nin standartlara getirdiği sahipsizlik, ortaya sunulmuşluk, açıklık gibi sıfatlardan dolayı gitgide dallanan, budaklanan, zenginleşen, çocuklar doğuran, kendine acayip uygulama alanları üreten, son dönemlerin en dinamik teknolojisidir. ileride xml mühendisliği gibi bir yüksek lisans programı açılırsa hiç şaşırmam.
  • aralarında microsoft ve sun microsystems inde bulunduğu bir konsorsiyum (bkz: w3c) tarafından geliştirilir, sadece bir şirketin gelişimine açık değildir..
  • http://www.responsetrack.net/…elon_project_referral

    bu site adam gibi bir xml projesi üzerinde çalışanlara hediye çeki veriyor ilgilenenlere duyurulur...
  • askere gitmiş html bu. çakı gibi olmuş ama her tarafından angarya fışkırıyor. extensible dedikleri de işte topçu, tankçı vs. haline getirebiliyorsunuz.

    human readable diyorlar da, data o kadar çok tag tarafından sarmalanmış ki sanki her tarafından reklam fışkıran dizi sitesinde yeni çıkan bölümü izlemeye çalışıyorsunuz.

    yıllar önce xml öğrenmek istyorum diye etrafta dolaşan tipler görmüştüm, hala da anlamadım ne demek istediklerini.

    bir cdn'in xml formatında hata mesajını gördüm az önce de hatırlamış oldum ne kadar irite olduğumu.
hesabın var mı? giriş yap