hello guys, im new in wsdl so i don't really know all about xsd's or wsdl's. i have some client xsd who told me to build the webservice using the xsd schema. As i am familiar with php i started using nusoap as it seems to be much easier to start. I am told that i must use first contract method, my understanding is that the web servise i build would have the same methods and classes the client xsd explains, and the client with send messages to my WS using the methods in it. Am i right ? so my first xsd looks like this: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:np="path_here" targetNamespace="path_here" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="types.xsd"/> <xs:element name="systemup"> <xs:annotation> <xs:documentation>some text here</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="version" type="np:version"/> <xs:element name="idnumber" type="np:idnumber"/> <xs:element name="datetime" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Code (markup): and my php code for this: $server->wsdl->addSimpleType('version','xsd:string','SimpleType','struct',array()); $server->wsdl->addSimpleType('idnumber','xsd:string','SimpleType','struct'); $server->wsdl->addComplexType('systemup','complexType','struct','all','', array( 'version' => array('name' => 'version', 'type' => 'tns:version'), 'idnumber' => array('name' => 'idnumber', 'type' => 'tns:idnumber'), 'datetime' => array('name' => 'datetime', 'type' => 'xsd:dateTime') ) ); $server->register('systemup', array( 'version' => 'tns:version', 'idnumber' => 'tns:idnumber', 'datetime' => 'xsd:dateTime'), array(), $namespace, $soapaction."/systemup", 'rpc', 'encoded','Check if the system is up'); PHP: Is this the way how it is done ? Do you have any suggestions or anything to add ? what about SimpleTypes that has more than one property as: <xs:simpleType name="testid"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="4"/> </xs:restriction> </xs:simpleType> Code (markup): how it can be defined in nuSoap ?? Any help would be very precious. Thank you in advance.