Это не легко, но это можно сделать, если вы готовы потратить много работы.
Существует несколько подходов к получению информации из схемы XSD.Вы можете попытаться обработать исходный код XSD, но я бы не рекомендовал этого, поскольку нужно учитывать очень много вещей (подстановочные знаки, группы подстановки, типы, полученные с помощью ограничений и расширений и т. Д.).Лучшим подходом является использование какого-либо API, который дает вам доступ к информации в переваренной форме.Для этого возможны следующие варианты:
(a) Xerces предоставляет вам Java API, обеспечивающий программный доступ к скомпилированной схеме.
(b) Saxon предоставляет вам две возможности: (i)Файл SCM, представляющий собой XML-представление скомпилированной схемы и (ii) API-интерфейс XPath, дающий программный доступ к скомпилированной схеме с использованием функций расширения.
Помните, что зная, что вы находитесь в элементе personнедостаточно (в общем случае), чтобы определить, какие разрешенные дети.Это потому, что могут быть глобальные и локальные элементы, использующие имя «человек», но разных типов.Является ли это проблемой в вашем случае, зависит от того, чего вы пытаетесь достичь, чего вы не очень подробно объяснили.