XML Nasıl Düzenlenir ve Doğrulanır?
Sistemler arası veri aktarımında XML hâlâ yaygın. Ancak makineler için üretilen XML çıktıları çoğu zaman tek satır hâlinde gelir ve gözle incelemek imkânsızdır.
Girintileme neden gerekli?
Girintileme, etiketlerin iç içe geçme düzenini görünür kılar. Hangi etiketin hangisinin içinde olduğunu, nerede kapanmadığını ancak bu şekilde fark edebilirsiniz.
Sık karşılaşılan hatalar
- Kapanmayan etiket
- Yanlış sırada kapatılan iç içe etiketler
- Özel karakterlerin kaçırılmaması (& yerine & yazılmalı)
- Birden fazla kök eleman bulunması
XML Formatlama aracı belgeyi girintiler ve yapı hatalarını satır bilgisiyle gösterir; verileriniz tarayıcınızdan çıkmaz.
XML neden tek satır hâlinde gelir?
Bir XML dosyasını not defterinde açtığınızda çoğu zaman tek satırda, iç içe geçmiş bir yığın hâlinde görürsünüz. Sebebi basittir: XML makineler için tasarlanmıştır ve boşluklarla satır sonları veri açısından anlamsızdır. Dosyayı üreten program yer kazanmak için hepsini atar. Formatlama işlemi veriye hiç dokunmadan yalnızca bu boşlukları geri koyar; her etiketi kendi satırına alır, iç içe geçmiş öğeleri girintiyle hizalar.
Girintili hâlde bakınca hangi etiketin hangisinin içinde olduğu görünür hâle gelir. Özellikle e-fatura, banka ekstresi ve site haritası gibi derin yapıdaki dosyalarda bu fark, aradığınız alanı saniyeler içinde bulmakla dakikalarca gözle taramak arasındaki farktır.
Doğrulama neyi yakalar, neyi yakalamaz?
Doğrulama, dosyanın XML biçim kurallarına uyup uymadığını denetler. Bu kurallardan biri bozuksa dosyayı okuyacak program hata verir ve genellikle nerede takıldığını anlaşılır biçimde söylemez.
- Kapanmamış etiket — en sık karşılaşılan hata; büyük dosyalarda gözle bulmak neredeyse imkânsızdır.
- Yanlış sırada kapanan etiketler — iç içe geçmelerin ters kapanması biçim hatasıdır.
- Kaçırılmamış özel karakter — metindeki ve işareti kaçış dizisiyle yazılmalıdır, aksi hâlde ayrıştırıcı durur.
- Birden fazla kök öğe — bir XML dosyasının en dışında yalnızca tek bir öğe bulunabilir.
- Karışık tırnak — öznitelik değeri hangi tırnakla açıldıysa onunla kapanmalıdır.
Doğrulamanın yakalayamadığı şey ise anlamdır. Dosya biçim olarak kusursuz olabilir ama beklenen alan eksik olabilir; örneğin faturada tutar etiketi hiç bulunmayabilir. Bunu ancak dosyanın uyması gereken şemayla karşılaştırarak anlarsınız. Biçim doğrulaması bu adımdan önce gelir ve onun ön koşuludur.
XML mi, JSON mu?
İkisi de veri taşır ama farklı geleneklerden gelir. XML daha eskidir; öznitelik ve şema desteği güçlüdür, bu yüzden e-fatura, e-devlet servisleri, RSS ve site haritaları gibi standartlaşmış alanlarda hâlâ kuraldır. JSON daha yenidir ve daha az yer kaplar, web uygulamaları arasında veri alışverişinde yaygınlaşmıştır.
Pratikte seçim çoğu zaman sizin elinizde değildir: karşı sistem hangisini istiyorsa onu üretirsiniz. Elinizdeki dosya JSON ise JSON Formatlama aracını kullanın; mantık aynıdır, yalnızca söz dizimi kuralları değişir.
Dosyanız bilgisayarınızdan çıkmıyor
Formatlama ve doğrulama tamamen tarayıcınızda çalışır. Bu sıradan bir kolaylıktan öte bir güvenlik konusudur: XML dosyaları çoğu zaman fatura tutarları, müşteri bilgileri ve vergi numaraları gibi ticari veriler taşır. Böyle bir dosyayı sunucuya yükleyen bir araca vermek, veriyi tanımadığınız bir tarafa göndermek demektir.
Çok büyük dosyalarda ne yapmalı?
Birkaç yüz megabaytlık XML dosyaları tarayıcıda açıldığında bellek sınırına takılabilir. Bu bir hata değil, tarayıcının koruma mekanizmasıdır: tüm dosyayı belleğe alıp ağaç yapısına dönüştürmek, dosyanın kendisinden kat kat fazla yer tutar.
Böyle bir dosyada genellikle tamamına da ihtiyacınız yoktur. Aradığınız bölümü bir metin düzenleyiciyle kesip ayrı bir parça olarak incelemek pratik yoldur. Yıllık toplu veri aktarımlarında ise dosyayı üreten sistemden tarih aralığına göre daha küçük parçalar istemek en sağlıklı çözümdür.
Kodlama ve Türkçe karakter sorunu
XML dosyasının ilk satırındaki bildirim, dosyanın hangi karakter kodlamasıyla yazıldığını söyler. Bu bildirim ile dosyanın gerçek kodlaması uyuşmazsa Türkçe harfler bozuk görünür veya ayrıştırıcı dosyayı hiç açmaz.
Eski sistemlerden gelen dosyalarda bu uyumsuzluk sıktır. Belgede ğ, ş ve ı harfleri yerine garip karakter ikilileri görüyorsanız sorun verinin kendisinde değil, okunma biçimindedir; metin bozulmamıştır ve düzeltilebilir.