Создать класс для схемы с абстрактным сложным типом - PullRequest
4 голосов
/ 20 ноября 2008

Я работаю с некоторой схемой, которая определяет абстрактный сложный тип, например.

<xs:complexType name="MyComplexType" abstract="true">

Затем на этот тип ссылается другой сложный тип в схеме:

<xs:complexType name="AnotherType">
  <xs:sequence>
    <xs:element name="Data" type="MyComplexType" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

Когда я запускаю «xsd.exe / d / l: CS MySchema.xsd», я получаю эту ошибку:

Ошибка: произошла ошибка обработки MySchema.xsd '. - Ошибка генерации кода для DataSet ''. - Невозможно преобразовать содержимое входного XML-файла в DataSet. DataSet не может создать экземпляр абстрактного ComplexType для узла Data. - DataSet не может создать абстрактный тип ComplexType для узла Data.

Кажется, это неверная схема. Кто-нибудь еще сталкивался с этой проблемой?

Спасибо

Ник

Ответы [ 3 ]

3 голосов
/ 15 декабря 2008

После оценки нескольких различных инструментов для схемы и кода мы обнаружили, что единственное, что способно работать с нашей схемой (очень большой и чрезвычайно сложной), - это Liquid XML (http://www.liquid -technologies.com / ).

2 голосов
/ 20 ноября 2008

Я никогда не сталкивался с этой проблемой, но быстро узнал, что у xsd.exe много недостатков. Мы начали использовать CodeXS очень давно. Продукт представляет собой веб-службу, но код доступен в качестве инструмента командной строки.

У него есть свои бородавки, но код, который он генерирует, гораздо лучше и он бесплатный. Кроме того, он расширяемый, и добавить собственные плагины для него довольно просто.

Возможно, не будет такого же ограничения?

0 голосов
/ 21 сентября 2017

Я знаю, что это старый вопрос, но мне нужен был ответ на этот вопрос на этой неделе. Я попробовал Liquid Studios в соответствии с предложением @ ng5000 и обнаружил, что программное обеспечение очень неуклюжее. Кроме того, вывод cs был настолько сложным, что он дал мне более 800 строк кода для одной сущности с 12 простыми свойствами.

Я очень рекомендую Xml2CSharp , веб-инструмент, который генерирует красивые простые POCO с декораторами атрибутов XML.

...