Saxon-EE, конечно, включает в себя процессор XSD, который анализирует документы схемы. Я думаю, что ваш вопрос не о низкоуровневом процессе разбора документов, а о высокоуровневом процессе запроса схем после их анализа.
Saxon-EE предлагает несколько способов доступа ккомпоненты скомпилированной схемы программно.
Вы можете экспортировать скомпилированную схему в виде файла SCM в формате XML. Этот формат недостаточно хорошо документирован, но его структура очень близко соответствует модели компонентов схемы, определенной в спецификациях W3C.
Вы можете получить доступ к скомпилированной схеме из XPath, используя такие функции расширения, как saxon: schema () и saxon: schema - см. http://www.saxonica.com/documentation/index.html#!functions/saxon/schema
Вы также можете получить доступ к схеме на уровне Java: методы описаны в Javadoc, но они действительно предназначены для внутреннего использования,скорее, чем для удобства такого рода приложений.
Конечно, получение доступа к скомпилированной схеме само по себе не решает проблему отображения всех допустимых путей. Во-первых, множество всех допустимых путей в общем случае бесконечно (потому что типы могут быть рекурсивными и из-за подстановочных знаков). Во-вторых, такие функции, как группы замещения и типы, полученные из расширения, создают трудности, даже когда результат конечен. Но в принципе информация есть: по имени элемента с глобальным объявлением вы можете найти его тип, а по его типу - рекурсивный набор допустимых дочерних элементов и т. Д.