Генератор XSD из XML
Построение схемы XSD по примеру XML: типы значений, атрибуты, необязательные и повторяющиеся элементы, пространство имён.
Данные обрабатываются в браузере и никуда не отправляются
Ввод
Результат
Здесь появится результат
Введите данные слева - результат появится сразу
Как пользоваться
Вставьте пример XML - схема XSD появляется сразу. Типы значений определяются по содержимому (целые, дробные, логические, даты и время), атрибуты получают use="required", если есть у всех экземпляров, а элементы, которые встречаются не везде или повторяются, получают minOccurs и maxOccurs. Выберите стиль: «Вложенный» (типы описаны прямо внутри элементов) или «Именованные типы» (каждый сложный тип вынесен отдельно и может использоваться повторно).
Схема выводится из того, что есть в примере. Вставляйте несколько экземпляров повторяющихся элементов, в том числе с пропущенными полями, - тогда схема отличит обязательное от необязательного. Результат можно сразу проверить валидатором XML по XSD на этом сайте.
Частые ошибки
Вот на чём чаще всего «ломаются» схемы, построенные из примера:
Один экземпляр - всё обязательно
Если элемент в примере встречается один раз, схема считает его обязательным и неповторяющимся. Добавьте повторы и пропуски, чтобы схема отражала реальные данные.
Порядок элементов
xs:sequence требует именно такой порядок элементов, как в примере. Если в разных экземплярах порядок разный, инструмент использует xs:choice, который принимает любой порядок, и предупреждает об этом.
Пустые значения и типы
Если в части экземпляров элемент пуст, числовой тип для него невозможен - выбирается xs:string. Заполните пример реальными значениями во всех экземплярах.
Ведущие нули
Значения вроде 007 или 0791234 остаются строками: тип xs:integer потерял бы нули. Идентификаторы и телефоны почти всегда должны быть строками.
Пространство имён
Если у корня задан xmlns, схема получает targetNamespace и elementFormDefault="qualified". Схема поддерживает одно пространство имён: элементы и атрибуты из других (например, xsi:) описываются без них, о чём приходит предупреждение.
Смешанное содержимое
Если рядом с вложенными элементами есть текст (как в XHTML), у типа ставится mixed="true". Вложенные элементы при этом тоже описываются, но порядок текста и элементов схема не фиксирует.
Частые вопросы
Отправляются ли мои данные на сервер?
Нет - 100%. Сайт целиком статический, у него нет серверной части. Разбор и построение выполняются в вашем браузере, образцы данных никуда не передаются.
Какой стиль схемы выбрать?
«Вложенный» (Russian doll) проще читать: всё описано в одном месте. «Именованные типы» (Venetian blind) удобнее, если один и тот же тип нужно использовать в нескольких местах или расширять. Для проверки документов они равноценны.
Какую версию XSD создаёт инструмент?
XSD 1.0 с пространством имён http://www.w3.org/2001/XMLSchema - тот, что понимают все валидаторы, в том числе валидатор XML по XSD на этом сайте.
Почему вместо xs:int получился xs:string?
Тип определяется по всем значениям элемента во всех экземплярах. Если хотя бы одно значение не подходит (пусто, с ведущим нулём, с буквой), выбирается xs:string - это безопасный тип для любых данных.
Можно ли доработать схему вручную?
Да, это заготовка: добавьте ограничения (xs:restriction), перечисления (xs:enumeration), значения по умолчанию и документацию (xs:annotation) и проверьте результат на этом же сайте.
Как проверить полученную схему?
Откройте валидатор XML по XSD: вставьте тот же пример XML и построенную схему. Пример должен пройти проверку, а документ с неправильными значениями - нет.
Похожие инструменты
Курс «Проектирование API и интеграций»
Глубокое погружение в REST, gRPC, SOAP, проектирование баз данных и брокеры сообщений (Kafka, RabbitMQ). Делегирование рутины нейросетям (ИИ). Перестанете бояться технических собеседований и начнете говорить с разработчиками на одном языке. Курс собран так, чтобы пробить зарплатный потолок и вырасти в грейде - ученики тому подтверждение.
Перейти к курсу на Stepik