Частинка xs:any може дозволяти простір імен дитини й водночас вимагати повноцінне оголошення цього елемента. Саме так діє processContents="strict". Слово any не обіцяє прийняти будь-який невідомий вузол без перевірки його типу.
Що повідомлення означає буквально
Xerces зіставив дитину з wildcard, проте не знайшов глобального оголошення mystery. Схема містить known, тому заміна помилкової назви на known робить документ допустимим. Конверт та правила wildcard залишаються незмінними: цей зразок відокремлює пошук оголошення від порядку вмісту.
Три поширені причини для перевірки
У назві розширення є друкарська помилка або відправник застосовує іншу версію словника. Namespace дозволений, але повна назва елемента невідома.
Схема розширення не завантажена до набору схем. Підказка schemaLocation не гарантує, що валідатор отримає відповідний зовнішній файл.
Локальне оголошення всередині іншого типу сприймають як глобальне. Воно саме по собі не створює ціль для глобального пошуку wildcard.
Виправлення та повторна перевірка
Знайдіть xs:any, що приймає цю позицію, і прочитайте namespace разом із processContents. Шукайте оголошення верхнього рівня з тим самим URI та локальною назвою. Якщо розширення передбачене контрактом, завантажте його XSD з усіма залежностями через проєкт. Замість перемикання strict на skip виправте назву або додайте справді відсутнє визначення.
Коли причина у просторі імен
Часто причина полягає в завантаженні словника, а не в необ’явленому префіксі. Префікс прив’язує написання до URI, але не імпортує компоненти схеми. Якщо URI дитини відрізняється від targetNamespace підключеної XSD, потрібне оголошення не знайдеться навіть за наявності всіх файлів.
Як зіставляти звіти рушіїв
Виміряне повідомлення .NET каже, що mystery is not declared, тоді як libxml2 прямо згадує strict wildcard. Відрізняйте цей випадок від cvc-elt.1.a: кореневий envelope уже знайдено, а пошук завершується невдачею лише на вкладеному розширенні. Це визначає, яку частину набору схем перевіряти першою.
Повні перевірені пари XML та XSD
Відкрийте потрібний варіант у редакторі й натисніть Validate XML. Завантаження прикладу не запускає перевірку та не надсилає документи; серверний режим потребує окремої згоди.
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mystery'.
PASS
.NET 8.0.33 · System.Xml.Schema Validation
The 'mystery' element is not declared.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2 Validation
Element 'mystery': No matching global element declaration available, but demanded by the strict wildcard.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0 Validation
element 'mystery' not found
PASS
Saxon
Зіставлення з EE: cvc-complex-type.2.4.c позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.