Пов’язані фасети задають нижню та верхню межі довжини простого типу. Їх зручно діагностувати разом: спочатку з’ясуйте, що саме рахує тип і після якої обробки до його значення застосовується обмеження.
Що повідомлення означає буквально
Мінімальний зразок потребує трьох символів: AB має два, ABC має три. Максимальний допускає п’ять: ABCDEF містить шість, ABCDE — п’ять. Кожна пара має окрему повну схему, тому нижню й верхню межі відтворено незалежно і одна помилка не приховує іншу.
Три поширені причини для перевірки
Експортер обрізав поле, загубив частину ідентифікатора або надіслав закоротку заглушку. Для наведених рядків порожній тег означає порожнє значення.
До поля додано пробіли чи оформлення. Чи збережуться ці символи перед вимірюванням, визначається базовим типом та його whiteSpace.
Застосунок рахує інші одиниці. Довжина рядка, кількість елементів списку та довжина двійкових даних відрізняються; розмір UTF-8 у байтах не є універсальним правилом XSD.
Виправлення та повторна перевірка
Знайдіть restriction, визначте базовий тип та одиниці його довжини. Перевірте успадковані межі поряд із безпосередніми. Запустіть значення точно на межі, нижче й вище через валідатор одержувача. Виправляйте початкове поле або відображення контракту: довільне доповнення ідентифікатора символами заради проходження перевірки може змінити його значення.
Коли причина у просторі імен
Обидві пари вже знаходять правильне оголошення code. Додавання namespace не змінить кількості символів. Простори імен варто підозрювати, якщо інша версія схеми чи неочікуваний тип задає чужі межі. Спочатку встановіть ефективне визначення, а тоді порівнюйте його правила з лічильником інтерфейсу.
Як зіставляти звіти рушіїв
Короткі виправлені рядки демонструють межі та не радять обрізати виробничі дані. Усічення ідентифікаторів може створити збіги, а заповнення назв псує зміст. Збережіть оригінал і з’ясуйте підставу обмеження. Два журнали нижче залишають формулювання довжини саме таким, яким його повернув відповідний рушій.
Повні перевірені пари XML та XSD
Відкрийте потрібний варіант у редакторі й натисніть Validate XML. Завантаження прикладу не запускає перевірку та не надсилає документи; серверний режим потребує окремої згоди.
cvc-minLength-valid: Value 'AB' with length = '2' is not facet-valid with respect to minLength '3' for type '#AnonType_code'.
cvc-type.3.1.3: The value 'AB' of element 'code' is not valid.
PASS
.NET 8.0.33 · System.Xml.Schema Validation
The 'code' element is invalid - The value 'AB' is invalid according to its datatype 'String' - The actual length is less than the MinLength value.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2 Validation
Element 'code': [facet 'minLength'] The value has a length of '2'; this underruns the allowed minimum length of '3'.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0 Validation
value length cannot be lesser than 3
PASS
Saxon
Зіставлення з EE: cvc-minLength-valid позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.
cvc-maxLength-valid: Value 'ABCDEF' with length = '6' is not facet-valid with respect to maxLength '5' for type '#AnonType_code'.
cvc-type.3.1.3: The value 'ABCDEF' of element 'code' is not valid.
PASS
.NET 8.0.33 · System.Xml.Schema Validation
The 'code' element is invalid - The value 'ABCDEF' is invalid according to its datatype 'String' - The actual length is greater than the MaxLength value.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2 Validation
Element 'code': [facet 'maxLength'] The value has a length of '6'; this exceeds the allowed maximum length of '5'.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0 Validation
value length cannot be greater than 5
PASS
Saxon
Зіставлення з EE: cvc-maxLength-valid позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.