XML Biçimlendirici
Bir XML belgesini, söylediği hiçbir şeyi değiştirmeden girintili hâle getirin ya da küçültün; her şey tarayıcınızda gerçekleşir.
Tamamen tarayıcınızda çalışır. Hiçbir şey yüklenmez, günlüğe yazılmaz veya saklanmaz.
Bir XML belgesi yapıştırın ve okuyun. Girintili ya da baştan sona tek satıra geri toplanmış hâlde, başka hiçbir şeyi değiştirmeden; çünkü XML'de bir biçimlendiricinin düzeltmek isteyeceği şeylerin neredeyse tamamı veridir.
Nasıl çalışır
Bir HTML biçimlendiricisi blok öğeler arasında rahatça girinti yapabilir, çünkü tarayıcı oradaki boşlukları göstermez. XML'de ne blok öğe vardır ne satır içi öğe. Öğelerinizin hiçbirinin ne anlama geldiğini bilmez ve metin içeren bir öğenin içindeki boşluk, o metnin bir parçasıdır.
Bu yüzden buradaki kural dardır ve aracın kendisi de odur: bir öğe yalnızca başka bir öğe içeriyor ve kendine ait hiç metni yoksa yeniden girintilenir. Geri kalan her şey (metin, karma içerik, CDATA, yalnızca boşluk içeren bir yaprak öğe, xml:space="preserve" ile işaretlenmiş bir öğe) bayt bayt aynı döner.
Bir açılış etiketinin içindeki boşluk hiçbir zaman veri değildir; bu yüzden öznitelikler arasındaki ardışık boşluklar teke indirilir. Tırnak içindekiler olduğu gibi bırakılır. Öznitelikler yeniden sıralanmaz, yeniden adlandırılmaz ve tırnakları değiştirilmez.
Bunların hiçbiri olmadan önce etiketlerin dengeli olması gerekir. Kapanış etiketi eşleşmeyen ya da bir öğeyi açıp hiç kapatmayan bir belge düzenlenmek yerine reddedilir: bozuk bir işaretlemeyi girintileyen bir biçimlendirici, doğru görünen ama yeni bir biçimde yanlış olan bir şey döndürür.
Örnekler
| Durum | Girdi | Sonuç |
|---|---|---|
| Karma içerik tam olarak olduğu gibi bırakılır | <p>Paper <em>and</em> cloth.</p> | <p>Paper <em>and</em> cloth.</p> |
| Boşluk içeren bir yaprak öğe boşluklarını korur | <value> </value> | <value> </value> |
| Öznitelikler aralarında tek boşlukla kalır | <a b="1" c="2"/> | <a b="1" c="2"/> |
Sık sorulan sorular
Belgem neden tek satır olarak geri geldi?
Çünkü kök öğesi, öğelerin yanı sıra metin de içeriyor. Bu karma içeriktir ve içindeki boşluklar veridir: girinti eklemek, belgenizde olmayan karakterleri araya sokmak olurdu. Biçimlendirici çalışıyor: yaptığı şey, içeriğinizi daha güzel görünsün diye düzenlemeyi reddetmek.
XML'imi bir şemaya göre denetliyor mu?
Hayır. Etiketlerin dengeli olup olmadığını denetler; bir şeyi girintileyebilmek için ihtiyaç duyduğu da budur, fazlası değil. Bir belgeyi bir XSD'ye göre denetlemek için XML doğrulayıcıyı kullanın.
Tarayıcımdan dışarı bir şey çıkıyor mu?
Hayır. Biçimlendirici, kendi cihazınızda çalışan JavaScript'tir; belge hiçbir yere gönderilmez. Sırf boşluklarını değiştirmek için yapıştırdığınız bir dosya için akla yatkın tek düzen de budur.
Özniteliklerim neden ayrı satırlara bölünmüyor?
Çünkü bir açılış etiketinin gösterecek bir iç içeliği yoktur. Birini birkaç satıra bölmek yapıyla değil zevkle ilgili bir konudur ve bu biçimlendirici yalnızca tek bir doğru cevabı olan şeyleri yapar.
“Tek satır” modu neleri kaldırır?
Yalnızca öğeler arasındaki boşlukları, girintinin ekleyeceği yerlerin aynısında. Metne, CDATA'ya ve yorumlara dokunulmaz; böylece belge tam olarak eskiden söylediğini söylemeye devam eder.
Bilmekte fayda var
- Bir düzen geçişidir, ayrıştırıcı değildir. Ad alanları çözümlenmez, varlıklar genişletilmez, hiçbir değer normalleştirilmez ve hiçbir şey bir şemaya göre denetlenmez.
- Kodlama, tarayıcınızınkidir. Belgenin başındaki bildirim, ne derse desin, değiştirilmeden aktarılır.