XSDObjectGen.exe против XSD.exe - PullRequest
18 голосов
/ 14 ноября 2008

Может кто-нибудь сказать мне, в чем разница между XSDObjectGen.exe и XSD.exe?

Есть ли способ заставить XSDObjectGen.exe работать в dot net 2.0?

Ответы [ 4 ]

29 голосов
/ 09 июня 2010

В качестве альтернативы есть Xsd2Code . Некоторые особенности:

  • Создать частичный класс.
  • Поддержка универсальной и пользовательской коллекции (List, ObservableCollection, MyCustomCollection).
  • Поддержка автоматических свойств, когда не требуется специальных get или set.
  • Может генерировать атрибуты WCF (DataContract / DataMember).
  • Поддержка nillable типа.
  • Маска частного поля в IDE (используйте атрибут EditorBrowsableState.Never).
  • Создание выделения объектов в конструкторе.
  • Реализация INotifyPropertyChanged для включения DataBinding для wpf или Silverlight.
  • Повышение производительности благодаря надстройке Visual Studio.
  • Создание сводной документации из аннотации xsd.
  • Проверьте, совпадают ли новые и старые значения в сеттере перед тем, как вызвать событие свойства изменено.
  • создание опций резервного копирования в заголовке cs или vb.
  • Сохраните и загрузите XML-документ в изолированное хранилище файлов для приложения silverlight (новое в версии 3.0).
  • Создание кода CS, VB или CPP.
  • Сериализация / десериализация объекта.
  • Сохранить в файл и загрузить из файла.
  • Включить Xsd2CodeCustomTool.
6 голосов
/ 09 июня 2010

Разница:

Чтобы дать вам некоторое представление, вот краткий список возможностей для XSDObjectGen.exe:

  • Поддержка наиболее популярных конструкций XML-схем
  • Поведение перечислителя и коллекции для повторяющихся элементов
  • Модель программирования, соответствующая схеме
  • Автоматическая конструкция подкласса
  • Имя предотвращения столкновений
  • Интеграция Visual Studio IDE
  • Специальная логика обработки для типов DateTime
  • Поддержка многочастной схемы
  • Сериализация пространства имен XML
  • Дополнительная поддержка и поддержка последовательностей
  • Выбор поддержки
  • Группа замещения
  • MakeSchemaCompliant метод
  • Необязательная обработка ссылочного типа
  • Соответствие базового профиля WS-I.org
  • Поддержка нескольких языков программирования
  • События обхода глубины

Подробнее об этих функциях см. Файл документации XSDObjectGen.doc (доступен в C:\Program Files\XSDObjectGenerator после установки инструмента).

4 голосов
/ 15 ноября 2008

Похоже, вы можете использовать его как минимум с VS2005 (согласно этой статье, в любом случае )

Просто добавьте его в свою коллекцию внешних инструментов VS2005 в разделе «Инструменты >> Внешние инструменты ...».

Установите следующие параметры:

  • Для VB: $ (ItemPath) / л: vb /f:$(ItemFileName).vb / c / d / t
  • Для C #: $ (ItemPath) / l: cs /f:$(ItemFileName).vb / c / d / t

Похоже, что XSD и XSDObjectGen будут давать разные классы. На самом деле, комментарии в этой статье Рика Страля говорят: « они дают очень различных классов » в статье здесь .

3 голосов
/ 18 февраля 2011

На чисто техническом уровне:

XSD.exe использует Arrays
XSDObjectGen делает маленький шаг вперед и использует ArrayLists.
XSD2Code прыгает вперед с использованием Generics.

Если вы используете .NET 2.0 и выше, наиболее предпочтительным является использование XSD2Code.

...