Walidator XML / XSD
Po stronie serweraPrzykłady
Wynik walidacji
Schemat XSD
Dokument XML
Szczegóły techniczne
Jak działa walidator XML / XSD
Co robi narzędzie
Ten walidator XML XSD sprawdza dokumenty XML względem definicji XML Schema przy użyciu przetwarzania po stronie serwera. Narzędzie waliduje strukturę, typy danych, kolejność elementów oraz wymagania dotyczące atrybutów zdefiniowane w schemacie. Gdy walidacja się nie powiedzie, zgłasza konkretne błędy wraz z numerami linii i kolumn, jeśli są dostępne. Walidator obsługuje przestrzenie nazw, typy złożone, ograniczenia sekwencji oraz facetty schematu, takie jak dopasowanie do wzorca i ograniczenia wartości.
Przykład: walidacja katalogu książek
Rozważ ten schemat XSD wymagający, aby książki miały całkowite identyfikatory i ceny dziesiętne:
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>Nieprawidłowy XML, taki jak <book id="abc"><price>not-a-number</price></book>nie przeszedłby walidacji z błędami ograniczeń typów zarówno dla atrybutu ID, jak i elementu price.
Typowe zastosowania
Programiści używają walidacji XML Schema podczas integracji z API SOAP, walidacji plików konfiguracyjnych lub przetwarzania formatów wymiany danych. Typowe scenariusze obejmują walidowanie odpowiedzi API względem opublikowanych schematów, sprawdzanie plików konfiguracyjnych przed wdrożeniem oraz zapewnianie jakości danych w potokach ETL. Walidator jest szczególnie przydatny do wychwytywania niezgodności typów, brakujących wymaganych elementów oraz nieprawidłowej kolejności elementów, zanim dane trafią do systemów produkcyjnych.
Silnik walidacji i ograniczenia
To narzędzie używa libxml2 poprzez powiązanie libxmljs dla Node.js, zapewniając zgodność z XML Schema 1.0. Walidator przetwarza schematy w całości po stronie serwera ze względów bezpieczeństwa i nie pobiera zasobów zewnętrznych ani nie rozwiązuje importów opartych o sieć. Przetwarzanie encji zewnętrznych (XXE) jest wyłączone dla bezpieczeństwa. Include i import schematu działają tylko wtedy, gdy wszystkie schematy, do których się odwołują, są dostarczone w głównej treści XSD.
- Dostęp do sieci:Zablokowany ze względów bezpieczeństwa
- Importy schematu:Muszą być inline, bez zewnętrznego rozwiązywania
- Encje zewnętrzne:Wyłączone (ochrona XXE)
- Limity przetwarzania:Obowiązują rozsądne limity rozmiaru
Przetwarzanie po stronie serwera vs po stronie klienta
Sprawdzanie poprawności składniowej XML po stronie klienta wystarcza do podstawowej walidacji składni. Jednak walidacja XSD wymaga wyspecjalizowanego silnika, ponieważ przeglądarki nie zawierają procesorów XML Schema. Walidacja po stronie serwera zapewnia spójne wyniki, obsługuje złożone funkcje schematu, takie jak dziedziczenie i importy, oraz zapewnia izolację bezpieczeństwa od potencjalnie złośliwej zawartości XML.