XSDObjectGen.exe vs XSD.exe
Может ли кто-нибудь сказать мне, в чем разница между XSDObjectGen.exe и XSD.exe?
Есть ли способ сделать XSDObjectGen.exe работать в dot net 2.0?
Ответы
Ответ 1
В качестве альтернативы, Xsd2Code. Некоторые функции:
- Создание частичного класса.
- Поддержка общей и пользовательской коллекции (List, ObservableCollection, MyCustomCollection).
- Поддерживать автоматические свойства, если не требуется специальный набор или набор.
- Может генерировать атрибуты WCF (DataContract/DataMember).
- Поддерживает неровный тип.
- Маска частного поля в среде IDE (используйте атрибут EditorBrowsableState.Never).
- Сгенерировать распределение объектов в конструкторе.
- Внедрить INotifyPropertyChanged для включения DataBinding для wpf или Silverlight.
- Повышает производительность благодаря надстройке с визуальной студией.
- Сгенерировать итоговую документацию из аннотации xsd.
- Проверьте, не изменились ли новые и старые значения int setter перед тем, как добавить событие с изменением свойства.
- создание резервных копий в заголовках cs или vb.
- Сохраните и загрузите документ Xml в изолированное хранилище файлов для приложения silverlight (новое в версии 3.0).
- Сгенерировать код CS, VB или CPP.
- Сериализовать/десериализовать объект.
- Сохранение в файл и загрузка из файла.
- Включить Xsd2CodeCustomTool.
Ответ 2
Разница заключается в следующем:
Чтобы дать вам некоторое представление, вот список основных функций для XSDObjectGen.exe
:
- Поддержка наиболее популярных конструкций схем XML
- Перечисление и поведение коллекции для повторяющихся элементов
- Модель программирования, соответствующая схеме
- Автоматическое построение подклассов
- Устранение конфликтов при столкновении
- Интеграция с IDE Visual Studio
- Специальная логика обработки для типов DateTime
- Поддержка многостраничной схемы.
- Сериализация пространства имен XML
- Поддержка опций и последовательностей
- Поддержка выбора
- Группа замещения
- Метод MakeSchemaCompliant
- Некомплексная обработка ссылочного типа
- Соответствие базового профиля WS-I.org
- Поддержка нескольких языков программирования
- Глубокие события траверса
Подробнее об этих функциях см. файл документации XSDObjectGen.doc(доступный в C:\Program Files\XSDObjectGenerator
после установки инструмента).
Ответ 3
Похоже, вы можете использовать его с VS2005 по крайней мере (согласно эта статья, так или иначе)
Просто добавьте его в коллекцию внешних инструментов VS2005 в разделе "Инструменты → Внешние инструменты...".
Задайте параметры следующим образом
- Для VB: $(ItemPath)/l: vb
/f:$(ItemFileName).vb/c/d/t
- Для С#: $(ItemPath)/l: cs
/f:$(ItemFileName).vb/c/d/t
Похоже, что XSD и XSDObjectGen будут давать разные классы. На самом деле, комментарии в этой статье Рика Стралла гласят: " они дают очень разные классы" в здесь.
Ответ 4
На чисто техническом уровне:
XSD.exe использует Arrays
XSDObjectGen делает небольшой шаг вперед и использует ArrayLists
.
XSD2Code прыгает вперед с использованием Generics
.
Если вы используете .NET 2.0 и выше, используя XSD2Code, наиболее предпочтительным.