Problems with replicating a wsdl with nusoap.

Help
Anonymous
2011-01-21
2013-06-06
  • Anonymous - 2011-01-21

    Hello

    I'm writing a nusoap web service server and I need to replicate this structure (this is only an example but the original is very similar to this. It was copied from a wsdl).

    <element name="Users">
        <complexType>
            <sequence maxOccurs="unbounded">
                <element name="User">
                    <complexType>
                        <choice minOccurs="0" maxOccurs="unbounded">
                            <element name="Admin">
                                <complexType>
                                    <attribute name="LastChangedItem" type="string" use="required"/>
                                </complexType>
                            </element>
                            <element name="Normal">
                                <complexType>
                                    <attribute name="LastLogin" type="dateTime" use="required"/>
                                    <attribute name="LastViewedItem" type="string" use="required"/>
                                </complexType>
                            </element>
                        </choice>
                        <attribute name="ID" type="string" use="required"/>
                        <attribute name="Username" type="string" use="required"/>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
    

    I've tried with addComplexType but i can never get the same result.
    I made a User type with elements ID, and Username the result was:

    <xsd:complexType name="User">
        <xsd:element name="ID" type="string"/>
        <xsd:element name="Username" type="string"/>
    </xsd:complexType>
    

    It's kinda like the original but i realy want this to look like it.
    I'm also not sure how to add nested types Admin and Normal.

    Is this even possible with nusoap?

    Thank you for your help.

     
  • Scott Nichol

    Scott Nichol - 2011-01-21

    If you have existing WSDL, my suggestion is use it directly rather than trying to replicate it with NuSOAP calls.  You will note that the nusoap_server constructor takes an optional parameter that specifies a file or URL with WSDL in it:

    /**
    * constructor
        * the optional parameter is a path to a WSDL file that you'd like to bind the server instance to.
    *
        * @param mixed $wsdl file path or URL (string), or wsdl instance (object)
    * @access   public
    */
    function nusoap_server($wsdl=false){

    When you do that, all the work is done for you and you do not have to use addComplexType or register calls at all.

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks