<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.dmsw.com.au/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.dmsw.com.au/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This webservice provides functions to validate and correct Australian postal addresses</wsdl:documentation>
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.dmsw.com.au/">
      <s:element name="SetLogin">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="myUsername" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="myPassword" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="SetLoginResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SetLoginResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="SetAddressFormat">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="mixedCase" type="s:boolean" />
            <s:element minOccurs="1" maxOccurs="1" name="expandAbbreviations" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="SetAddressFormatResponse">
        <s:complexType />
      </s:element>
      <s:element name="ScanAddress">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address1" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address2" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address3" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address4" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address5" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address6" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="suburb" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="state" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="postcode" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="country" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="ScanAddressResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="ScanAddressResult" type="tns:POSTmanAddressRecord" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="POSTmanAddressRecord">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Address1" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address2" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address3" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address4" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address5" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address6" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Suburb" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="State" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="PostalCode" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="StatusCode" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="StatusDescription" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="IsStreetAddress" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="IsValidAddress" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="IsCorrectedAddress" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="DPID" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="BSP" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Barcode" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="BSPName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="BSPState" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="PrimaryPointFlag" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="Property1" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Property2" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="PropertyName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="SortDestination" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="LevelNo" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="LevelType" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="LotNo" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ThoroughfareName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ThoroughfareType" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ThoroughfareTypeSuffix" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="UnitNo" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="UnitType" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="StreetNumber" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="ThoroughfareNo1" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="ThoroughfareNo1Suffix" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="ThoroughfareNo2" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="ThoroughfareNo2Suffix" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="POBoxNo" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="POBoxNoPrefix" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="POBoxNoSuffix" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="POBoxType" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="NonAddressData" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="CareOfData" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="OriginalAddressData" type="tns:POSTmanInputRecord" />
          <s:element minOccurs="1" maxOccurs="1" name="LastError" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="LastErrorDescription" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="POSTmanInputRecord">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Address1" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address2" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address3" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address4" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address5" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Address6" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Suburb" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="State" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="PostalCode" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="ScanAddress2">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address1" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address2" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="address3" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="suburb" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="state" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="postcode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="mixedCase" type="s:boolean" />
            <s:element minOccurs="1" maxOccurs="1" name="ExpandAbbreviations" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="ScanAddress2Response">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="ScanAddress2Result" type="tns:POSTmanAddressRecord" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="NearMatches">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="maxNumberOfMatches" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="NearMatchesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="NearMatchesResult" type="tns:ArrayOfPOSTmanAddressRecord" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfPOSTmanAddressRecord">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="POSTmanAddressRecord" nillable="true" type="tns:POSTmanAddressRecord" />
        </s:sequence>
      </s:complexType>
      <s:element name="ClearState">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="ClearStateResponse">
        <s:complexType />
      </s:element>
      <s:element name="CurrentBalance">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="sessionID" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="CurrentBalanceResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="CurrentBalanceResult" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="SetLoginSoapIn">
    <wsdl:part name="parameters" element="tns:SetLogin" />
  </wsdl:message>
  <wsdl:message name="SetLoginSoapOut">
    <wsdl:part name="parameters" element="tns:SetLoginResponse" />
  </wsdl:message>
  <wsdl:message name="SetAddressFormatSoapIn">
    <wsdl:part name="parameters" element="tns:SetAddressFormat" />
  </wsdl:message>
  <wsdl:message name="SetAddressFormatSoapOut">
    <wsdl:part name="parameters" element="tns:SetAddressFormatResponse" />
  </wsdl:message>
  <wsdl:message name="ScanAddressSoapIn">
    <wsdl:part name="parameters" element="tns:ScanAddress" />
  </wsdl:message>
  <wsdl:message name="ScanAddressSoapOut">
    <wsdl:part name="parameters" element="tns:ScanAddressResponse" />
  </wsdl:message>
  <wsdl:message name="ScanAddress2SoapIn">
    <wsdl:part name="parameters" element="tns:ScanAddress2" />
  </wsdl:message>
  <wsdl:message name="ScanAddress2SoapOut">
    <wsdl:part name="parameters" element="tns:ScanAddress2Response" />
  </wsdl:message>
  <wsdl:message name="NearMatchesSoapIn">
    <wsdl:part name="parameters" element="tns:NearMatches" />
  </wsdl:message>
  <wsdl:message name="NearMatchesSoapOut">
    <wsdl:part name="parameters" element="tns:NearMatchesResponse" />
  </wsdl:message>
  <wsdl:message name="ClearStateSoapIn">
    <wsdl:part name="parameters" element="tns:ClearState" />
  </wsdl:message>
  <wsdl:message name="ClearStateSoapOut">
    <wsdl:part name="parameters" element="tns:ClearStateResponse" />
  </wsdl:message>
  <wsdl:message name="CurrentBalanceSoapIn">
    <wsdl:part name="parameters" element="tns:CurrentBalance" />
  </wsdl:message>
  <wsdl:message name="CurrentBalanceSoapOut">
    <wsdl:part name="parameters" element="tns:CurrentBalanceResponse" />
  </wsdl:message>
  <wsdl:portType name="Postman1Soap">
    <wsdl:operation name="SetLogin">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Set your user name and password</wsdl:documentation>
      <wsdl:input message="tns:SetLoginSoapIn" />
      <wsdl:output message="tns:SetLoginSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="SetAddressFormat">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Change the way POSTman formats and returns address data.</wsdl:documentation>
      <wsdl:input message="tns:SetAddressFormatSoapIn" />
      <wsdl:output message="tns:SetAddressFormatSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="ScanAddress">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Validate and correct an Australian postal address.</wsdl:documentation>
      <wsdl:input message="tns:ScanAddressSoapIn" />
      <wsdl:output message="tns:ScanAddressSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="ScanAddress2">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Simpler version of ScanAddress, allows mode settings to be passed directly.</wsdl:documentation>
      <wsdl:input message="tns:ScanAddress2SoapIn" />
      <wsdl:output message="tns:ScanAddress2SoapOut" />
    </wsdl:operation>
    <wsdl:operation name="NearMatches">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return possible addresses near or similar to the one just scanned.</wsdl:documentation>
      <wsdl:input message="tns:NearMatchesSoapIn" />
      <wsdl:output message="tns:NearMatchesSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="ClearState">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Force disposal of internal KEngine object for this session.</wsdl:documentation>
      <wsdl:input message="tns:ClearStateSoapIn" />
      <wsdl:output message="tns:ClearStateSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="CurrentBalance">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return your current balance</wsdl:documentation>
      <wsdl:input message="tns:CurrentBalanceSoapIn" />
      <wsdl:output message="tns:CurrentBalanceSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="Postman1Soap" type="tns:Postman1Soap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="SetLogin">
      <soap:operation soapAction="http://www.dmsw.com.au/SetLogin" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SetAddressFormat">
      <soap:operation soapAction="http://www.dmsw.com.au/SetAddressFormat" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ScanAddress">
      <soap:operation soapAction="http://www.dmsw.com.au/ScanAddress" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ScanAddress2">
      <soap:operation soapAction="http://www.dmsw.com.au/ScanAddress2" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="NearMatches">
      <soap:operation soapAction="http://www.dmsw.com.au/NearMatches" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ClearState">
      <soap:operation soapAction="http://www.dmsw.com.au/ClearState" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CurrentBalance">
      <soap:operation soapAction="http://www.dmsw.com.au/CurrentBalance" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="Postman1Soap12" type="tns:Postman1Soap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="SetLogin">
      <soap12:operation soapAction="http://www.dmsw.com.au/SetLogin" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SetAddressFormat">
      <soap12:operation soapAction="http://www.dmsw.com.au/SetAddressFormat" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ScanAddress">
      <soap12:operation soapAction="http://www.dmsw.com.au/ScanAddress" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ScanAddress2">
      <soap12:operation soapAction="http://www.dmsw.com.au/ScanAddress2" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="NearMatches">
      <soap12:operation soapAction="http://www.dmsw.com.au/NearMatches" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ClearState">
      <soap12:operation soapAction="http://www.dmsw.com.au/ClearState" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CurrentBalance">
      <soap12:operation soapAction="http://www.dmsw.com.au/CurrentBalance" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Postman1">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This webservice provides functions to validate and correct Australian postal addresses</wsdl:documentation>
    <wsdl:port name="Postman1Soap" binding="tns:Postman1Soap">
      <soap:address location="https://webservice.dmsw.com.au/postman/postman1.asmx" />
    </wsdl:port>
    <wsdl:port name="Postman1Soap12" binding="tns:Postman1Soap12">
      <soap12:address location="https://webservice.dmsw.com.au/postman/postman1.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>