Имена классов падежа Pascal при создании кода с помощью Visual Studio xsd.exe - PullRequest
5 голосов
/ 09 мая 2011

Название в значительной степени говорит обо всем. VS xsd.exe создает классы в случае верблюда. Есть ли способ генерации классов в паскале?

Если нет, то кто-нибудь знает о хорошем инструменте, позволяющем преобразовать загрузку имен классов из случая верблюда в случай Паскаля.

Спасибо

EDIT:

xsd.exe не генерирует имена классов в случае верблюда как стандарт - он просто следует соглашению схемы - однако мне интересно переопределить это поведение, чтобы атрибут имени XmlElement все еще следовал соглашениям, определенным схемой , но имя класса - паскаль.

Ответы [ 2 ]

1 голос
/ 09 мая 2011

Я не знал, что xsd.exe сделал это, вы уверены, что типы в схеме также не определены в camelCase?

Я бы предложил использовать xsd2code ,который намного превосходит xsd.exe во всех отношениях ..

0 голосов
/ 02 февраля 2015

Проверьте XmlSchemaClassGenerator , консольное приложение с открытым исходным кодом, в состав которого входит PascalCasing.(Я обнаружил это после истечения 15-дневной пробной версии xsd2code.)

  • Отображение пространств имен XML на пространства имен C #, либо явно, либо с помощью (настраиваемой) функции
  • GenerateXML-комментарии C # из аннотаций схемы
  • Создание DataAnnotations атрибутов из ограничений схемы
  • Использование Collection<T> свойств (инициализируется в конструкторе и с помощью частного установщика)
  • Используйте int, long, decimal или string для xs: integer и производных типов
  • Автоматические свойства
  • Pascal case для классов и свойств
  • Создание свойств адаптера, допускающих значение NULL для необязательных элементов и атрибутов без значений по умолчанию (см. Ниже)
  • Дополнительная поддержка PCL
  • Дополнительная поддержка INotifyPropertyChanged

В моем случае, прежде чем я смог запустить консольное приложение, мне пришлось изменить документ xsd, включив в него поле targetNamespace следующим образом:

Оригинал:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">

Изменено:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="gateway" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">

Мое окончательное использование выглядело примерно так:

XmlSchemaClassGenerator.Console -n "http://www.w3.org/2001/XMLSchema=gateway" -o "C:\{output-folder}" {xsd-file-name}.xsd
...