araç köşesi

XML Biçimlendirme ve Doğrulama

Tek satıra sıkışmış XML'i girintili, okunur hâle getirin; bozuk etiketin yerini satır ve sütunuyla görün

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

Bir web servisinden (SOAP) dönen yanıt, e-Fatura dosyası ya da bir programın ayar dosyası çoğu zaman tek satıra sıkışmış gelir ve okunmaz. Metni sol panele yapıştırın; her etiket kendi satırına geçer ve iç içe düzey girintiyle gösterilir. Örnek: 3 KB'lık tek satırlık bir sipariş yanıtı, 2 boşluk girintiyle yaklaşık 90 satıra açılır ve hangi ürünün hangi siparişe ait olduğu bir bakışta görünür. Araç aynı anda iyi biçimliliği denetler: kapanmamış bir etiket, yanlış sırada kapanan etiket ya da tırnaksız öznitelik varsa çıktı üretilmez, bunun yerine "4. satırda </siparis> görüldü ama açık olan etiket <urun> (3. satır)" gibi, satır ve sütunu veren bir mesaj çıkar. Ters yön de var: "Sıkıştırılmış — tek satır" seçildiğinde girinti boşlukları atılır, belge küçülür; yorumları da silerseniz daha da küçülür. Sonuç satırı önce ve sonraki boyutu yazar. Metin içine gömülü etiketler (Kapıda <b>nakit</b> ödeme gibi) ve CDATA bölümleri olduğu gibi kalır.

Bu araç xml formatter, xml beautifier, xml minify, soap xml formatter aramalarıyla da biliniyor.

XML nedir?

XML, veriyi <etiket>değer</etiket> biçiminde iç içe yazan metin biçimidir; SOAP servisleri, e-Fatura, SVG görselleri ve pek çok programın ayar dosyası bu yapıdadır. Makine için boşluğun önemi yoktur, bu yüzden programlar XML'i çoğu zaman tek satıra yazar; insan için ise iç içe düzeyi gösteren girinti okumanın tek yoludur. Biçimlendirme verinin anlamını değiştirmez, yalnız etiketler arasındaki boşluğu yeniden düzenler.

İyi biçimli XML nedir?

İyi biçimli (well-formed) XML, yazım kurallarına uyan belgedir: her açılan etiket kapanır, iç içe etiketler ters sırayla kapanır, belgede tek bir kök etiket bulunur ve öznitelik değerleri tırnak içindedir. Bu kurallardan biri çiğnenirse hiçbir XML programı belgeyi açmaz. Geçerli (valid) XML ise bir adım ileridedir: belge ayrıca bir şemaya (XSD ya da DTD) uyar. Bu araç birinciyi denetler, ikincisini denetlemez.

XML biçimlendirme ile sıkıştırma arasındaki fark nedir?

Biçimlendirme insana göre yazar: her etiketi ayrı satıra koyar, iç içe düzeyi girintiyle gösterir ve belgeyi büyütür. Sıkıştırma (minify) makineye göre yazar: etiketler arasındaki boşluk ve satır sonlarını atar, isterseniz yorumları da siler, belge küçülür ve ağdan daha hızlı geçer. İkisinde de veri aynıdır; etiketler, öznitelikler ve metin değişmez. Okuyup hata arayacaksanız girintili, bir servise gönderecek ya da bir ayar alanına yapıştıracaksanız tek satır seçin.

Biçimlendirirken neye dokunulmaz

Girinti yalnız boşluktan ibaret aralıklara eklenir. Bir etiketin içinde hem anlamlı metin hem etiket varsa ("Kapıda <b>nakit</b> ödeme" gibi karışık içerik) araya boşluk ya da satır sonu eklemek metni değiştirirdi; bu yüzden böyle bir etiketin içi bayt bayt aynen yazılır. xml:space="preserve" özniteliği taşıyan etiketin ve altındakilerin içi de aynı şekilde korunur, CDATA bölümleri değişmez.

Öznitelikler kaynaktaki sırayla, kaynaktaki tırnak türüyle ve kaynaktaki yazımla kalır: &amp; gibi varlıklar çözülüp yeniden yazılmaz, <a/> ile <a></a> yazımı da korunur. DOCTYPE bildirimi ve <?xml …?> satırı olduğu gibi aktarılır. Yani çıktıyı biçimlendirip yeniden sıkıştırdığınızda aynı ağacı elde edersiniz.

Doğrulama neyi kapsar, neyi kapsamaz

Bu araç iyi biçimliliği denetler: her açılan etiketin kapanması, doğru sırayla kapanması, tek bir kök etiket, tırnaklı öznitelik değerleri, aynı özniteliğin iki kez yazılmaması, kapanmış yorum ve CDATA. Hata mesajı hem satırı hem sütunu verir; tek satırlık sıkışık belgede sütun numarası hatanın yerini bulmanın tek yoludur.

Şema doğrulaması (XSD ya da DTD'ye uygunluk) yapılmaz. Bir e-Fatura dosyası iyi biçimli olup yine de GİB şemasına uymayabilir; zorunlu bir alanın eksik olduğunu bu araç söyleyemez. DTD içinde tanımlanan özel varlıklar da güvenlik gereği genişletilmez, yalnız &amp; &lt; &gt; &quot; &apos; ve sayısal karakter kodları tanınır.

Sık sorulanlar

XML nasıl düzenli ve okunur hâle getirilir?

XML metnini bu sayfadaki sol panele yapıştırın; her etiket kendi satırına geçer ve iç içe düzeyler 2 boşlukla girintilenir. Girintiyi 4 boşluk ya da sekme yapmak için "Çıktı düzeni" ayarını değiştirin. Sonucu kopyalayabilir ya da .xml dosyası olarak indirebilirsiniz.

XML dosyamın hatalı olup olmadığını nasıl anlarım?

Metni yapıştırdığınızda araç belgeyi baştan sona okur. İyi biçimliyse sonuç satırında "İyi biçimli" yazar; değilse çıktı üretilmez ve kapanmamış ya da yanlış sırada kapanan etiketin adı, satırı ve sütunu gösterilir. Şema (XSD) uygunluğu denetlenmez; yalnız etiket yapısının doğruluğu denetlenir.

XML tek satıra nasıl sıkıştırılır?

"Çıktı düzeni" ayarından "Sıkıştırılmış — tek satır" seçin. Etiketler arasındaki girinti boşlukları ve satır sonları atılır; metin içindeki boşluklara dokunulmaz. Yorumları da silmek isterseniz "Yorumlar" ayarını "Silinsin" yapın; sonuç satırı önceki ve sonraki boyutu gösterir.

SOAP yanıtını ya da SVG dosyasını da biçimlendirir mi?

Evet. SOAP zarfı, WSDL, SVG, XAML, RSS ve e-Fatura (UBL) dosyalarının hepsi XML'dir; ad alanı önekleri (soap:, cac:) olduğu gibi korunur. Biçimlendirme etiket yapısına göre yapıldığı için dosya türü fark etmez.