В моем XSD у меня есть что-то похожее на это:
<?xml version="1.0" encoding="utf-8" ?>
<schema xmlns:jump="testThingy" elementFormDefault="qualified" targetNamespace="testThingy" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="command" type="jump:commandType" />
<complexType name="loginType">
<sequence>
<element name="userName" />
</sequence>
</complexType>
<complexType name="commandType">
<sequence>
<choice>
<element name="login" type="jump:loginType" />
<element name="logout" />
</choice>
<!-- There are other elements here but they are IRRELEVANT to the question -->
</sequence>
</complexType>
</schema>
Итак, используя инструмент XSD to C # (xsd.exe или Xsd2Code), генерируется 2 класса (commandType и loginType). Но если я хочу отправить команду выхода из системы, XML должен выглядеть следующим образом:
<command>
<logout />
</command>
Но у меня нет - какого-либо эквивалента - logoutType. В сгенерированном классе, если я хочу использовать выход из системы, то commandType ожидает «XmlElement».
Предполагая, что инструменты XSD to C # не могут сгенерировать этот класс для меня, как вы пишете класс, который в основном сводится к простой сериализации и имеет тип XmlElement, поэтому он подходит для commandType?
(примечание: я не могу контролировать XSD, иначе я бы изменил его, добавив новый complexType)