Кошмар пытается сгенерировать код из XSD - PullRequest
0 голосов
/ 31 июля 2009

Halo

Я уверен, что этот вопрос задавался много раз в прошлом, но у меня с ним кошмар.

У меня есть набор схем XSD с тонной сложных типов. Один из них такой:

<complexType name="commandType">
  <sequence>
    <choice>
      <element name="check" type="epp:readWriteType"/>
    </choice>
  </sequence>
</complexType>

Но "check" должен быть на самом деле "checkType" .... но этого не может быть, потому что выполнение этого создаст некий безумный цикл во включаемых файлах, поэтому инструменты дизайна просто не позволяют ты делаешь это. Итак, readWriteType был введен, предположительно, как класс, из которого, возможно, получен checkType (я не знаю, я мог бы лгать).

readWriteType, однако, выглядит так:

<complexType name="readWriteType">
  <sequence>
    <any namespace="##other"/>
  </sequence>
</complexType>

Так что инструменты генерации кода просто не имеют ни малейшего представления, что с ним делать, или как checkType относится к readWriteType. Это сильно расстраивает.

Во всяком случае, просто надеялся, что у кого-то здесь может быть мозговая волна!

О, XSD.exe не работает с этими классами, поэтому я пытаюсь работать с некоторыми сторонними инструментами, что-то о необходимости элемента перед complexType.

Спасибо, P

1 Ответ

1 голос
/ 31 июля 2009

Я не понимаю, как вы можете решить эту проблему - до тех пор, пока вы используете тип элемента <any>, сгенерированный код всегда будет довольно универсальным и использует много элементов object.

Почему нельзя сделать элемент check типа checkType? Это действительно единственный способ исправить ситуацию - если у вас есть четко определенные типы, тогда генерация кода может что-то с этим сделать.

Марк

...