¿Cómo puedo modificar correctamente un XSD generado para superar un error conocido de .Net que causa la excepción "cs0030: no se puede generar una clase temporal"

Se me ha encomendado el envío de datos a un servicio web de terceros, ellos han proporcionado un servicio de prueba que está comprobado que funciona con un cliente Java, sin embargo, no lo hace en .Net.

Cuando genero el servicio proxy y crea una instancia del servicio o serializa el objeto de solicitud, aparece el siguiente error:

<code>Unable to generate a temporary class (result=1). 
error CS0030: Cannot convert type 'TestStarXML.wsStarService.VSOptionInclusiveSetType[]' to 'TestStarXML.wsStarService.VSOptionInclusiveSetType' 
error CS0030: Cannot convert type 'TestStarXML.wsStarService.VSOptionConflictSetType[]' to 'TestStarXML.wsStarService.VSOptionConflictSetType'
error CS0030: Cannot convert type 'TestStarXML.wsStarService.ColorRequirementSetType[]' to 'TestStarXML.wsStarService.ColorRequirementSetType' 
error CS0030: Cannot convert type 'TestStarXML.wsStarService.ColorExclusionSetType[]' to 'TestStarXML.wsStarService.ColorExclusionSetType' 
error CS0029: Cannot implicitly convert type 'TestStarXML.wsStarService.VSOptionInclusiveSetType' to 'TestStarXML.wsStarService.VSOptionInclusiveSetType[]' 
error CS0029: Cannot implicitly convert type 'TestStarXML.wsStarService.VSOptionConflictSetType' to 'TestStarXML.wsStarService.VSOptionConflictSetType[]' 
error CS0029: Cannot implicitly convert type 'TestStarXML.wsStarService.ColorRequirementSetType' to 'TestStarXML.wsStarService.ColorRequirementSetType[]' 
error CS0029: Cannot implicitly convert type 'TestStarXML.wsStarService.ColorExclusionSetType' to 'TestStarXML.wsStarService.ColorExclusionSetType[]'
</code>

La tercera parte que nos envió este servicio utiliza Java y no tuvieron problemas para generar el servicio proxy desde el servicio de prueba. Mi entendimiento hasta ahora es que hay un error en .Net (mira aquí) generando el XSD para el archivo WSDL.

En la respuestaaquí, menciona la modificación del XSD generado con atributos ficticios, así que agregué el atributo ficticio como se sugiere:

<code><xs:complexType name="VSInclusivesOptionType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="VSOptionInclusiveSet" type="tns:VSOptionInclusiveSetType" />
    </xs:sequence>
    <xs:attribute name="tmp" type="xs:string" />   <!-- this is all I have added (for each of the types in the exception message) -->
  </xs:complexType>
  <xs:complexType name="VSOptionInclusiveSetType">
    <xs:sequence>
      <xs:element minOccurs="0" name="SetID" type="ns2:IdentifierType" />
      <xs:element minOccurs="0" name="NumberOfOptionsNumeric" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="VSOption2" type="tns:VSOption2Type" />
    </xs:sequence>
  </xs:complexType>
</code>

Lo único que se logró al agregar el atributo ficticio fue reducir el tiempo de compilación del proyecto de minutos a segundos.

Aparte de esto, el VS2008 no pareció notar los cambios. Todavía no puedo serializar el objeto o crear una instancia del servicio sin obtener la excepción mencionada anteriormente. ¿Qué es lo que me falta o estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta