<?xml version="1.0"?>
<definitions targetNamespace="urn:WaplAPI" xmlns:tns="urn:WaplAPI"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns="http://schemas.xmlsoap.org/wsdl/">
   <types>
      <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:WaplAPI">
      
       <xsd:element name="ArrayOfDeviceItem" type="tns:deviceItem"/>
		<xsd:complexType name="deviceItem">
		  <xsd:sequence>
		   <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
		   <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="1" />
		  </xsd:sequence>
		</xsd:complexType>
		
        <xsd:element name="ArrayOfHeaders" type="tns:deviceHeaders"/>
		<xsd:complexType name="deviceHeaders">
		  <xsd:sequence>
		   <xsd:element name="deviceItem" type="tns:deviceItem" minOccurs="1" maxOccurs="unbounded" />
		  </xsd:sequence>
		</xsd:complexType>
	
         <xsd:element name="isMobileDevice">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="devKey" type="xsd:string"/>
                  <xsd:element name="deviceHeaders" type="tns:deviceHeaders"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="isMobileDeviceResponse" type="xsd:integer"/>
         
         <xsd:element name="getMobileDevice">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="devKey" type="xsd:string"/>
                  <xsd:element name="deviceHeaders" type="tns:deviceHeaders"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="getMobileDeviceResponse" type="xsd:string"/>
         
         <xsd:element name="getMarkupFromUrl">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="devKey" type="xsd:string"/>
                  <xsd:element name="waplUrl" type="xsd:string"/>
                  <xsd:element name="deviceHeaders" type="tns:deviceHeaders"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="getMarkupFromUrlResponse" type="xsd:string"/>
         
         <xsd:element name="getMarkupFromWapl">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="devKey" type="xsd:string"/>
                  <xsd:element name="wapl" type="xsd:string"/>
                  <xsd:element name="deviceHeaders" type="tns:deviceHeaders"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="getMarkupFromWaplResponse" type="xsd:string"/>
         
         <xsd:element name="CommFault">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="CommMessage" type="xsd:string"/>
                  <xsd:element name="RetryInMinutes" type="xsd:int"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="DevKeyFault">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="DevKeyMessage" type="xsd:string"/>
                  <xsd:element name="RetryInMinutes" type="xsd:int"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="WaplUrlFault">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="WaplUrlMessage" type="xsd:string"/>
                  <xsd:element name="RetryInMinutes" type="xsd:int"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         
         <xsd:element name="DBUnavailableFault">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="DBMessage" type="xsd:string"/>
                  <xsd:element name="RetryInMinutes" type="xsd:int"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>

         <xsd:element name="SystemMaintenance">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="SysMessage" type="xsd:string"/>
                  <xsd:element name="RetryInMinutes" type="xsd:int"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:schema>
   </types>

   <!-- Input message -->
   <message name="isMobileDevice">
      <part name="parameters" element="tns:isMobileDevice"/>
   </message>
   <!-- Output Message -->
   <message name="isMobileDeviceResponse">
      <part name="result" element="tns:isMobileDeviceResponse"/>
   </message>
   
   <!-- Input message -->
   <message name="getMobileDevice">
      <part name="parameters" element="tns:getMobileDevice"/>
   </message>
   <!-- Output Message -->
   <message name="getMobileDeviceResponse">
      <part name="result" element="tns:getMobileDeviceResponse"/>
   </message>
   
   <!-- Input message -->
   <message name="getMarkupFromUrl">
      <part name="parameters" element="tns:getMarkupFromUrl"/>
   </message>
   <!-- Output Message -->
   <message name="getMarkupFromUrlResponse">
      <part name="result" element="tns:getMarkupFromUrlResponse"/>
   </message>
   
   <!-- Input message -->
   <message name="getMarkupFromWapl">
      <part name="parameters" element="tns:getMarkupFromWapl"/>
   </message>
   <!-- Output Message -->
   <message name="getMarkupFromWaplResponse">
      <part name="result" element="tns:getMarkupFromWaplResponse"/>
   </message>
   
   <!-- Fault Messages -->
   <message name="CommFault">
      <part name="CommFault" element="tns:CommFault"/>
   </message>
   <message name="WaplUrlFault">
      <part name="WaplUrlFault" element="tns:WaplUrlFault"/>
   </message>
   <message name="DevKeyFault">
      <part name="DevKeyFault" element="tns:DevKeyFault"/>
   </message>
   <message name="DBUnavailableFault">
      <part name="DBUnavailableFault" element="tns:DBUnavailableFault"/>
   </message>
   <message name="SystemMaintenance">
      <part name="SystemMaintenance" element="tns:SystemMaintenance"/>
   </message>

   <!-- Port for Wapl API -->
   <portType name="WaplPortType">
      <operation name="isMobileDevice">
         <input message="tns:isMobileDevice"/>
         <output message="tns:isMobileDeviceResponse"/>
         <fault name="comm" message="tns:CommFault"/>
         <fault name="autherr" message="tns:DevKeyFault"/>
         <fault name="nodb" message="tns:DBUnavailableFault"/>
         <fault name="sysmaint" message="tns:SystemMaintenance"/>
      </operation>
      <operation name="getMobileDevice">
         <input message="tns:getMobileDevice"/>
         <output message="tns:getMobileDeviceResponse"/>
         <fault name="comm" message="tns:CommFault"/>
         <fault name="autherr" message="tns:DevKeyFault"/>
         <fault name="nodb" message="tns:DBUnavailableFault"/>
         <fault name="sysmaint" message="tns:SystemMaintenance"/>
      </operation>
      <operation name="getMarkupFromUrl">
         <input message="tns:getMarkupFromUrl"/>
         <output message="tns:getMarkupFromUrlResponse"/>
         <fault name="comm" message="tns:CommFault"/>
         <fault name="waplurlerr" message="tns:WaplUrlFault"/>
         <fault name="autherr" message="tns:DevKeyFault"/>
         <fault name="nodb" message="tns:DBUnavailableFault"/>
         <fault name="sysmaint" message="tns:SystemMaintenance"/>
      </operation>
      <operation name="getMarkupFromWapl">
         <input message="tns:getMarkupFromWapl"/>
         <output message="tns:getMarkupFromWaplResponse"/>
         <fault name="comm" message="tns:CommFault"/>
         <fault name="autherr" message="tns:DevKeyFault"/>
         <fault name="nodb" message="tns:DBUnavailableFault"/>
         <fault name="sysmaint" message="tns:SystemMaintenance"/>
      </operation>
   </portType>

   <!-- Binding for Wapl API - Document/literal, SOAP over HTTP -->
   <binding name="WaplBinding" type="tns:WaplPortType">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="isMobileDevice">
         <soap:operation soapAction="isMobileDevice"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="comm">
            <soap:fault name="comm" use="literal"/>
         </fault>
         <fault name="autherr">
            <soap:fault name="autherr" use="literal"/>
         </fault>
         <fault name="nodb">
            <soap:fault name="nodb" use="literal"/>
         </fault>
         <fault name="sysmaint">
            <soap:fault name="sysmaint" use="literal"/>
         </fault>
      </operation>
      <operation name="getMobileDevice">
         <soap:operation soapAction="getMobileDevice"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="comm">
            <soap:fault name="comm" use="literal"/>
         </fault>
         <fault name="autherr">
            <soap:fault name="autherr" use="literal"/>
         </fault>
         <fault name="nodb">
            <soap:fault name="nodb" use="literal"/>
         </fault>
         <fault name="sysmaint">
            <soap:fault name="sysmaint" use="literal"/>
         </fault>
      </operation>
      <operation name="getMarkupFromUrl">
         <soap:operation soapAction="getMarkupFromUrl"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="comm">
            <soap:fault name="comm" use="literal"/>
         </fault>
         <fault name="waplurlerr">
            <soap:fault name="waplurlerr" use="literal"/>
         </fault>
         <fault name="autherr">
            <soap:fault name="autherr" use="literal"/>
         </fault>
         <fault name="nodb">
            <soap:fault name="nodb" use="literal"/>
         </fault>
         <fault name="sysmaint">
            <soap:fault name="sysmaint" use="literal"/>
         </fault>
      </operation>
      <operation name="getMarkupFromWapl">
         <soap:operation soapAction="getMarkupFromWapl"/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="comm">
            <soap:fault name="comm" use="literal"/>
         </fault>
         <fault name="autherr">
            <soap:fault name="autherr" use="literal"/>
         </fault>
         <fault name="nodb">
            <soap:fault name="nodb" use="literal"/>
         </fault>
         <fault name="sysmaint">
            <soap:fault name="sysmaint" use="literal"/>
         </fault>
      </operation>
   </binding>

   <!-- Endpoint for Wapl API -->
   <service name="WaplService">
      <port name="WaplPort" binding="tns:WaplBinding">
         <soap:address location="http://webservices.wapple.net/server.php"/>
      </port>
   </service>
</definitions>
