Валідатор XML / XSD
На серверіЗразки
Результат перевірки
Схема XSD
Документ XML
Технічні деталі
Як працює валідатор XML / XSD
Що робить інструмент
Цей валідатор XML XSD перевіряє XML-документи відповідно до визначень XML Schema за допомогою серверної обробки. Інструмент валідовує структуру, типи даних, порядок елементів і вимоги до атрибутів, визначені у вашій схемі. Якщо валідація не проходить, він повідомляє конкретні помилки з номерами рядків і стовпців, коли це доступно. Валідатор обробляє простори імен, складні типи, обмеження послідовності та фасети схеми, як-от зіставлення за шаблоном і обмеження значень.
Приклад: валідація каталогу книг
Розгляньмо цю XSD-схему, яка вимагає, щоб книги мали цілочисельні ID та десяткові ціни:
<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>Некоректний XML на кшталт <book id="abc"><price>not-a-number</price></book>не пройде валідацію з помилками обмежень типів як для атрибута ID, так і для елемента price.
Поширені сценарії використання
Розробники використовують валідацію XML Schema під час інтеграції з SOAP API, перевірки конфігураційних файлів або обробки форматів обміну даними. Типові сценарії включають валідацію відповідей API за опублікованими схемами, перевірку конфігураційних файлів перед розгортанням і забезпечення якості даних в ETL-пайплайнах. Валідатор особливо корисний для виявлення невідповідностей типів, відсутніх обов’язкових елементів і неправильного порядку елементів до того, як дані потраплять у продакшн-системи.
Рушій валідації та обмеження
Цей інструмент використовує libxml2 через Node.js-біндінг libxmljs, забезпечуючи відповідність XML Schema 1.0. Валідатор обробляє схеми повністю на сервері з міркувань безпеки та не завантажує зовнішні ресурси й не розв’язує імпорти через мережу. Обробку зовнішніх сутностей (XXE) вимкнено для безпеки. Include та import у схемах працюють лише тоді, коли всі посилальні схеми надані в основному вмісті XSD.
- Доступ до мережі:Заблоковано з міркувань безпеки
- Імпорти схем:Мають бути вбудованими, без зовнішнього розв’язання
- Зовнішні сутності:Вимкнено (захист від XXE)
- Ліміти обробки:Застосовуються розумні обмеження розміру
Обробка на стороні сервера vs на стороні клієнта
Перевірок коректності структури XML (well-formedness) на стороні клієнта достатньо для базової валідації синтаксису. Однак для валідації XSD потрібен спеціалізований рушій, оскільки браузери не містять процесорів XML Schema. Валідація на стороні сервера забезпечує узгоджені результати, обробляє складні можливості схем, як-от успадкування та імпорти, і забезпечує ізоляцію безпеки від потенційно шкідливого XML-вмісту.