DevToys Web Pro iconDevToys Web ProБлог
Оцените нас:
Попробуйте расширение для браузера:

Валидатор XML / XSD

На сервере

Примеры

Результат проверки

Загрузка проверки...

Схема XSD

  • Документ XML

  • Loading editor...
    Loading editor...
    Технические детали

    Как работает валидатор 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, такой как &lt;book id="abc"&gt;&lt;price&gt;not-a-number&lt;/price&gt;&lt;/book&gt;не пройдет валидацию с ошибками ограничений типов как для атрибута ID, так и для элемента price.

    Типичные сценарии использования

    Разработчики используют валидацию XML Schema при интеграции с SOAP API, проверке конфигурационных файлов или обработке форматов обмена данными. Типичные сценарии включают проверку ответов API по опубликованным схемам, проверку конфигурационных файлов перед деплоем и обеспечение качества данных в ETL-конвейерах. Валидатор особенно полезен для выявления несоответствий типов, отсутствующих обязательных элементов и неправильного порядка элементов до того, как данные попадут в продакшен-системы.

    Движок валидации и ограничения

    Этот инструмент использует libxml2 через Node.js-обертку libxmljs, обеспечивая соответствие XML Schema 1.0. Валидатор обрабатывает схемы полностью на сервере в целях безопасности и не загружает внешние ресурсы и не разрешает импорты по сети. Обработка внешних сущностей (XXE) отключена для безопасности. Включения и импорты схем работают только если все ссылочные схемы предоставлены в основном содержимом XSD.

    • Доступ к сети:Заблокирован в целях безопасности
    • Импорты схем:Должны быть встроенными, без внешнего разрешения
    • Внешние сущности:Отключены (защита от XXE)
    • Ограничения обработки:Действуют разумные ограничения по размеру

    Серверная и клиентская обработка

    Проверок корректности XML на стороне клиента достаточно для базовой валидации синтаксиса. Однако для валидации по XSD требуется специализированный движок, поскольку браузеры не включают процессоры XML Schema. Серверная валидация обеспечивает стабильные результаты, поддерживает сложные возможности схемы, такие как наследование и импорты, и обеспечивает изоляцию безопасности от потенциально вредоносного XML-содержимого.