QTAssistant (Я связан с ним) имеет команду на вкладке «Инструменты» в разделе XML «XSD from XMLs». Он предлагает вам:
- файлы XML, которые вы хотите использовать;
- папка, где хранятся сгенерированные XSD-файлы.
Инструмент основан на технологиях .NET, поэтому стиль сгенерированного вывода - .NET, а версия ограничена XSD 1.0.
Инструмент можно попробовать, хотя он требует регистрации по соображениям безопасности. Если вы не хотите регистрироваться, пришлите мне электронное письмо с помощью контактной информации поддержки на сайте, и я пришлю вам частную ссылку.
Например, если вы посмотрите на тех XMLs вывешенные с this question on SO, то QtAssistant будет генерировать этот XSD:
Причина я указываю на это связано с ожиданием вы могли бы имеют отношение к сгенерированному содержимому XSD. Если вы посмотрите на выбор на приведенной выше диаграмме, в то время как он соответствует требованию, выдвинутому пользователем, он может также не для других ...
Итак, для этого вида упражнений важно использовать как можно больше XML как допустимые сценарии, которые вы имеете в виду. Учитывая, как работает вывод, вы должны ожидать, что некоторые нежелательные шаблоны XML «проскальзывают» через сгенерированные XSD; в этом случае вы можете попытаться отредактировать некоторые бит вручную ... если это не сработает, обвините спецификацию XSD в своих ограничениях ...