Типи даних XSD: десяткові числа, дати й обмеження

XSDHub · 4 листопада 2026 року

Що означає проблема

Текстове значення в XML стає числом або датою лише в контексті правил формату. XSD задає тип і дозволені лексичні форми. Наприклад, xs:decimal використовує крапку як десятковий роздільник незалежно від регіональних налаштувань комп’ютера. Експорт із таблиці з українським відображенням чисел тому потребує окремого налаштування серіалізації.

З чого почати перевірку

Схема прикладу оголошує amount як xs:decimal. Значення 12,50 не відповідає цьому типу, хоча користувач легко прочитає його як грошову суму. Виправлений документ містить 12.50. Обидва XML мають правильні теги, тож синтаксична перевірка їх прийме; відмінність з’явиться лише після підключення XSD у режимі перевірки за схемою.

Як працює приклад

Не використовуйте експоненційний запис для xs:decimal. Типи xs:float і xs:double мають інші лексичні правила й особливості представлення, тому їх не варто взаємозамінювати без специфікації. Для кількості xs:positiveInteger виключає нуль, а xs:nonNegativeInteger його дозволяє. Зіставляйте обране значення саме з оголошеним типом, а не із загальним уявленням про число.

На що звернути увагу

Похідний тип може додатково обмежувати діапазон, кількість цифр, довжину або перелік допустимих значень. Наприклад, відповідність базовому decimal ще не означає відповідності minInclusive чи fractionDigits. Обмеження fractionDigits визначає допустиму точність значення; воно не вимагає обов’язкового друку нулів у кінці. Правила відображення суми потрібно відрізняти від правил її значення.

Як застосувати виправлення

Дати також мають визначені форми, зокрема рік-місяць-день для xs:date, а не довільний локальний запис. Після кожного виправлення перевірте, чи зберігся початковий зміст: заміна коми в назві або ідентифікаторі може пошкодити дані. Налаштуйте типізований експорт у джерелі та повторіть перевірку з повною схемою потрібної версії.

Перевірте приклади самостійно

Відкрити безкоштовний інструмент. Порівняйте помилковий і виправлений документи. Вставте повну 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>

Першоджерело

Специфікація W3C (English)

English · Русский