Formatowanie XML

Dodaj wcięcia lub zminifikuj dokument XML bez zmiany jego treści, w całości w przeglądarce.

Działa w całości w twojej przeglądarce. Nic nie jest wysyłane, logowane ani przechowywane.

Wklej dokument XML i przeczytaj go. Z wcięciami albo z powrotem w jednym wierszu, i bez żadnych innych zmian, bo w XML-u prawie wszystko, co formater chciałby uporządkować, to dane.

Jak to działa

Formater HTML może swobodnie dodawać wcięcia między elementami blokowymi, bo przeglądarka nie wyświetla tam żadnych białych znaków. XML nie ma elementów blokowych ani liniowych. Nie wie, co oznacza którykolwiek z twoich elementów, a białe znaki wewnątrz elementu zawierającego tekst są częścią tego tekstu.

Dlatego reguła jest tu wąska i to ona stanowi całe narzędzie: element dostaje nowe wcięcia tylko wtedy, gdy zawiera inny element i żadnego własnego tekstu. Wszystko inne — tekst, zawartość mieszana, CDATA, liść zawierający same białe znaki, element oznaczony xml:space="preserve" — wraca bajt w bajt.

Wewnątrz znacznika otwierającego białe znaki nigdy nie są danymi, więc ciągi spacji między atrybutami są redukowane do jednej. To, co jest w cudzysłowach, pozostaje bez zmian. Atrybuty nie zmieniają kolejności, nazw ani cudzysłowów.

Zanim cokolwiek z tego nastąpi, znaczniki muszą być zrównoważone. Dokument, którego znacznik zamykający nie pasuje albo który otwiera element i nigdy go nie zamyka, zostaje odrzucony, a nie uporządkowany: formater, który dodaje wcięcia do zepsutych znaczników, zwraca coś, co wygląda poprawnie, a jest błędne w nowy sposób.

Przykłady

Przypadek Dane wejściowe Wynik
Zawartość mieszana zostaje dokładnie taka, jaka była <p>Paper <em>and</em> cloth.</p> <p>Paper <em>and</em> cloth.</p>
Liść zawierający spacje zachowuje je <value> </value> <value> </value>
Atrybuty zostają rozdzielone jedną spacją <a b="1" c="2"/> <a b="1" c="2"/>

Najczęściej zadawane pytania

Dlaczego dokument wrócił w jednym wierszu?

Ponieważ jego element główny zawiera oprócz elementów także tekst. To zawartość mieszana, a białe znaki w niej są danymi: dodanie wcięć wstawiłoby znaki, których twój dokument nie miał. Formater działa — po prostu odmawia edytowania treści tylko po to, żeby ładniej wyglądała.

Czy sprawdza mój XML względem schematu?

Nie. Sprawdza, czy znaczniki są zrównoważone — tylko tego potrzebuje, żeby dodać wcięcia — i nic więcej. Aby sprawdzić dokument względem XSD, użyj walidatora XML.

Czy cokolwiek opuszcza moją przeglądarkę?

Nie. Formater to JavaScript działający na twoim urządzeniu; dokument nigdy nie jest nigdzie wysyłany, co jest jedynym rozsądnym rozwiązaniem dla pliku, który wklejasz tylko po to, by zmienić w nim białe znaki.

Dlaczego moje atrybuty nie są w osobnych wierszach?

Ponieważ znacznik otwierający nie ma zagnieżdżenia do pokazania. Dzielenie go na kilka wierszy to kwestia gustu, a nie struktury, a ten formater robi tylko to, co ma jedną poprawną odpowiedź.

Co usuwa tryb „w jednym wierszu”?

Tylko białe znaki między elementami, w tych samych miejscach, w których dodałyby je wcięcia. Tekst, CDATA i komentarze pozostają nietknięte, więc dokument mówi dokładnie to samo co wcześniej.

Warto wiedzieć

  • Przebieg formatujący, nie parser. Przestrzenie nazw nie są rozwiązywane, encje nie są rozwijane, żadna wartość nie jest normalizowana i nic nie jest sprawdzane względem schematu.
  • Kodowanie jest takie, jakiego używa twoja przeglądarka. Deklaracja na początku dokumentu jest przenoszona bez zmian, cokolwiek mówi.

Wszystkie narzędzia z kategorii Kod