Это исправило это для меня, в файле xsd, где дочерний элемент имел maxOccurs = "unbounded". Я добавил дополнительную строку после </xs:sequence>
:
<xs:attribute name="tmp" type="xs:string" />
, это известная проблема вКомпонент XmlSerializer Code Generation: он не может обрабатывать некоторые случаи вложенных неограниченных элементов.Созданная им объектная модель недопустима: пользователь не может использовать ее для создания XML-сообщений.
К сожалению, чтобы исправить это, необходимо отредактировать схему, чтобы убедиться, что все массивы-подобные конструкции будут обрабатываться правильно.Вам нужно будет немного изменить все конструкции схемы, которые имеют следующее:
<xs:sequence maxOccurs="unbounded">
<xs:element ../>
<xs:sequence>
или
<xs:sequence>
<xs:element maxOccurs="unbounded"/>
<xs:sequence>
Необходимо изменить (соответственно)
<xs:sequence maxOccurs="unbounded">
<xs:element ../>
<xs:sequence>
<xs:attribute name="tmp" type="xs:string" /> <!--FIX LINE TO BE ADDED-->
или
<xs:sequence>
<xs:element maxOccurs="unbounded"/>
<xs:sequence>
<xs:attribute name="tmp" type="xs:string" /> <!--FIX LINE TO BE ADDED-->