O tym narzędziu
Formatowanie XML wcina zagnieżdżone elementy, dzięki czemu hierarchia dokumentu staje się widoczna. Kompaktowy XML — wszystko w jednej linii — jest technicznie poprawny i przydatny do transmisji, ale jest nieczytelny dla ludzi. Sformatowany XML dodaje podziały wierszy między elementami i wcięcia dzieci wewnątrz ich rodziców, dzięki czemu można je skanować, różnicować i edytować ręcznie.
Ten program formatujący analizuje dane wejściowe za pomocą DOMParsera, aby potwierdzić ich poprawność, a następnie przegląda wynikowy model DOM, aby wyemitować wcięte dane wyjściowe. Komentarze, instrukcje przetwarzania i sekcje CDATA zostają zachowane. Tagi samozamykające się (te bez dzieci) są zwarte w jednej linii; Tagi z dziećmi są rozmieszczone w wielu liniach z wcięciem dzieci.
Wcięcie składające się z dwóch spacji jest ustawieniem domyślnym, zgodnym z najpopularniejszą konwencją XML. Program formatujący jest konserwatywny w kwestii ponownego formatowania: istniejąca struktura zostaje zachowana, zmieniają się jedynie białe znaki między elementami. Dane przesyłane są w obie strony przez dowolny analizator składni XML w identyczny sposób przed i po formatowaniu.
Po co formatować XML
Kompaktowy XML jest nieczytelny. Odpowiedzi SOAP, kanały RSS i wiele plików konfiguracyjnych są dostarczane w postaci jednowierszowego kodu XML, który jest technicznie prawidłowy, ale praktycznie nieprzejrzysty. Formatowanie ujawnia strukturę dokumentu, pozwala zlokalizować określone elementy i sprawia, że różnice w kontroli wersji stają się znaczące.
Formatowanie służy również jako kontrola ważności. Jeśli podczas formatowania plik XML nie zostanie przeanalizowany, komunikat o błędzie identyfikuje problem — zazwyczaj są to niezamknięte tagi, niedopasowane nazwy elementów lub nieprawidłowe znaki. Wychwytywanie błędów XML przed wysłaniem do rygorystycznego konsumenta oszczędza czas debugowania.
Szczegóły techniczne
DOMParser tworzy DOM XML. Program formatujący porusza się najpierw po drzewie, emitując znaczniki otwierające, elementy podrzędne z wcięciami i znaczniki zamykające. Atrybuty elementu są zachowywane w znaczniku otwierającym; kolejność atrybutów jest zgodna ze źródłem.
Znaczące białe znaki wewnątrz węzłów tekstowych zostają zachowane — program formatujący nie może bezpiecznie zmienić białych znaków w treści, ponieważ może to mieć znaczenie (reguły zachowania przestrzeni XML różnią się w zależności od schematu). Zmieniają się tylko odstępy między elementami.
Elementy samozamykające się (bez dzieci) emitują jako <tag attr="val"/>. Elementy zawierające wyłącznie treść tekstową emitują jako <tag>text</tag>. Elementy z elementami potomnymi emitują w wielu liniach z wciętymi elementami potomnymi. Sekcje CDATA, komentarze i instrukcje przetwarzania są emitowane z oryginalnymi ogranicznikami i treścią.
Często zadawane pytania
- Jakie błędy XML to wykrywa?
- Narzędzie wykrywa niezamknięte tagi, niedopasowane tagi otwierające/zamykające, nieprawidłowe odniesienia do znaków, brakujące elementy główne, zniekształcone atrybuty i problemy z kodowaniem. Komunikaty o błędach zawierają numery wierszy, które pomagają zlokalizować problemy.
- Czy formatowanie zmienia zawartość XML?
- Formatowanie dostosowuje tylko białe znaki i wcięcia między elementami. Treść elementu, atrybuty, sekcje CDATA i instrukcje przetwarzania są zachowywane dokładnie tak, jak zostały wprowadzone.
- Czy obsługuje duże pliki XML?
- Narzędzie obsługuje w przeglądarce pliki o wielkości do kilku megabajtów. W przypadku bardzo dużych dokumentów XML (50 MB i więcej) rozważ użycie narzędzi wiersza poleceń, takich jak xmllint, aby uzyskać lepszą wydajność.
- Czy obsługuje przestrzenie nazw XML?
- Tak. Program formatujący poprawnie obsługuje deklaracje przestrzeni nazw (xmlns), elementy z prefiksami i domyślne przestrzenie nazw. Przestrzenie nazw są zachowywane w sformatowanym wyjściu.
- Czy przestrzenie nazw są zachowane?
- Tak. Atrybuty xmlns i xmlns:prefix są zachowywane w elementach, w których występują w źródle.
- Czy mogę zminimalizować XML do jednej linii?
- Niektóre formatery XML oferują minifikację. To narzędzie koncentruje się na formatowaniu; zminimalizowany kod XML można utworzyć poprzez usunięcie białych znaków między elementami za pomocą wyrażenia regularnego lub dedykowanego narzędzia.
- Czy mój plik XML został przesłany na serwer?
- Nie. DOMParser działa w Twojej przeglądarce; program formatujący działa w Twojej przeglądarce.
- Czy białe znaki w węzłach tekstowych ulegną zmianie?
- Nie. Białe znaki węzła tekstowego są zachowywane, ponieważ reguły XML dotyczące zachowania miejsca różnią się w zależności od schematu. Formater zmienia tylko białe znaki między elementami.