2009-07-31 5 views
0

HaloКошмар пытается генерировать код из XSD

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

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

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

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

readWriteType однако, выглядит следующим образом:

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

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

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

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

Спасибо, P

ответ

1

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

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

Марк

+0

Да, я надеялся, чтобы иметь возможность использовать «CheckType» в качестве типа для проверки, но это не подтверждает. file1.xsd содержит CommandType ComplexType file2.xsd содержит CheckType ComplexType, и включает в себя file1.xsd в верхнюю Из-за этого, я не могу включать file2.xsd в верхней части file1.xsd, а это означает CheckType не существует в качестве доступного типа в файле file1.xsd – Paul

Смежные вопросы