Parser XML
XML (Extensible Markup Language) to język znaczników do kodowania danych strukturalnych. Choć JSON zastąpił XML w wielu API webowych, XML pozostaje niezbędny w systemach korporacyjnych, usługach webowych SOAP i plikach konfiguracyjnych. To narzędzie parsuje i formatuje XML z prawidłowymi wcięciami.
Specyfikacje
Typowe zastosowania
- Formatowanie żądań i odpowiedzi API SOAP
- Odczytywanie i walidacja plików Maven pom.xml
- Parsowanie zawartości kanałów RSS i Atom
- Debugowanie plików XML układu Android
- Przetwarzanie plików graficznych SVG
- Inspekcja plików konfiguracyjnych .NET (web.config, app.config)
Funkcje
- Formatowanie z prawidłowymi wcięciami
- Zachowanie przestrzeni nazw i prefiksów
- Obsługa sekcji CDATA i instrukcji przetwarzania
- Wyświetlanie atrybutów obok elementów
- Konwersja do JSON dla łatwiejszego przetwarzania programowego
- Walidacja poprawnie sformatowanej struktury XML
Przyklady
Maven POM
Wypróbuj →Model obiektu projektu Maven definiujący zależności.
<?xml version="1.0" encoding="UTF-8"?>
<project>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
</dependencies>
</project>Wskazowki
- XML rozróżnia wielkość liter. <User> i <user> to różne elementy.
- Wszystkie elementy muszą być prawidłowo zamknięte. Używaj <br/> dla samozamykających się tagów.
- Wartości atrybutów muszą być w cudzysłowach (pojedynczych lub podwójnych).
- Używaj sekcji CDATA dla zawartości zawierającej znaki < lub &.
Zrozumienie Parser XML
XML (Extensible Markup Language) to standard W3C do kodowania danych strukturalnych w formacie czytelnym zarówno dla ludzi, jak i dla maszyn. W przeciwieństwie do HTML, który ma stały zestaw tagów, XML pozwala definiować własne elementy i atrybuty, czyniąc go metajęzykiem do tworzenia języków znaczników specyficznych dla danej dziedziny. Specyfikacja 1.0 została opublikowana w 1998 roku i nadal jest szeroko stosowana.
Cechą wyróżniającą XML jest jego ścisła składnia. Każdy tag otwierający musi mieć tag zamykający (lub być samozamykający). Atrybuty muszą być w cudzysłowach. Elementy muszą być prawidłowo zagnieżdżone. Dokument, który spełnia te zasady, jest "poprawnie sformatowany" (well-formed). Dokument, który dodatkowo jest zgodny ze schematem (DTD, XML Schema lub RELAX NG), jest "poprawny" (valid). Ta ścisłość sprawia, że XML jest niezawodny w wymianie danych między systemami zbudowanymi przy użyciu różnych technologii.
Przestrzenie nazw to mechanizm XML zapobiegający kolizjom nazw elementów. Przestrzeń nazw to URI powiązany z prefiksem (xmlns:soap="..."), zapewniający, że <soap:Envelope> i <html:body> mogą współistnieć w tym samym dokumencie bez niejednoznaczności. Przestrzenie nazw są niezbędne w usługach webowych SOAP, asercjach SAML, grafikach SVG i każdym dokumencie łączącym różne słownictwa.
Choć JSON zastąpił XML w większości API webowych dzięki lżejszej składni, XML pozostaje dominujący w integracji korporacyjnej (SOAP, EDI), formatach dokumentów (DOCX, XLSX, ODF), konfiguracji (Maven pom.xml, .NET web.config, układy Android), syndykacji (RSS, Atom) i grafice wektorowej (SVG). Zrozumienie XML jest niezbędne do pracy z systemami starszego typu, oprogramowaniem korporacyjnym i pipeline'ami przetwarzania dokumentów.
Poprawnie sformatowany XML przestrzega podstawowych zasad składni: prawidłowe zagnieżdżenie, zamknięte tagi, atrybuty w cudzysłowach i pojedynczy element główny. Każdy parser XML może odczytać poprawnie sformatowany XML. Poprawny XML idzie dalej — jest zgodny ze schematem (DTD, XML Schema lub RELAX NG), który definiuje dozwolone elementy i atrybuty, ich kolejność i typy danych. Walidacja jest opcjonalna, ale ważna dla wymiany danych, gdzie obie strony muszą uzgodnić strukturę dokumentu.
Przestrzenie nazw zapobiegają kolizjom nazw elementów poprzez powiązanie elementów z URI. Przestrzeń nazw jest deklarowana jako xmlns:prefix="URI", a następnie używana jako prefiks elementów (<prefix:element>). Domyślna przestrzeń nazw (xmlns="URI" bez prefiksu) odnosi się do elementu i jego niekwalifikowanych potomków. URI nie musi wskazywać na rzeczywisty zasób — służy jedynie jako unikalny identyfikator. Sekcje CDATA (<![CDATA[ ... ]]>) pozwalają na włączenie zawartości zawierającej znaki takie jak < i & bez konieczności ich eskejpowania jako < i &. Jest to przydatne do osadzania JavaScript, zapytań SQL lub fragmentów HTML wewnątrz elementów XML.
XML oferuje kilka funkcji, których brakuje w JSON: przestrzenie nazw do łączenia słownictw, schematy do formalnej walidacji, atrybuty do metadanych obok zawartości elementów, instrukcje przetwarzania, zawartość mieszana (tekst przeplatany z elementami) i XSLT do deklaratywnej transformacji. XML jest lepszym wyborem dla danych zorientowanych na dokumenty, złożonych integracji korporacyjnych i scenariuszy wymagających formalnych kontraktów między systemami. JSON jest lepiej dostosowany do prostej wymiany danych w aplikacjach webowych, gdzie jego lżejsza składnia i uniwersalne wsparcie narzędzi są ważniejsze niż bogactwo strukturalne XML.