<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:intf="http://tempuri.org/" xmlns:impl="http://tempuri.org/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:intf="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
 
   <complexType name="Address">
    <sequence>
     <element name="province" nillable="true" type="xsd:string"/>
     <element name="city" nillable="true" type="xsd:string"/>
     <element name="street" nillable="true" type="xsd:string"/>
     <element name="postalCode" nillable="true" type="xsd:string"/>
     <element name="phoneNumber" nillable="true" type="impl:PhoneNumber"/>
    </sequence>
   </complexType>
   <complexType name="PhoneNumber">
    <sequence>
     <element name="area" type="xsd:int"/>
     <element name="prefix" type="xsd:int"/>
     <element name="number" type="xsd:int"/>
    </sequence>
   </complexType>
   <complexType name="findAddressResponse">
     <sequence>
      <element name="findAddressReturn" nillable="true" type="impl:Address"/>
     </sequence>
   </complexType>
   <complexType name="saveAddress">
     <sequence>
      <element name="name" nillable="true" type="xsd:string"/>
      <element name="address" nillable="true" type="impl:Address"/>
     </sequence>
   </complexType>
   <complexType name="saveAddressResponse">
     <sequence/>
   </complexType>
   <complexType name="AddressHeaderType">
	<all>
	 <element name="a" type="int"/>
	 <element name="b" type="boolean"/>
	 <element name="s" nillable="true" type="string"/>
	</all>
   </complexType>
   <element name="AddressHeader" type="impl:AddressHeaderType"/>
    <element name="Address" type="string"/>
  </schema>
  </wsdl:types>
  <wsdl:message name="saveAddressRequest">
    <wsdl:part name="parameters" type="intf:saveAddress"/>
  </wsdl:message>
  <wsdl:message name="findAddressRequest">
    <wsdl:part name="parameters" type="xsd:string"/>
    <wsdl:part name="AddressHeader" element="intf:AddressHeader"/>
  </wsdl:message>
  <wsdl:message name="findAddressResponse">
    <wsdl:part name="parameters" type="intf:findAddressResponse"/>
  </wsdl:message>
  <wsdl:message name="saveAddressResponse">
    <wsdl:part name="parameters" type="intf:saveAddressResponse"/>
  </wsdl:message>
  <wsdl:message name="parameterfault">
    <part name="part3" element="intf:Address" />
  </wsdl:message>  
  <wsdl:portType name="AddressBook">
    <wsdl:operation name="findAddress">
      <wsdl:input name="findAddressRequest" message="intf:findAddressRequest"/>
      <wsdl:output name="findAddressResponse" message="intf:findAddressResponse"/>
      <wsdl:fault name="f1" message="intf:parameterfault"/>
    </wsdl:operation>
    <wsdl:operation name="saveAddress">
      <wsdl:input name="saveAddressRequest" message="intf:saveAddressRequest"/>
      <wsdl:output name="saveAddressResponse" message="intf:saveAddressResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="AddressBookSoapBinding" type="intf:AddressBook">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="findAddress">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="findAddressRequest">
        <wsdlsoap:header message="intf:findAddressRequest" part="AddressHeader" use="literal">
          <wsdlsoap:headerfault message="intf:findAddressRequest"  part="AddressHeader" use="literal"/>
        </wsdlsoap:header>
        <wsdlsoap:body parts="parameters" use="literal" namespace="http://tempuri.org/"/>
      </wsdl:input>
      <wsdl:output name="findAddressResponse">
        <wsdlsoap:body use="literal" namespace="http://tempuri.org/"/>
      </wsdl:output>
      <wsdl:fault name="f1">
        <wsdlsoap:fault name="fault1" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="saveAddress">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="saveAddressRequest">
        <wsdlsoap:body use="literal" namespace="http://tempuri.org/"/>
      </wsdl:input>
      <wsdl:output name="saveAddressResponse">
        <wsdlsoap:body use="literal" namespace="http://tempuri.org/"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="AddressBookService">
    <wsdl:port name="AddressBook" binding="intf:AddressBookSoapBinding">
      <wsdlsoap:address location="http://tempuri.org/AddressBook"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
