ToolDeck

XML Biçimlendirici

XML'yi biçimlendir ve sözdizimi vurgulaması ile göster

Örnek dene

XML Girdisi

Biçimlendirilmiş XML

Yerel olarak çalışır · Gizli bilgi yapıştırmak güvenlidir
Biçimlendirilmiş XML burada görüntülenecektir…

XML Biçimlendirme Nedir?

XML biçimlendirme (XML güzelleştirme veya XML girintileme olarak da bilinir), bir XML belgesine tutarlı girinti ve satır sonları ekleyerek hiyerarşik yapısının görünür hale getirilmesi işlemidir. API'lerden, yapılandırma üreticilerinden veya serileştiricilerden gelen ham XML, çoğunlukla etiketler arasında boşluk olmaksızın tek satır halinde iletilir. Bir XML biçimlendirici, belgeyi bir ağaca ayrıştırır ve ardından öngörülebilir boşluklarla yeniden serileştirir. Sonuç görsel olarak anlaşılır ve çok daha kolay okunabilir olur; belgenin mantıksal içeriği ise hiçbir şekilde değişmez. Bu dönüşüm hızlı, güvenli ve tamamen kayıpsızdır.

XML 1.0 belirtimi (W3C Önerisi, beşinci sürüm), her açılış etiketinin eşleşen bir kapanış etiketine sahip olması veya kendi kendini kapatması gerektiğini, özniteliklerin tırnak içinde belirtilmesi gerektiğini ve beş karakterin (<, >, &, ", ') varlık kaçışı gerektirdiğini tanımlayan katı bir dilbilgisi ortaya koyar. Bir biçimlendirici, belgenin bilgi kümesini (infoset) değiştirmeyen yalnızca anlamsız boşluk eklerken bu kurallara uymak zorundadır. Bu kuralların doğru anlaşılması, biçimlendirilmiş XML'in geçerli kalmasını ve tüm uyumlu XML işlemcileri tarafından sorunsuz işlenebilmesini garanti eder.

Biçimlendirilmiş XML, kod incelemesinde okunması daha kolay, sürüm kontrolünde fark alınması daha kolay ve bir hizmet beklenmedik veri döndürdüğünde hata ayıklanması daha kolaydır. Biçimlendirme işleminin kendisi kayıpsızdır: belgenin mantıksal içeriği aynı kalır, yalnızca sunum değişir. git diff ve pull request inceleme platformları gibi araçlar yalnızca değiştirilen satırları gösterir — tutarlı biçimde girintilenen XML, bu farkların gerçek değişiklikleri yansıtmasını sağlar, yeniden biçimlendirme gürültüsünü değil. Ortak bir biçimlendirme standardını benimseyen ekipler, belge yapısını anlamak için daha az zaman harcar ve gerçek geliştirme çalışmalarına daha fazla odaklanabilir.

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

Neden Çevrimiçi XML Biçimlendirici Kullanmalısınız?

XML'yi elle biçimlendirmek, özellikle derin iç içe geçme veya karışık ad alanları içeren belgeler söz konusu olduğunda hataya açık ve yavaştır. Tarayıcı tabanlı bir biçimlendirici, dosya boyutundan bağımsız olarak bir saniyenin altında biçimlendirilmiş sonuç verir. Masaüstü araçları veya komut satırı yardımcı programlarının aksine, kurulum veya yapılandırma gerektirmez — sayfayı açın ve hemen çalışmaya başlayın.

Anında Güzelleştirme
XML yapıştırın veya yazın; girintili çıktıyı hemen alın. CLI aracının kurulmasını veya bir derleme adımının çalıştırılmasını beklemenize gerek yok.
🔒
Gizlilik Öncelikli İşleme
Tüm ayrıştırma ve biçimlendirme, DOMParser API kullanılarak tarayıcınızda gerçekleşir. XML'niz makinenizi hiç terk etmez ve herhangi bir sunucuya asla gönderilmez.
🎨
Yapılandırılabilir Girinti
Yapılandırma dosyalarını düzenlemek zorunda kalmadan projenizin kodlama standartlarına uymak için 2 boşluk, 4 boşluk veya sekme girintisi arasında seçim yapın.
📋
Hesap veya Kurulum Gerekmez
Sayfayı açın, XML'nizi yapıştırın ve sonucu kopyalayın. Kayıt formu yok, masaüstü yazılımı yok, tarayıcı eklentisi yok.

XML Biçimlendirici Kullanım Senaryoları

Frontend Geliştirme
Bir CMS tarafından döndürülen SVG işaretlemesini veya XHTML parçalarını inceleyin. Ham çıktının biçimlendirilmesi, belirli öznitelikleri ve iç içe geçmiş grupları hızla bulmanızı sağlar.
Backend Mühendisliği
Üçüncü taraf hizmetlerden gelen SOAP yanıtlarını, RSS beslemelerini veya XML-RPC yüklerini hata ayıklayın. Güzelleştirilmiş çıktı, eksik öğeleri veya yanlış ad alanlarını izlemenizi kolaylaştırır.
DevOps ve CI/CD
Girintisiz makine tarafından üretilmiş Maven pom.xml dosyalarını, Ant derleme betiklerini veya .csproj proje dosyalarını okuyun. Farkları temiz tutmak için işlemeden önce bunları biçimlendirin.
QA ve Test
Entegrasyon testlerindeki beklenen ve gerçek XML yüklerini karşılaştırın. Her iki tarafı aynı girinti stiline biçimlendirmek, boşluk farklarından kaynaklanan yanlış negatifleri ortadan kaldırır.
Veri Mühendisliği
Veritabanlarından, ETL işlem hatlarından veya devlet açık veri portallarından yapılan XML dışa aktarmalarını inceleyin. Biçimlendirilmiş XML, bir XSLT dönüşümü veya XPath sorgusu yazmadan önce kayıt yapısını ortaya çıkarır.
XML Öğrenmek
W3C XML derslerini takip eden öğrenciler, iç içe geçme ve öznitelik sözdizimlerinin doğru olduğunu doğrulamak için alıştırma dosyalarını biçimlendiricide yapıştırabilir.

XML Önceden Tanımlanmış Varlık Başvurusu

XML, sözdizimi için beş karakteri ayırmıştır. Bu karakterler düz metin içeriği veya öznitelik değerlerinde yer aldığında önceden tanımlanmış varlık başvurularıyla değiştirilmelidir. Doğru bir biçimlendirici, güzelleştirme sırasında bu varlıkları korur.

KarakterXML'deki RolüVarlık
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

XML Girinti Stilleri Karşılaştırması

XML girintisi için tek bir standart yoktur. Seçim, ekibinizin kurallarına ve işlem hattınızdaki araçlara bağlıdır. İşte en yaygın üç stil.

2 boşluk (önerilen)
Web ile ilgili XML için en yaygın tercih: SVG, XHTML, SOAP, Spring yapılandırması. Derin iç içe geçmiş belgeleri kompakt tutar. Çoğu çevrimiçi biçimlendirici ve IDE'de varsayılan olarak kullanılır.
4 boşluk
Dosyaların nadiren 3-4 iç içe geçme düzeyini aştığı Java ekosistemlerinde (Maven, Ant, Android manifest dosyaları) tercih edilir. Java ve C# kodunun varsayılan girintisiyle örtüşür.
Sekme karakteri
Her geliştiricinin kendi düzenleyicisinde görsel genişliğini ayarlamasına olanak tanır. Eski projelerde ve bazı Microsoft araçlarında (.csproj, .nuspec) yaygındır. Boşluklardan daha küçük dosya boyutları üretir.

Kod Örnekleri: XML'yi Programatik Olarak Biçimlendirme

XML'yi bir betik veya derleme sürecinde biçimlendirmeniz gerektiğinde, her büyük dilin yerleşik veya standart kütüphane seçeneği vardır. Python'da xml.dom.minidom modülü veya lxml kullanılabilir, Java'da javax.xml.transform girinti desteğiyle kullanılabilir ve Node.js'de xmldom veya prettier gibi kütüphaneler mevcuttur. Aşağıda doğrudan kopyalayabileceğiniz çalışan örnekler yer almaktadır.

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

Sıkça Sorulan Sorular

XML biçimlendirmesi belgenin anlamını değiştirir mi?
Hayır. XML biçimlendirmesi yalnızca etiketler arasına anlamsız boşluk ekler veya çıkarır. XML Bilgi Kümesi (infoset) aynı kalır. Bir istisna: şemanız belirli öğelerde xml:space="preserve" kullanıyorsa biçimlendirici bu öğelere dokunmamalıdır; bu araç da buna saygı gösterir.
XML biçimlendirme ile XML doğrulama arasındaki fark nedir?
Biçimlendirme, XML'yi okunabilir kılmak için girinti ve satır sonları ekler. Doğrulama ise belgenin bir şemaya (XSD, DTD veya RelaxNG) uygun olup olmadığını denetler. Bir belge iyi biçimlendirilmiş ama şemasına göre geçersiz olabilir. Okunabilirlik için bu biçimlendiriciyi, şema uyumluluğu için XML Doğrulayıcı aracını kullanın.
Ad alanlarına sahip XML'yi biçimlendirebilir miyim?
Evet. Tarayıcının DOMParser'ı, XML ad alanlarını yerel olarak yönetir. Ad alanı ön ekleri, varsayılan ad alanı bildirimleri (xmlns) ve nitelikli öznitelik adları biçimlendirme sırasında korunur. Biçimlendirici hiçbir ad alanı bağlamasını eklemez, kaldırmaz veya yeniden adlandırmaz.
Tarayıcıda ne kadar büyük bir XML dosyasını biçimlendirebilirim?
Tarayıcı tabanlı biçimlendirme, yaklaşık 10 MB'a kadar olan belgeler için iyi çalışır. Bunun ötesinde DOM ağacı önemli miktarda bellek tüketir ve kullanıcı arayüzü yanıt vermez hale gelebilir. Çok büyük dosyalar için XML'yi akış olarak işleyen xmllint --format gibi bir CLI aracı kullanın.
Biçimlendirilmiş XML'imde neden XML bildirimi ekleniyor?
Bazı biçimlendiriciler, DOM ağacını serileştirirken <?xml version="1.0"?> ekler. Bu bildirim, kodlama UTF-8 olduğunda XML 1.0'da isteğe bağlıdır. İstemiyorsanız çıktının ilk satırını kaldırın. Bildirim, herhangi bir uyumlu XML işlemcisinin ayrıştırmasını etkilemez.
XML biçimlendirme, XML küçültmeyle aynı şey midir?
Bunlar birbirine zıt işlemlerdir. Biçimlendirme, okunabilirliği artırmak için boşluk ekler. Küçültme ise dosya boyutunu azaltmak için gerekli olmayan tüm boşlukları kaldırır. Her iki işlem de XML infoset açısından kayıpsızdır. XML'yi küçültmeniz gerekiyorsa XML Küçültücü aracını kullanın.
XML biçimlendirme ile HTML biçimlendirme arasındaki fark nedir?
XML katıdır: her etiket kapatılmalı, öznitelik değerleri tırnak içinde belirtilmeli ve belgenin tam olarak bir kök öğesi olmalıdır. HTML (özellikle HTML5) daha hoşgörülüdür: isteğe bağlı kapanış etiketleri, tırnaksız öznitelikler ve &lt;br&gt; gibi void öğeler geçerlidir. Bir XML biçimlendirici geçersiz XML'yi reddederken HTML biçimlendirici XML'nin izin vermeyeceği sözdizimini tolere eder.