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 &lt; i &amp;. 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.

← Powrot do wszystkich narzedzi