Я обнаружил, что XSD очень сложно использовать в качестве модели для генерации кода. Это слишком гибко и сложно, чтобы быть практичным для моих нужд. Строго типизированный конструктор / генератор DataSet - отличный пример попытки использовать XSD в качестве модели генерации кода. Он работает нормально большую часть времени, но не поддерживает все возможные схемы, которые вы можете использовать. С другой стороны, XSD не может представлять информацию, необходимую для непосредственного создания табличных адаптеров, поэтому пришлось создавать специфичные для DataSet расширения.
Если вы решите пойти дальше и использовать XSD в качестве модели, вы, вероятно, захотите выбрать простое подмножество, достаточное для того, что вам нужно сгенерировать. Одним из подходов может быть загрузка схемы XSD в объект DataSet и использование этого объекта DataSet в качестве модели. Доступ к метаданным DataSet намного проще, чем к XSD общего назначения. Это также позволит вам использовать существующий конструктор DataSet в Visual Studio для редактирования ваших моделей.