Валидатор XSD
Даже правильно сформированный XML-документ может содержать ошибки: отсутствие обязательного элемента, использование неподходящего типа данных для атрибута или неправильный порядок элементов. Схема XML (XSD) точно определяет требуемый формат документа. Данный валидатор сопоставляет ваш XML-файл с соответствующей XSD-схемой, запускает валидатор XML-схемы W3C и указывает каждое нарушение, приведя номер строки, имя элемента и конкретное нарушённое ограничение.
Как проверить корректность XML по сравнению с XSD
-
1
Вставьте оба файла
С одной стороны, XML, с другой, схема XSD; несколько схем можно объединить в единый файл.
-
2
Проведение проверки
Парсер сопоставляет элементы, атрибуты и типы с декларациями схемы.
-
3
Проверка ошибок
Каждое нарушение содержит информацию о пути элемента, ожидаемых ограничениях и фактическом значении.
-
4
Исправьте и повторно проверьте
Изменения внесены непосредственно в систему, запустите процесс заново без перезагрузки.
Что проверяет XSD
- Имена элементов и кардинальность: обязательные, необязательные, минимальное/максимальное число вхождений.
- Порядок элементов: последовательность, выбор, все.
- Наличие и тип атрибута: обязательный или необязательный, значения по умолчанию, фиксированные значения.
- Типы данных:
xs:string,xs:integer,xs:decimal,xs:dateTime,xs:boolean,xs:anyURI, пользовательский тип. - Ограничения: минимальная/максимальная длина, перечисления, регулярные выражения, минимальные/максимальные значения.
- Ссылочная целостность:
xs:key,xs:keyref,xs:uniqueдля ограничений между элементами.
Типичные ошибки
| Ошибка | Ограничение XSD |
|---|---|
Отсутствует обязательный элемент <email> |
minOccurs="1" |
Слишком много элементов <phone> |
Превышено maxOccurs="2" |
| Значение «abc» не является допустимым целым числом | type="xs:integer" |
| Значение «[email protected]» не соответствует шаблону | xs:pattern для xs:string |
| Элементы в неверном порядке | xs:sequence |
Неизвестный элемент <foo> |
Не объявлен в схеме |
| Дублирующийся ключ | Нарушение xs:unique |
Выбор между XSD и альтернативами
- XSD: стандарт W3C, подробный, мощный и широко поддерживаемый; основной выбор для корпоративного использования XML.
- RELAX NG: более простой синтаксис, не менее выразительный; широко используется в форматах документации (DocBook, TEI).
- Schematron: инструмент на основе правил, который выполняет проверку с использованием XPath-условий в отношении документа; подходит для бизнес-правил, выходящих за рамки структурных требований.
- DTD: более устаревший формат со значительно меньшей выразительностью; используется для обеспечения исторической совместимости с HTML.
Многие проекты используют XSD для определения структуры данных и Schematron для реализации сложных правил, охватывающих несколько областей.
Распространенные ошибки
- Пространства имён должны совпадать. Если в документе XSD указано пространство имён
targetNamespace="http://example.com", но в XML-документе оно не используется, проверка завершается с ошибкой «Ни одной декларации не найдено». - xs:anyType не является «магическим способом уклонения». Он подходит к любым данным, но не предоставляет никакой проверки их достоверности.
- Значения по умолчанию применяются только в случае отсутствия атрибута. Явное пустое значение (
attr="") не получает значения по умолчанию. - Обработка пробелов различается в зависимости от типа:
xs:stringсохраняет пробелы,xs:tokenсжимает их, аxs:normalizedStringзаменяет табуляции и новые строки на пробелы.
Процесс отладки
- Сначала проверьте корректность формата данных (проверка правильности структуры); устраните все ошибки парсинга.
- Затем проверьте соответствие схеме.
- Сосредоточьтесь на первой ошибке. Валидаторы XSD иногда передают ошибки последовательно; первая из них, как правило, является наиболее значимой и требует немедленного решения.
- Используйте XPath для поиска проблемного элемента в крупных документах.
Часто задаваемые вопросы
Нет. Вставьте их отдельно или используйте схему по коду xsi:schemaLocation в XML-файле; большинство инструментов поддерживают оба подхода.
Да. Когда в системе используются элементы из разных именных пространств, каждому из них требуется собственная схема. Проставьте все элементы, валидатор автоматически загрузит их все.
XSD 1.0. Используемый движок libxml не реализует XSD 1.1, поэтому специфичные для 1.1 возможности, такие как утверждения, условные типы и открытый контент, не применяются.
Нет. Ваш XML и схема отправляются на сервер только для выполнения проверки в рамках этого единственного запроса; после этого они не хранятся и не записываются в журнал.
Сопутствующие инструменты
Смешивание цветов
Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Генератор бейджей README
Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.
Генератор случайных адресов
Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.
Конвертер из формата HEX в ASCII
Преобразует последовательности шестнадцатеричных байтов в текст в формате ASCII. Отлично подходит для отладки протоколов, обратного инженеринга и решений задач типа CTF.
Инструмент доступен на других языках
- XSD 검증기 [KO]
- XSD-validerare [SV]
- XSD-validator [NL]
- เครื่องตรวจสอบความถูกต้องของ XSD (XSD Validator) [TH]
- مُحقق تنسيق XSD [AR]
- Bộ xác thực XSD [VI]
- XSD-Validator [DE]
- Validateur XSD [FR]
- Validator XSD [ID]
- Validador XSD [ES]
- Walidator XSD [PL]
- XSDバリデーター [JA]
- Validador XSD [PT]
- XSD Doğrulayıcı [TR]
- XSD 校验工具 [ZH]
- XSD Validator [EN]
- Validator XSD [IT]