Частица xs:any может разрешать пространство имён ребёнка и одновременно требовать его полноценное объявление. Так работает processContents="strict". Слово any не обещает, что любой неизвестный элемент пройдёт проверку.
Что сообщение означает буквально
Xerces сопоставил ребёнка с wildcard, но не нашёл глобальное объявление mystery. В этой схеме есть объявление known, поэтому замена ошибочного имени на known делает XML допустимым. Конверт и правила wildcard остаются прежними: образец отделяет поиск объявления от порядка элементов.
Три частые причины для проверки
В имени расширения опечатка либо отправитель использует другую версию словаря. URI разрешён wildcard, но полное имя ребёнка неизвестно.
Схема расширения не загружена в набор схем. Наличие schemaLocation в документе не гарантирует, что конкретный валидатор получит внешний файл.
Локальное объявление внутри другого типа принято за глобальное. Такое объявление само по себе не создаёт цель для глобального поиска wildcard.
Исправление и повторная проверка
Найдите подходящий xs:any и прочитайте namespace вместе с processContents. Ищите объявление верхнего уровня с тем же URI и локальным именем, что у ребёнка. Если расширение действительно предусмотрено контрактом, загрузите его XSD со всеми зависимостями через проект. Не переключайте strict на skip лишь для скрытия отсутствующего определения.
Когда причина в пространстве имён
Здесь часто виновата загрузка словаря, а не необъявленный префикс. Префикс связывает написание с URI, но не импортирует компоненты XSD. Если URI ребёнка отличается от targetNamespace подключённой схемы, нужное объявление не найдётся даже при наличии всех файлов.
Как сопоставлять отчёты движков
В .NET проверенный случай называется The mystery element 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-валидацию.
Успешные исправления относятся к этим самодостаточным образцам XSD 1.0. Они не подтверждают выполнение бизнес-правил для другого документа или выпуска схемы.