Boris Murashin - 2011-08-16

here is the real world wsdl definition to show the problem:

            <xsd:simpleType name="comparison">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="=" />
                    <xsd:enumeration value="!=" />
                    <xsd:enumeration value="&gt;" />
                    <xsd:enumeration value="&gt;=" />
                    <xsd:enumeration value="&lt;" />
                    <xsd:enumeration value="&lt;=" />
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:complexType name="filter">
                <xsd:all>
                    <xsd:element name="param"           type="xsd:string" />
                    <xsd:element name="comparison"      type="tns:comparison" />
                    <xsd:element name="values"          type="tns:ArrayOfString" />
                </xsd:all>
            </xsd:complexType>

nusoap client treats comparison as 'scalar' (though it's restricted to xsd:string) and doesn't call expandEntities() for it. Obviously values <=, etc leads to corructed xml generetion and bad request fault.