Типы данных XSD: строка, число, дата и логическое значение
XSDHub · 4 ноября 2026 года
Причина и контекст
Тип элемента определяет множество допустимых значений и их лексическую запись. XML хранит текст, но XSD может интерпретировать этот текст как число, дату или логическое значение. Поэтому отсутствие ошибок разметки не гарантирует, что содержимое поля соответствует контракту. Проверка типа выполняется при сопоставлении с XSD.
Что проверить в документе
Для xs:decimal десятичную часть отделяют точкой. В схеме примера amount имеет именно этот тип: 12.50 проходит проверку, а 12,50 отклоняется. Использование привычного пользователю разделителя не меняет правило XML Schema. Преобразуйте значение на этапе формирования документа, сохраняя нужную точность и не добавляя разделители тысяч.
Разбор примера
Тип xs:integer допускает целые значения, а xs:positiveInteger дополнительно требует число больше нуля. Тип xs:string не накладывает числовых ограничений и подходит для идентификаторов, у которых ведущие нули значимы. Банковский или товарный код не следует объявлять числом только потому, что он состоит из цифр.
Как найти источник ошибки
Для xs:boolean допустимы true, false, 1 и 0. Русские слова «да» и «нет» не являются его стандартными лексическими формами. Тип xs:date использует запись года, месяца и дня в установленном порядке, например 2026-11-04; это не произвольная дата в региональном формате. Временная зона и конкретные ограничения зависят от типа и схемы.
Особые случаи
Пользовательский simpleType может дополнительно ограничить встроенный тип перечислением, шаблоном, длиной или диапазоном. Сообщение об ошибке иногда указывает именно на такое ограничение, хотя базовый тип кажется подходящим. Откройте объявление поля и проверьте всю цепочку ограничений, а не только знакомое название decimal или string.
Порядок исправления
Повторите проверку двух примеров с полной схемой и измените только запятую на точку. Затем протестируйте реальные граничные значения из документации получателя. Валидность decimal не подтверждает денежный масштаб, валюту или арифметику итогов: эти требования должны быть отдельно описаны типом, правилом или бизнес-проверкой.
Воспроизведите результат
Открыть инструмент для этих примеров. Сначала проверьте вариант с ошибкой, затем исправленный документ. Вставьте приведённую XSD в поле схемы.
Полная учебная схема XSD 1.0
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="amount" type="xs:decimal"/></xs:schema>XML с ошибкой — ожидается отказ
<amount>12,50</amount>Исправленный XML — ожидается успех
<amount>12.50</amount>