<?xml version="1.0" encoding="UTF-8"?>
<definitions name="DeriveconstService"
   targetNamespace="http://www.ecerami.com/wsdl/DeriveconstService.wsdl"
   xmlns="http://schemas.xmlsoap.org/wsdl/"
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
   xmlns:tns="http://www.ecerami.com/wsdl/DeriveconstService.wsdl"
   xmlns:ns1="urn:examples:deriveconstservice">

   <wsdl:types>
      <xs:schema version="1.0" elementFormDefault="qualified">

         <xs:simpleType name="PercentCompleteInteger">
            <xs:restriction base="NonNegativeInt">
               <xs:maxInclusive value="100" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="NonNegativeInt">
            <xs:restriction base="xs:int">
               <xs:minInclusive value="0" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="MByte">
            <xs:restriction base="xs:unsignedByte">
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="Name">
            <xs:restriction base="xs:string">
               <xs:length value="8" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="Address">
            <xs:restriction base="xs:string">
               <xs:minLength value="5" />
               <xs:maxLength value="8" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="Code1">
            <xs:restriction base="xs:string">
               <xs:pattern value="[A-Z][0-9]" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="Code2">
            <xs:restriction base="xs:string">
               <xs:length value="3" />
               <xs:pattern value="[A-Z][0-9][a-z]" />
            </xs:restriction>
         </xs:simpleType>

         <xs:simpleType name="NonNegativeFloat">
            <xs:restriction base="xs:double">
               <xs:minInclusive value="0" />
            </xs:restriction>
         </xs:simpleType>

         <xs:complexType name="ArrayOfName">
           <xs:complexContent>
             <xs:restriction base="soapenc:Array">
               <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="Name[]"/>
             </xs:restriction>
           </xs:complexContent>
         </xs:complexType>

         <xs:complexType name="big">
           <xs:sequence>
             <xs:element name="id"    type="xs:int" />
             <xs:element name="one"   type="PercentCompleteInteger" />
             <xs:element name="two"   type="NonNegativeInt" />
             <xs:element name="three" type="NonNegativeFloat" />
             <xs:element name="four"  type="Name" />
             <xs:element name="five"  type="ArrayOfName" />
             <xs:element name="six"   type="Address" />
             <xs:element name="seven" type="Code1" />
             <xs:element name="eight" type="Code2" />
           </xs:sequence>
         </xs:complexType>

      </xs:schema>
   </wsdl:types>

   <message name="CallRequest">
      <part name="params" type="big"/>
   </message>

   <message name="Call2Request">
      <part name="params2" type="MByte"/>
   </message>

   <portType name="Deriveconst_PortType">
      <operation name="call">
         <input message="tns:CallRequest"/>
      </operation>
      <operation name="call2">
         <input message="tns:Call2Request"/>
      </operation>
   </portType>

   <binding name="Deriveconst_Binding" type="tns:Deriveconst_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="call">
         <soap:operation soapAction="call"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:deriveconstservice"
               use="encoded"/>
         </input>
         <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:deriveconstservice"
               use="encoded"/>
         </output>
      </operation>
      <operation name="call2">
         <soap:operation soapAction="call2"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:deriveconstservice"
               use="encoded"/>
         </input>
         <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:deriveconstservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>

   <service name="Deriveconst_Demo">
      <documentation>WSDL File for Deriveconst Demo</documentation>
      <port binding="tns:Deriveconst_Binding" name="Deriveconst_Port">
         <soap:address location="http://localhost:9111/deriveconst"/>
      </port>
   </service>
</definitions>
