Forum Moderators: open
I have implemented a very simple SOAP server using gSOAP. I use a xsd containing among other things a declaration as below:
<!--===============================-->
<xs:complexType name="Information">
<xs:sequence>
<xs:element name="Type" type="tt:DynamicType"/>
<xs:element name="Name" type="tt:Name" minOccurs="0"/>
<xs:element name="Age" type="tt:Age" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!--===============================-->
<xs:simpleType name="DynamicType">
<xs:restriction base="xs:string">
<xs:enumeration value="Male"/>
<xs:enumeration value="Female"/>
</xs:restriction>
</xs:simpleType>
What surprises me is that if I send a request to this server and that request contains an Information element and I leave out the Type element, this element is set to 0 (that is the same as Male) by gSOAP before my server function is called.
This is what a request might look like:
<SOAP-ENV:Body>
<tds:Information>
<tds:Name>Nisse</tds:Name>
</tds:Information>
</SOAP-ENV:Body>
Why isn't this request rejected? Type is mandatory given the schema above.
BRs
/Sune