bugfix: complex type with a member of a complex type decorated per XmlElementAttribute with custom name breaks custom names of the members specified per XmlElementAttributes of the sub-complex type #983
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Having a complex type (please see ComplexComplexType in the suppled unit test CheckComplexComplexTypeWithCustomXmlNamesWsdl) with a member being itself a complex type (ComplexType), which is configured to have a custom name 'complex' specified by XmlElement, on WSDL generation with XmlSerializer overwrites the custom names and property names, specified by ComplexType, by the name 'complex', producing following definition
<xsd:complexType name="ComplexType">
xsd:sequence
<xsd:element minOccurs="1" maxOccurs="1" name="complex" type="xsd:int" />
<xsd:element minOccurs="0" maxOccurs="1" name="complex" type="xsd:string" />
<xsd:element minOccurs="0" maxOccurs="1" name="complex" type="xsd:base64Binary" />
<xsd:element minOccurs="1" maxOccurs="1" name="complex" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
correct would be (and is achieved by this fix)
<xsd:complexType name="ComplexType">
xsd:sequence
<xsd:element minOccurs="1" maxOccurs="1" name="IntProperty" type="xsd:int" />
<xsd:element minOccurs="0" maxOccurs="1" name="stringprop" type="xsd:string" />
<xsd:element minOccurs="0" maxOccurs="1" name="mybytes" type="xsd:base64Binary" />
<xsd:element minOccurs="1" maxOccurs="1" name="MyGuid" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>