Przejdź do treści

Formater i walidator XML

Wklej XML, aby wciąć go na 2 spacje, 4 spacje lub tabulatory, zmieścić w jednym wierszu albo dowiedzieć się, dlaczego się nie analizuje. Poprawnie sformułowany XML wraca z liczbą elementów, głębokością zagnieżdżenia i rozmiarem; błędny XML wraca z komunikatem parsera. Za darmo, bez rejestracji, a XML nigdy nie opuszcza Twojej przeglądarki.

Tryb

Jak korzystać z formatera XML

  1. 1. Wybierz tryb. Formatuj wcina kod; Minifikuj usuwa białe znaki między elementami.
  2. 2. Wybierz wcięcie. Przy formatowaniu wybierz 2 spacje, 4 spacje lub tabulator.
  3. 3. Wklej XML i naciśnij przycisk. Wynik pojawi się poniżej z trzema liczbami: elementami, maksymalną głębokością (korzeń to poziom 1) i rozmiarem wyniku w znakach.
  4. 4. Popraw błędy, jeśli się pojawią. Jeśli XML nie jest poprawnie sformułowany, nic nie zostanie wygenerowane, a parser przeglądarki opisze, co znalazł. Popraw XML i naciśnij przycisk ponownie.

Poprawnie sformułowany a poprawny

Dwie różne rzeczy bywają nazywane „walidacją” XML. Dokument jest poprawnie sformułowany, jeśli przestrzega reguł składni Zalecenia XML 1.0 W3C; jest poprawny, jeśli dodatkowo spełnia schemat, taki jak DTD lub XSD. To narzędzie sprawdza wyłącznie poprawność składni, korzystając z parsera XML wbudowanego w przeglądarkę. Nie czyta DTD ani schematów, więc dokument poprawnie sformułowany, ale niewłaściwy dla Twojej aplikacji — na przykład z brakującym wymaganym elementem — przechodzi. Narzędzie egzekwuje te reguły:

RegułaZostaje złamana, gdy
Jeden element głównySą dwa elementy najwyższego poziomu albo tekst przed elementem głównym
Elementy są poprawnie zagnieżdżone<a><b></a></b>
Każdy znacznik otwierający ma znacznik zamykający<a><b></a> albo <br> zamiast <br/>
Nazwy rozróżniają wielkość liter<Title>…</title>
Wartości atrybutów są w cudzysłowach<a id=1/>
Atrybut nie powtarza się w elemencie<a id="1" id="2"/>
< i & w tekście są zapisane jako encje<a>5 < 6 & 7</a> powinno być 5 &lt; 6 &amp; 7

XML definiuje dokładnie pięć wstępnie zdefiniowanych encji — &lt;, &gt;, &amp;, &apos; i &quot; — więc encja HTML, taka jak &nbsp;, jest błędem, chyba że DTD ją zadeklaruje. Przy niedomkniętym znaczniku komunikat, którego treść zależy od przeglądarki, wskazuje niedopasowaną parę: w Chrome <a><b></a> zgłasza błąd w wierszu 1, w kolumnie 11, z komunikatem „Opening and ending tag mismatch: b line 1 and a”.

Co zmienia formater

Narzędzie analizuje Twój XML do drzewa i zapisuje drzewo z powrotem, więc wynik jest równoważnym XML-em w czytelniejszym układzie, a nie kopią Twojego tekstu. Spodziewaj się takich różnic:

  • Deklaracja i DOCTYPE zachowane. Wiersz <?xml …?> na początku oraz deklaracja <!DOCTYPE …>, łącznie z wewnętrznym podzbiorem, są zapisywane tak, jak je wpisałeś.
  • Atrybuty zachowują kolejność, ale są zapisywane z cudzysłowami podwójnymi.
  • Encje są rozwijane. &apos; i odwołania do znaków, takie jak &#169;, wracają jako same znaki; ponownie jako encje zapisywane są tylko &, < i > w tekście oraz &quot; w atrybutach.
  • Puste elementy zamykają się same. <a></a> staje się <a/>, gdy nie ma treści, choć element zawierający tylko spację pozostaje <a></a>.
  • Komentarze, sekcje CDATA i instrukcje przetwarzania są zachowywane.

Przykład krok po kroku

Ten jednowierszowy dokument ma deklarację, atrybut w pojedynczych cudzysłowach, komentarz i pusty element:

Dane wejściowe

<?xml version="1.0" encoding="UTF-8"?><library><book id='1'><title>APA Manual</title><year>2020</year><!-- note --></book><book id="2"/></library>

Formatowanie, 2 spacje

Dziewięć wierszy i 172 znaki: deklaracja, potem library przy lewym marginesie, każdy book dwie spacje w głąb, a tytuł, rok i komentarz cztery spacje w głąb. Identyfikator pierwszej książki jest teraz zapisany jako id="1".

Minifikacja

Jeden wiersz o długości 146 znaków.

Statystyki

5 elementów i maksymalna głębokość 3 (library, book, title).

Minifikacja zachowuje deklarację i umieszcza całe drzewo w jednym wierszu, więc ten sam dokument kurczy się ze 172 do 146 znaków. Karta „Rozmiar wyniku” pokazuje te liczby znaków.

Którego narzędzia potrzebujesz?

Ta strona dotyczy XML-a. Dla HTML-a, który toleruje niedomknięte znaczniki i zachowuje odstępy w tekście, użyj HTML Formatter. Aby zamienić XML na dane JSON, planowany XML to JSON Converter pokaże, jak atrybuty i powtarzające się elementy się mapują; samego JSON-a użyj Formater JSON.

Najczęstsze pytania

Co robi formater XML?
Ponownie wcina XML, aby było widać zagnieżdżenie, zwykle z jednym elementem w wierszu. Ten też sprawdza, czy XML jest poprawnie sformułowany, bo musi przeanalizować dokument, zanim zapisze go w nowym układzie.
Jak działa tutaj walidacja XML?
Wbudowany w przeglądarkę parser XML czyta tekst. Jeśli XML łamie regułę składni, pokazywany jest błąd parsera i nic nie jest generowane. Sprawdzana jest tylko poprawność składni — narzędzie nie waliduje względem schematu DTD ani XSD.
Czy komentarze, sekcje CDATA i atrybuty są zachowywane?
Tak: komentarze i sekcje CDATA są zapisywane tak, jak były, a atrybuty zachowują kolejność, choć cudzysłowy są ujednolicane do podwójnych. Deklaracja DOCTYPE jest zapisywana tak, jak ją wpisałeś.
Co robi minifikacja?
Usuwa białe znaki i podziały wierszy między elementami, dając najkrótszy równoważny tekst, z zachowaniem deklaracji XML, jeśli występuje. Tekst wewnątrz elementów, takich jak <title>, zachowuje swoje spacje, tak samo jak tekst obok elementów potomnych, na przykład akapit z pogrubionym słowem.
Dlaczego formatowanie zmienia odstępy w moim tekście?
Tylko przy zawartości mieszanej — tekście sąsiadującym z elementami potomnymi, jak akapit z pogrubionym słowem. Formatowanie przycina taki tekst i umieszcza każdy fragment w osobnym wierszu, co zmienia białe znaki; Minifikacja je zachowuje. XML z danymi, w którym elementy zawierają albo tekst, albo inne elementy, nie jest tym dotknięty.
Dlaczego mój XML z &nbsp; się nie udaje?
XML ma tylko pięć wstępnie zdefiniowanych encji, a &nbsp; do nich nie należy. Zastąp je odwołaniem liczbowym &#160; albo zadeklaruj encję w DTD.
Czy mój XML jest wysyłany na serwer?
Nie. Analiza i formatowanie odbywają się w przeglądarce, a nic, co wklejasz, nie jest nigdzie wysyłane.

Powiązane narzędzia

Więcej z kategorii Dane, znaczniki i kod