§

Wklej XML

§

Opcje

Tryb
Wcięcie
Deklaracja XML
Samozamykające się puste znaczniki
§

Sformatowane wyjście

xml

Formatowanie XML to codzienny chleb polskiej inżynierii. PKO BP i mBank wciąż utrzymują legacy-endpointy SOAP dla integracji korporacyjnych, a Krajowy System e-Faktur (KSeF) Ministerstwa Finansów wymaga przesyłania e-faktur w postaci podpisanych dokumentów XML zgodnych z FA(2). Jednolity Plik Kontrolny (JPK) — JPK_VAT, JPK_FA, JPK_KR — to XML wymieniany z administracją skarbową, a ZUS akceptuje deklaracje elektroniczne w pliku XML przez Płatnika. NBP publikuje sprawozdawczość XBRL banków komercyjnych w formacie XML, Gazeta Wyborcza i Onet wystawiają kanały RSS, a zespoły fintech rutynowo pretty-printują kanoniczny XML przed weryfikacją XAdES.

Czym jest formatowanie XML?

XML (Extensible Markup Language) to tekstowy format ustandaryzowany przez W3C, używany do dokumentów strukturalnych i wymiany danych. Formatowanie — nazywane też pretty-printingiem lub upiększaniem — bierze poprawnie zbudowane źródło XML i ponownie wcina je tak, aby każdy element, atrybut, komentarz, instrukcja przetwarzania i sekcja CDATA były łatwe do przeglądania. Sparsowane drzewo dokumentu jest zachowywane dokładnie; zmienia się tylko biały znak pomiędzy elementami.

Jak działa formatowanie XML?

Twoje wejście jest przetwarzane w całości w przeglądarce za pomocą natywnych API DOMParser i XMLSerializer oraz niestandardowego rekurencyjnego wcinacza. Główne kroki to:

  1. Wejście jest odczytywane dosłownie z pola tekstowego — każdy bajt, który wkleiłeś, jest trzymany lokalnie w pamięci.
  2. Przeglądarka parsuje je za pomocą new DOMParser().parseFromString(text, 'application/xml'). Jeśli wejście nie jest poprawnie zbudowane, parser osadza węzeł <parsererror>, którego tekstowa zawartość niesie wskazówki silnika dotyczące wiersza i kolumny — pojawiają się one dosłownie w pasku błędów.
  3. Po udanym parsowaniu niestandardowy wcinacz przechodzi drzewo DOM w głąb, emitując każdy element, zestaw atrybutów, sekcję CDATA, komentarz i instrukcję przetwarzania we własnej linii na bieżącej głębokości. Samozamykające się puste znaczniki są honorowane, gdy opcja jest włączona.
  4. Tryb minifikacji odwraca przepływ: XMLSerializer().serializeToString(doc) emituje formę jednoliniową, a następnie ostrożne wyrażenie regularne usuwa biały znak między elementami bez ruszania tekstu wewnątrz bloków CDATA czy niepustych węzłów tekstowych.
  5. Wynik jest zapisywany do pola tekstowego tylko do odczytu, pasek błędów jest czyszczony, a przycisk Pobierz pakuje wynik jako plik .xml, który możesz wysłać lub dołączyć do zgłoszenia.

Dlaczego pretty-printować XML tym narzędziem?

  • Prywatność: każdy przebieg parsowania, formatowania i minifikacji odbywa się w Twojej przeglądarce. XML nigdy nie trafia na nasze serwery — bez uploadu, bez telemetrii, bez konta.
  • Precyzyjne błędy: gdy wejście jest zniekształcone, parser pokazuje dokładny wiersz i kolumnę zgłaszane przez sam silnik przeglądarki, nie syntetyczne zgadywanie — te same liczby, jakie zobaczyłbyś w DevTools.
  • Wierny round-trip: sformatuj, potem zminifikuj — i odzyskujesz bajtowy odpowiednik oryginalnego dokumentu (z dokładnością do opcji deklaracji XML) — formatowanie nigdy nie re-kanonizuje przestrzeni nazw ani nie przepisuje kolejności atrybutów.
  • Szybko: czysty DOMParser plus ~60-linijkowy wcinacz natychmiast obsługują wielomegabajtowe koperty SOAP i fragmenty OOXML, bez zewnętrznej biblioteki do pobrania.

Jakie są typowe zastosowania formatowania XML?

Pretty-print XML pojawia się w publikacji webowej, integracji korporacyjnej i archiwizacji danych:

  • Inspekcja kanałów RSS / Atom: wklej ciało podcastu lub kanału informacyjnego, aby potwierdzić metadane kanału, kolejność elementów i prefiksy przestrzeni nazw przed publikacją.
  • Debugowanie SOAP: sformatuj kopertę skopiowaną z Wiresharka lub logu klienta SOAP, aby sekcje Header, Body i Fault były widoczne od razu.
  • Audyt mapy strony: ponownie wcinaj sitemap.xml pobrany od konkurencji lub z własnego stagingu, aby policzyć wpisy i potwierdzić warianty hreflang per URL.

Jak wygląda przykład formatowania XML?

Wklejenie trzyelementowego <feed><entry><title>Hello</title></entry></feed> i naciśnięcie Formatuj z opcją wcięcia 2 spacji daje czterolinijkowy dokument, w którym każdy element znajduje się we własnej linii z wcięciem według głębokości. Przełączenie na Minifikuj na tym samym wejściu zwija je z powrotem do oryginalnego ciągu bajtów. Round-trip jest bezstratny dla każdego poprawnie zbudowanego dokumentu.

Czy to działa offline?

Tak. Przepływ formatowania i minifikacji to czysty DOMParser + XMLSerializer plus drobny rekurencyjny wcinacz, wszystko działa wewnątrz karty przeglądarki. Nic nie jest wysyłane, żaden service worker nie proxuje Twojego wejścia, a strona wykonuje zero zapytań sieciowych do samego kroku formatowania. Jedyny ruch wychodzący to standardowe zasoby ładowania strony (CSS, czcionki, analityka) — Twój XML nigdy nie trafia do Ultim8Soft.

Czy formatowanie zmienia dokument?

Brak zmian semantycznych. Formatowanie tylko przepisuje biały znak między elementami. Nazwy elementów, wartości atrybutów, treść tekstowa, ładunki CDATA, komentarze i instrukcje przetwarzania są zachowywane bajt po bajcie. Deklaracje przestrzeni nazw i prefiksy pozostają dokładnie takie, jak je zapisało wejście — formater nie re-kanonizuje ani nie przestawia atrybutów. Wyjście parsuje się do tego samego drzewa DOM co wejście, z dokładnością do opcjonalnego przełącznika deklaracji XML.

Jak obsługiwane są CDATA / komentarze / instrukcje przetwarzania?

Każda jest emitowana dosłownie we własnej linii na bieżącej głębokości wcięcia. Ładunki CDATA są opakowane w <![CDATA[…]]> bez ponownego wcinania wewnątrz — specyfikacja mówi, że zawartość CDATA jest nieprzezroczysta, więc formater nigdy jej nie rusza. Komentarze używają <!-- … -->; instrukcje przetwarzania używają <?target data?>. Wszystkie trzy przeżywają round-trip format → minifikacja → format z nienaruszoną zawartością.

Jaka jest różnica między formatowaniem a minifikacją XML?

Formatowanie rozszerza biały znak, aby ludzie mogli czytać drzewo dokumentu; minifikacja usuwa go z powrotem do transportu i przechowywania. Obie operacje działają na sparsowanym DOM, a nie na surowym ciągu bajtów, więc round-trip format → minifikacja na poprawnie zbudowanym dokumencie daje bajtowy odpowiednik oryginalnej formy zminifikowanej. Używaj kierunku formatowania, gdy chcesz czytać lub porównywać ładunek XML, a kierunku minifikacji, gdy chcesz wysłać go przez taryfikowany API gateway lub osadzić w innym dokumencie.

Ten formater XML używa tego samego parsera, którego Twoja przeglądarka używa do odpowiedzi XHR AJAX i dokumentów SVG, więc każdy poprawnie zbudowany XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — round-trip-uje czysto. Wklej dowolny XML powyżej, skopiuj wynik lub pobierz go jako .xml.