У меня есть приложение, в которое пользователи могут загружать XSD для описания определенных видов пользовательских данных. Приложению необходимо проанализировать этот XSD, чтобы правильно инициализировать различные биты метаданных базы данных (например, преобразовать перечисления xs: в списки разрешенных значений, которые будут заполнять раскрывающиеся списки). Тот же XSD, введенный пользователем, также используется для проверки документов XML, отправляемых в приложение другими системами.
Можно ли написать мастер XSD, по которому я могу проверить такой XSD, предоставленный пользователем, чтобы я мог ограничить то, как пользователи могут описывать свои данные, и, следовательно, облегчить работу по анализу XSD? Например, скажем, я хотел иметь возможность разрешить пользователям загружать любой XSD вообще, если он не содержит тегов xs: union. Как я мог написать XSD, который я мог бы использовать для проверки XSD, загруженного пользователем для обеспечения соблюдения этого правила?