﻿<?xml version="1.0" encoding="utf-8"?>
<!-- The following information are for revision purposes and used for internal purposes

     $Id: valuation.wsdl,v 1.9 2013/03/13 11:00:00  vad Exp $
     $Author: akh $
     $Date: 2013/03/13 11:00:00 $
     $Revision: 1.9 $
     $Log: valuation.wsdl,v $

     Revision 1.9  2013/03/13 11:00:00  vad
     Version 1.3.1 MR1

     Revision 1.8  October 2012
     Version 1.3.0 added to VAT support

     Revision 1.7  June 2012
     Version 1.2.1.0
     
     Revision 1.6  Feb 2012
     Release 2011

     Revision 1.5  2007/01/17 12:39:06  akh
     Version 1.1.1 added to list and Remarks element added to complexType ValuationType

     Revision 1.4  2007/01/03 12:52:16  akh
     Release 1.1.0 Finalised

     Revision 1.3  2006/07/10 15:11:27  akh
     Released 1.0.10 finalise. Monitoring and historical valuation feature added.

     Revision 1.2  2006/03/20 14:36:08  akh
     Version 1.0.9 committed to repository

     Revision 1.1  2006/02/10 11:24:56  akh
     valuation.wsdl added to repository


     Copyright 2003 - 2007, EurotaxGlass's International AG
     All Rights Reserved
     
     The Author grants permission to retrieve the WSDL or a copy of the WSDL for building software that
     will consume or consumes the facilities available in this WSDL.
     
     The original of this WSDL file can be located at:
        http://webservices.eurotaxglass.com/wsdl/valuation.wsdl
        http://webservices2.eurotaxglass.com/wsdl/valuation.wsdl
        
     THIS SCHEMA/WSDL FILE IS PROVIDED "AS IS", WITHOUT ANY WARRANITIES AS TO ITS
     SUITABILITY OR FITNESS FOR ANY PARTICULAR USE. THE AUTHOR DOES NOT TAKE 
     RESPONSIBILITY FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
     DAMAGES THAT MAY UNINTENTIONALLY BE CAUSED THROUGH ITS USE OR DISTRIBUTION.
     
     No other rights are granted by implication, estoppel or otherwise.
     -->
<wsdl:definitions 
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
     xmlns="http://schemas.xmlsoap.org/wsdl/" 
     xmlns:tns="http://www.eurotax.com/webservices/" 
     targetNamespace="http://www.eurotax.com/webservices/">
 <wsdl:types>
  <xs:schema targetNamespace="http://www.eurotax.com/webservices/" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:simpleType name="ISOcurrencyType">
    <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="AUD"/>
     <xs:enumeration value="CAD"/>
     <xs:enumeration value="CHF"/>
     <xs:enumeration value="CZK"/>
     <xs:enumeration value="DKK"/>
     <xs:enumeration value="EUR"/>
     <xs:enumeration value="GBP"/>
     <xs:enumeration value="HUF"/>
     <xs:enumeration value="JPY"/>
     <xs:enumeration value="NOK"/>
     <xs:enumeration value="NZD"/>
     <xs:enumeration value="PLN"/>
     <xs:enumeration value="SEK"/>
     <xs:enumeration value="SKK"/>
     <xs:enumeration value="USD"/>
     <!-- Date: 06/03/2008 15:10:00 CET
       RON (New Leu) , CNY (Yuan Renminbi),
       TRY (Turkey Lira), INR (Indian Rupee )
     -->
     <xs:enumeration value="RON" />
     <xs:enumeration value="TRY" />
     <xs:enumeration value="CNY" />
     <xs:enumeration value="INR" />
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ISOcountryType">
    <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="AT"/>
     <xs:enumeration value="BE"/>
     <xs:enumeration value="CZ"/>
     <xs:enumeration value="CH"/>
     <xs:enumeration value="DE"/>
     <xs:enumeration value="ES"/>
     <xs:enumeration value="FR"/>
     <xs:enumeration value="GR"/>
     <xs:enumeration value="HR"/>
     <xs:enumeration value="HU"/>
     <xs:enumeration value="IT"/>
     <xs:enumeration value="LU"/>
     <xs:enumeration value="NL"/>
     <xs:enumeration value="PL"/>
     <xs:enumeration value="PT"/>
     <xs:enumeration value="RU"/>
     <xs:enumeration value="SK"/>
     <xs:enumeration value="SI"/>
     <!-- Deprecated and will be replaced by ISO 3166 code for Great Britain.
          Use enumeration value "GB" instead of "UK"
     -->	 
     <xs:enumeration value="UK">
       <xs:annotation><xs:documentation>This enumeration with value "UK" is deprecated, and will be removed in future releases. Use enumeration with value "GB" instead.</xs:documentation></xs:annotation>
     </xs:enumeration>
     <xs:enumeration value="GB"/>
     <!-- Norway  NOR 578 -->
     <xs:enumeration value="NO"/>
     <!-- Romania ROU 642 -->
     <xs:enumeration value="RO" /> 
     <!-- TURKEY TOR 792-->
     <xs:enumeration value="TR"/>
     <!-- Future extension  China CHN 156-->
     <xs:enumeration value="CN"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ISOlanguageType">
    <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="BG"/>
     <xs:enumeration value="CS"/>
     <xs:enumeration value="DA"/>
     <xs:enumeration value="DE"/>
     <xs:enumeration value="EL"/>
     <xs:enumeration value="EN"/>
     <xs:enumeration value="ES"/>
     <xs:enumeration value="ET"/>
     <xs:enumeration value="FI"/>
     <xs:enumeration value="FR"/>
     <xs:enumeration value="HR"/>
     <xs:enumeration value="HU"/>
     <xs:enumeration value="IT"/>
     <xs:enumeration value="LT"/>
     <xs:enumeration value="LV"/>
     <xs:enumeration value="NL"/>
     <xs:enumeration value="NO"/>
     <xs:enumeration value="PL"/>
     <xs:enumeration value="PT"/>
     <xs:enumeration value="RO"/>
     <xs:enumeration value="RU"/>
     <xs:enumeration value="SK"/>
     <xs:enumeration value="SL"/>
     <xs:enumeration value="SR"/>
     <xs:enumeration value="SV"/>
     <xs:enumeration value="TR"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ETGvehicleConditionType">
    <xs:restriction base="xs:integer">
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="5"/>
    </xs:restriction>
   </xs:simpleType>
   
       <xs:simpleType name="VATtype">
      <xs:annotation><xs:documentation>Defines if currency amounts are inclusive or ecxclusive VAT. If this element is missing, default currency amounts are applied</xs:documentation></xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
         <xs:enumeration value="DEFAULT">
            <xs:annotation>
              <xs:documentation>Default behaviour</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="INCLUDED">
           <xs:annotation>
             <xs:documentation>All currency amounts are inclusive VAT</xs:documentation>
           </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="EXCLUDED">
           <xs:annotation>
             <xs:documentation>All currency amounts are exclusive VAT</xs:documentation>
           </xs:annotation>
         </xs:enumeration>
       </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ETGcalculationModeType">
      <xs:annotation><xs:documentation>This is an enumeration of all calculation rules, EurotaxGlass's intelligence module can apply during calculation of basic residual value, option calculation, etc. EurotaxGlass's may add other calculation mode at the end of the enumerated list in future release.</xs:documentation></xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
         <xs:enumeration value="STANDARD">
           <xs:annotation>
             <xs:documentation>EurotaxGlass's standard rules. It is equivalent to calculation mode "E" or "N" used internally by intelligence module.</xs:documentation>
           </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="RESIDUAL">
           <xs:annotation>
             <xs:documentation>The value of the calculation depends on a residual value. It is equivalent to calculation mode "R" used internally by intelligence module. In the UK valuation module, it implies that the condition of the vehicle is rough or below the average condition..</xs:documentation>
           </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="SPECIAL">
            <xs:annotation>
              <xs:documentation>Special rules was applied in addition to standard rules during evaluation of residual value. It is equivalent to calculation mode "L" used internally by intelligence module. An input instance document should not use this as a "CalculationMode" value</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="PROPRIETARY">
           <xs:annotation>
             <xs:documentation>Proprietary built-in rules was used during evaluation of residual value. This value is equivalent to calculation mode "V" used internally by intelligence module. An input instance document should not use this as a "CalculationMode" value</xs:documentation>
           </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="LOW_MILEAGE">
            <xs:annotation>
              <xs:documentation>Low mileage of the vehicle was used as a primary rule for valuation. It's exclusively reserved for intelligence module for UK. An input instance document should not use this as "CalculationMode" value</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="EXCELLENT">
            <xs:annotation>
              <xs:documentation>The excellent condition of the vehicle is consider during evaluation process. It's exclusively reserved for intelligence module for UK.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="AVERAGE">
            <xs:annotation>
              <xs:documentation>The average condition of the vehicle is consider during evaluation process. It's exclusively reserved for intelligence module for UK.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="PRIVATESALE">
            <xs:annotation>
              <xs:documentation>Private sale rules are applied during evaluation process. It's exclusively reserved for intelligence module for UK.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>

	 <xs:enumeration value="HIGH">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "X" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="LOW">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "R" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="DEALER">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "D" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="PRIVATE">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "P" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="CONSUMER_EX">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "CX" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="CONSUMER_AV">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "CA" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="CONSUMER_BA">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "CB" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 <xs:enumeration value="DISPOSAL">
            <xs:annotation>
              <xs:documentation>UK only. This value is equivalent to calculation mode "O" used internally by SAE Kernel.</xs:documentation>
            </xs:annotation>
         </xs:enumeration>
	 
       </xs:restriction>
    </xs:simpleType>

   <!-- Simple Type for INCCORR -->
   <!-- Type code be restricted to unsignedByte, but * is not within Range -->
   <xs:simpleType name="ETGvalueAddedCodeType">
    <xs:restriction base="xs:string">
     <xs:enumeration value="*"/>
     <xs:enumeration value="R"/>
     <xs:enumeration value="A"/>
     <xs:enumeration value="1"/>
     <xs:enumeration value="2"/>
     <xs:enumeration value="3"/>
     <xs:enumeration value="4"/>
     <!-- $Author: akh $ The following enumeration is added 
          and it maintains the binary compatibility with
	  previous releases
     -->
     <xs:enumeration value="0"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ETGdevaluationCodeType">
    <xs:restriction base="xs:string">
     <xs:enumeration value="*"/>
     <xs:enumeration value="A"/>
     <xs:enumeration value="V"/>
     <xs:enumeration value="0"/>
     <xs:enumeration value="1"/>
     <xs:enumeration value="2"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="VersionType">
     <xs:restriction base="xs:string">
     <xs:enumeration value="1.3.1" />
     <xs:enumeration value="1.3.0" />
     <xs:enumeration value="1.2.1" />
     <xs:enumeration value="1.2.0" />
     <xs:enumeration value="1.1.5" />
    </xs:restriction>
   </xs:simpleType>
   <!-- Ref. ETG kernel documentation 1.07 page 22 Jan 22, 2003 -->
   <xs:simpleType name="regionalMarketAdjustmentRange">
    <xs:restriction base="xs:integer">
     <xs:minInclusive value="-15"/>
     <xs:maxInclusive value="15"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="internalMarketAdjustmentRange">
    <xs:restriction base="xs:integer">
     <xs:minInclusive value="-10"/>
     <xs:maxInclusive value="10"/>
    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="directImportAdjustmentRange">
    <xs:restriction base="xs:integer">
     <xs:minInclusive value="-15"/>
     <xs:maxInclusive value="5"/>
    </xs:restriction>
   </xs:simpleType>
   <!-- $Author: akh $
         Guided by RFC 3164: syslog protocol and Windows event log -->

    <xs:simpleType name="ETGmessageSeverityLevelType">
       <xs:restriction base="xs:NMTOKEN">
           <xs:enumeration value="INFORMATION"/>
           <xs:enumeration value="NOTICE"/>
           <xs:enumeration value="WARNING"/>
	   <xs:enumeration  value="CRITICAL"/>   
       </xs:restriction>	       
    </xs:simpleType>
   
   <!-- All complex Types go here -->
   <xs:complexType name="ETGpriceType">
    <xs:sequence>
     <xs:element name="Amount" type="xs:double" default="0.00"/>
     <xs:element name="ISOcurrencyCode" type="tns:ISOcurrencyType"/>
     <xs:element name="AmountDate" type="tns:ETGdateType" minOccurs="0"/>
     <xs:element name="Indicator" type="xs:string" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name="ETGdateType">
    <xs:annotation>
     <xs:documentation>Common data type for date representation</xs:documentation>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Day" type="xs:gDay" minOccurs="0">
      <xs:annotation>
       <xs:documentation>day of the month</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Month" type="xs:gMonth">
      <xs:annotation>
       <xs:documentation>month</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Year" type="xs:gYear">
      <xs:annotation>
       <xs:documentation>year</xs:documentation>
      </xs:annotation>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="ETGsettingType">
    <xs:annotation>
     <xs:documentation>Settings for country, language, response format etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="ISOcountryCode" type="tns:ISOcountryType" minOccurs="1" maxOccurs="1">
      <xs:annotation>
       <xs:documentation>ISO country code</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="ISOlanguageCode" type="tns:ISOlanguageType" minOccurs="1" maxOccurs="1">
      <xs:annotation>
       <xs:documentation>ISO language code</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="ISOcurrencyCode" type="tns:ISOcurrencyType" minOccurs="1" maxOccurs="1">
      <xs:annotation>
       <xs:documentation>ISO currency code</xs:documentation>
      </xs:annotation>
     </xs:element>
     
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="LoginDataType">
    <xs:sequence>
     <xs:element name="Name" type="xs:string">
      <xs:annotation>
       <xs:documentation>ETG-wide unique user name</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Password" type="xs:string">
      <xs:annotation>
       <xs:documentation>User password</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="ReturnSecurityToken" type="xs:boolean" minOccurs="0">
      <xs:annotation>
       <xs:documentation>If set to true, SecurityToken and corresponding TimeToLive will be returned</xs:documentation>
      </xs:annotation>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="OriginatorType">
    <xs:sequence>
     <xs:element name="Signature" type="xs:string">
      <xs:annotation>
       <xs:documentation>ETG-wide unique user ID / user signature</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:choice>
      <xs:element name="LoginData" type="tns:LoginDataType">
       <xs:annotation>
        <xs:documentation>User authentication data</xs:documentation>
       </xs:annotation>
      </xs:element>
      <xs:element name="SecurityToken" type="xs:string">
       <xs:annotation>
        <xs:documentation>Security token to be used instead of username/password pair</xs:documentation>
       </xs:annotation>
      </xs:element>
     </xs:choice>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="FailureType">
    <xs:sequence>
     <xs:element name="ETGError" type="tns:ETGStatus"/>
     <xs:element name="ETGWarning" type="tns:ETGStatus" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SuccessType">
    <xs:sequence minOccurs="0">
     <xs:element name="ETGWarning" type="tns:ETGStatus" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ResponseType">
    <xs:sequence>
     <xs:element name="OrderID" type="xs:string">
      <xs:annotation>
       <xs:documentation>A unique ID that the ETG service has assigned to the order originated by the client request. In case of asynchronous request processing can be used by the client for related request identification.</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="VersionResponse" type="xs:string" minOccurs="0">
      <xs:annotation>
       <xs:documentation>Version of global ETG services specification used to construct the response</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Statistics" type="tns:StatisticsType"/>
     <xs:element name="SecurityToken" type="xs:string" minOccurs="0">
      <xs:annotation>
       <xs:documentation>Reurned security token to be used instead of username/password pair for further calls</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="TimeToLive" type="xs:dateTime" minOccurs="0">
      <xs:annotation>
       <xs:documentation>Validity period of the reurned security token</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:choice>
      <xs:element name="Failure" type="tns:FailureType">
       <xs:annotation>
        <xs:documentation>Indicates that the processing of this request has failed, and provides error and optional warning messages that arose during the processing.</xs:documentation>
       </xs:annotation>
      </xs:element>
      <xs:element name="Success" type="tns:SuccessType">
       <xs:annotation>
        <xs:documentation>Indicates that the processing of this request has succeeded; may provide non-fatal warning messages that arose during the processing.</xs:documentation>
       </xs:annotation>
      </xs:element>
     </xs:choice>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="StatisticsType">
    <xs:sequence>
     <xs:element name="StartDateTime" type="xs:dateTime">
      <xs:annotation>
       <xs:documentation>Processing start timestamp</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="EndDateTime" type="xs:dateTime">
      <xs:annotation>
       <xs:documentation>Processing finish timestamp</xs:documentation>
      </xs:annotation>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ETGStatus">
    <xs:annotation>
     <xs:documentation>Placeholder for general status report. To be filled out before sending a response back to the originator.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Code" type="xs:int">
      <xs:annotation>
       <xs:documentation>Top level error or warning code</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Description" type="xs:string">
      <xs:annotation>
       <xs:documentation>Top level error or warning description</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="ExtCode" type="xs:int" minOccurs="0">
      <xs:annotation>
       <xs:documentation>Extended error or warning code. Can be service specific</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="ExtDescription" type="xs:string" minOccurs="0">
      <xs:annotation>
       <xs:documentation>Extended error or warning description.</xs:documentation>
      </xs:annotation>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ETGHeaderType">
    <xs:sequence>
     <xs:element name="VersionRequest" type="tns:VersionType"/>
     <xs:element name="Originator" type="tns:OriginatorType"/>
     <!-- Deprecated and will be removed 
     <xs:element name="Request" type="tns:RequestType"/>
     -->
     <xs:element name="Response" type="tns:ResponseType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <!-- complex Type etgDateType used for importBegin importEnd -->
   <xs:complexType name="ValuationAmountType">
    <xs:sequence>
     <xs:element name="TradeAmount" type="xs:double" default="0.00" minOccurs="0"/>
     <xs:element name="RetailAmount" type="xs:double" default="0.00" minOccurs="0"/>
     <xs:element name="B2Bamount" type="xs:double" default="0.0" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ValuationType">
     <xs:sequence>
     <xs:element name="ETGdataVersion" type="xs:string" minOccurs="0" maxOccurs="1"/>
     <xs:element name="ETGkernelVersion" type="xs:string" minOccurs="0" maxOccurs="1"/>
     <xs:element name="NationalVehicleCode" type="xs:long" minOccurs="1" maxOccurs="1" />
     <xs:element name="RegistrationDate" type="tns:ETGdateType" minOccurs="1" maxOccurs="1"/>
         
     <xs:element name="ValuationDate"    type="tns:ETGdateType" minOccurs="0" maxOccurs="1"/>
     <!-- $Author: akh $
      $Date: 2007/11/13 14:55:00 $
      Mileage is mandatory for a used vehicle

      valuationsrv-1.2.1.0 accepts integer values for Mileage, including the negative value "-1"
      In future release xs:positiveInteger datatype will be changed to xs:int
      -->
     <xs:element name="Mileage" type="xs:positiveInteger" minOccurs="1" maxOccurs="1"  />
     <xs:element name="VAT"     type="tns:VATtype" minOccurs="0" maxOccurs="1">
        <xs:annotation><xs:documentation>Defines if currency amounts are inclusive or ecxclusive VAT. If this element is missing, default currency amounts are applied</xs:documentation></xs:annotation>   
      </xs:element>
     <xs:element name="LPGIndicator" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
     <xs:element name="LowMileageIndicator" type="xs:unsignedByte" minOccurs="0" maxOccurs="1" />
     <xs:element name="CalculationMode"     type="tns:ETGcalculationModeType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="BasicResidualValue" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="MonthlyAdjustmentValue" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <xs:element name="MileageAdjustmentValue" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <xs:element name="Adjustment" type="tns:AdjustmentType" minOccurs="0" maxOccurs="1" />
     <xs:element name="EquipmentList" type="tns:ArrayOfEquipment" minOccurs="0" maxOccurs="1" />
     <xs:element name="ValueAddedItemList" type="tns:ArrayOfValueAddedItem" minOccurs="0" maxOccurs="1" />
     <xs:element name="DevaluationItemList" type="tns:ArrayOfDevaluationItem" minOccurs="0" maxOccurs="1" />
     <xs:element name="ActualNewPrice" type="tns:ETGpriceType" minOccurs="0" maxOccurs="1" />
     <xs:element name="AverageMileage" type="xs:unsignedInt" minOccurs="0" maxOccurs="1" />
     <xs:element name="ResidualValueAgeAdjusted" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <xs:element name="ResidualValueAgeMileageAdjusted" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <xs:element name="TotalRepairCost" type="tns:ValuationAmountType" minOccurs="0"  maxOccurs="1"/>
     <xs:element name="TotalValuation" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <xs:element name="ConsumerValuation" type="tns:ConsumerValuationAmountType" minOccurs="0" maxOccurs="1" />
     <!-- $Author: akh $ $Date: 2007/01/17 12:39:06 $ 
          Implemented in valuationsrv-1.1.1
      -->
      <xs:element name="Remarks" type="xs:string" minOccurs="0" maxOccurs="1">
        <xs:annotation><xs:documentation>Additional information whether special adjustment rules were applied during the valuation process. For example, TradeAmount and RetailAmount of "TotalValuation" might be limitted to certain predefined values. In such case, "Remarks" will included information about the special rules if applicable. </xs:documentation></xs:annotation>   
      </xs:element>
      <!-- $Author: akh $ $Date: 2007/11/14 10:04:06 $ 
           Implemented in valuationsrv-1.1.2 
      -->
      <xs:element name="ETGdataIssuedOn" type="tns:ETGdateType" minOccurs="0" maxOccurs="1">
       <xs:annotation>
        <xs:documentation>The exact date when the data was issued by EurotaxGlass's. Normally EurotaxGlass's issues valuation data monthly. That's why the month and the year are available in the ETGdataIssuedOn field. </xs:documentation>
       </xs:annotation>
      </xs:element>
	  
    </xs:sequence>
   </xs:complexType>
   <!-- Options -->
   <xs:complexType name="OptionType">
    <xs:sequence>
     <xs:element name="Code" type="xs:int"/>
     <xs:element name="NewPrice" type="xs:double"/>
     <!-- $Date: 2007/01/17 12:39:06 $ $Author: akh $ 
      CalculationMode is not a child element of OptionType
     <xs:element name="CalculationMode" type="xs:int"/>
     -->
     <xs:element name="MarketCode" type="xs:int"/>
     <xs:element name="GroupCode" type="xs:int" minOccurs="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <!-- added items -->
   <xs:complexType name="ValueAddedItemType">
    <xs:sequence>
     <xs:element name="CorrectionCode" type="tns:ETGvalueAddedCodeType"/>
     <xs:element name="NewPrice" type="xs:double"/>
     <xs:element name="InstallationDate" type="tns:ETGdateType" minOccurs="0"/>
     <xs:element name="Mileage" type="xs:positiveInteger" minOccurs="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
     <!-- $Date: 2008/03/12 16:19:06 $ $Author: akh $ -->
     <xs:element name="ItemID"    type="xs:string" minOccurs="0" maxOccurs="1">
     <xs:annotation><xs:documentation>This is an ID assigned by the client 
     application to reference purposes.</xs:documentation></xs:annotation>    
     </xs:element>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="DevaluationItemType">
    <xs:sequence>
     <xs:element name="CorrectionCode" type="tns:ETGdevaluationCodeType"/>
     <xs:element name="DevaluationAmount" type="xs:double"/>
     <xs:element name="SubtractInRetail" type="xs:boolean" default="true" minOccurs="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
          <!-- $Date: 2008/03/12 16:19:06 $ $Author: akh $ -->
     <xs:element name="ItemID"    type="xs:string" minOccurs="0" maxOccurs="1">
     <xs:annotation><xs:documentation>This is an ID assigned by the client 
     application to reference purposes.</xs:documentation></xs:annotation>    
     </xs:element>

    </xs:sequence>
   </xs:complexType>
   <!-- Adjustment -->
   <xs:complexType name="ConsumerValuationAmountType">
    <xs:sequence>
     <xs:element name="ExcellentVehicleAmount" type="tns:ValuationAmountType" minOccurs="0"/>
     <xs:element name="AverageVehicleAmount" type="tns:ValuationAmountType" minOccurs="0"/>
     <xs:element name="RoughVehicleAmount" type="tns:ValuationAmountType" minOccurs="0"/>
     <!-- 22/03/2006 Element PrivateConsumerAmount added. -->
     <xs:element name="PrivateConsumerAmount" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name="AdditionalAdjustmentType">
      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
      <xs:sequence>
      <xs:element name="Rationale" type="xs:string" minOccurs="1" maxOccurs="1">
        <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="Amount" type="xs:double" minOccurs="1" maxOccurs="1">
         <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name="RoadTaxAdjustmentType">
      <xs:annotation><xs:documentation>Tax for using or keeping a vehicle on public road. It has different names in different countries. For example, it is known as "RFL" (Road Fund License)/Car Tax in UK. It is a fixed amount depending on the vehicle and the country. </xs:documentation></xs:annotation>
      <xs:sequence>
       <xs:element name="Amount" type="xs:double" minOccurs="1" maxOccurs="1">
         <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
   </xs:complexType>
   
   
   <xs:complexType name="AdjustmentType">
    <xs:sequence>
     <xs:element name="InternalMarket" type="tns:InternalMarketAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="RegionalMarket" type="tns:RegionalMarketAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="PreviousOwner" type="tns:OwnerAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="DeliveryDate" type="tns:DeliveryAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="VehicleCondition" type="tns:ConditionAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="SpecialUsage" type="tns:UsageAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="PreviousDamage" type="tns:DamageAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="ColorAdjustment" type="tns:ColorAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="DirectImportAdjustment" type="tns:DirectImportAdjustmentType" minOccurs="0"/>
     <xs:element name="ServiceHistory" type="tns:ServiceHistoryAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="Tyre" type="tns:TyreAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="Inspection" type="tns:InspectionAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <xs:element name="Emission" type="tns:EmissionAdjustmentType" minOccurs="0" maxOccurs="1"/>
     <!-- $Author: akh $ $Date: 2007/11/14 10:04:06 $ 
     RoadTax and AdditionalAdjustment added.
         -->
     <xs:element name="RoadTax"  type="tns:RoadTaxAdjustmentType" minOccurs="0" maxOccurs="1">
       <xs:annotation>
           <xs:documentation>Tax for using or keeping a vehicle on public road. It has different names in different countries. For example, it is known as "RFL" (Road Fund License)/Car Tax in UK. It is a fixed amount depending on the vehicle and the country.</xs:documentation>
       </xs:annotation>
     </xs:element>    
     <!-- $Author: akh $ $Date: 2008/03/12 16:24:06 $ 
        DamageRepairCost added.
     -->
     <xs:element name="DamageRepairCost" type="tns:DamageRepairCostAdjustmentType" minOccurs="0" maxOccurs="1">
         <xs:annotation><xs:documentation>Adjustment due to damage repair. </xs:documentation></xs:annotation>
     </xs:element>
     <xs:element name="AdditionalAdjustment" type="tns:AdditionalAdjustmentType" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
     </xs:element>
     <xs:element name="TotalAdjustmentValuation" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1"/>
     <!-- PreviousDamage El. was misiing -->
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="InternalMarketAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Factor" type="tns:internalMarketAdjustmentRange" default="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="RegionalMarketAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Factor" type="tns:regionalMarketAdjustmentRange" default="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="OwnerAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <!-- data type changed from unsignedShort to int -->		   
     <xs:element name="Factor" type="xs:int" default="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="DeliveryAdjustmentType">
    <xs:sequence>
     <xs:element name="DeliveryDate" type="tns:ETGdateType">
      <xs:annotation>
       <xs:documentation>The delivery date of the vehicle must be greater than the valuation date. For current date valuation, the delivery date must be a date in future.</xs:documentation>
       
      </xs:annotation>
     </xs:element>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ConditionAdjustmentType">
    <xs:annotation>
     <xs:documentation></xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:choice>
          <xs:element name="ConditionCode" type="xs:int" minOccurs="0" maxOccurs="1"/>
          <xs:element name="Amount" type="xs:double" minOccurs="0" maxOccurs="1" />
        </xs:choice>
        <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0" maxOccurs="1" />
     <!-- Restrict conditionCode value by type restrictions used in XML schema -->
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="DamageAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:choice>
      <xs:element name="Factor" type="xs:int" default="0"/>
      <xs:element name="Amount" type="xs:double"/>
     </xs:choice>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
     <!-- Restrict conditionCode value by type restrictions used in XML schema -->
    </xs:sequence>
   </xs:complexType>
   <!-- $Author: akh $ $Date: 2008/03/12 16:24:06 $ -->
   <xs:complexType name="DamageRepairCostAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Amount" type="xs:double" minOccurs="0" maxOccurs="1">
      <xs:annotation>
        <xs:documentation>This is an amount that has to be payed for damage 
        repair before selling the vehicle. It has an impact on total trade and
        B2B value, but not to the retail value.</xs:documentation>
      </xs:annotation>
     </xs:element>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   
   
   
   
   <xs:complexType name="UsageAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:choice>
      <xs:element name="Factor" type="xs:int" default="0"/>
      <xs:element name="Amount" type="xs:double"/>
     </xs:choice>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
     <!-- Restrict conditionCode value by type restrictions used in XML schema -->
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="TyreAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Amount" type="xs:double"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="InspectionAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Amount" type="xs:double"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="EmissionAdjustmentType">
    <xs:annotation>
     <xs:documentation>Adjustment factor related to emission. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Amount" type="xs:double"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ServiceHistoryAdjustmentType">
    <xs:sequence>
      <xs:choice>
       <!-- 03/04/2006 Default value of Factor is removed -->		    
       <xs:element name="Factor" type="xs:int" />
       <xs:element name="Amount" type="xs:double" />       
     </xs:choice>	     
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ColorAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:choice>
      <xs:element name="Factor" type="xs:int"/>
      <xs:element name="Amount" type="xs:double"/>
     </xs:choice>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
     <!-- we can not restrict datatype as we did it with internalMarketFactor. UK has col. condition code, CH has range in % -->
     <!-- Restrict conditionCode value by type restrictions used in XML schema -->
    </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name="DirectImportAdjustmentType">
    <xs:annotation>
     <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
     <xs:element name="Factor" type="tns:directImportAdjustmentRange" default="0"/>
     <xs:element name="Valuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>

   <xs:complexType name="ArrayOfEquipment">
    <xs:sequence>
     <xs:element name="Equipment" type="tns:OptionType" minOccurs="0" maxOccurs="unbounded"/>
     <xs:element name="TotalEquipmentValuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfValueAddedItem">
    <xs:sequence>
     <xs:element name="ValueAddedItem" type="tns:ValueAddedItemType" minOccurs="0" maxOccurs="unbounded"/>
     <xs:element name="TotalValueAddedItemValuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfDevaluationItem">
    <xs:sequence>
     <xs:element name="DevaluationItem" type="tns:DevaluationItemType" minOccurs="0" maxOccurs="unbounded"/>
     <xs:element name="TotalDevaluationItemValuation" type="tns:ValuationAmountType" minOccurs="0"/>
    </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name="ETGversionInformationType">
    <xs:sequence>
      <xs:element name="ServiceVersion" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="IntelligenceVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <!-- We do not use version number in data release -->
      <xs:element name="DataVersionDate" type="tns:ETGdateType" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>

   <!-- $Author: akh $
     The following Complex type is used in error handling, for example SOAP Fault.
     -->
    <xs:complexType name="ErrorType">
	 <xs:sequence>
             <xs:element name="ErrorCode" type="xs:int" minOccurs="1" maxOccurs="1"/>
             <xs:element name="Severity" type="tns:ETGmessageSeverityLevelType" 
			     minOccurs="1" maxOccurs="1"/>
             <xs:element name="ErrorMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
             <xs:element name="ErrorDetail"  type="xs:string" minOccurs="0" maxOccurs="1"/>
	 </xs:sequence>
    </xs:complexType>

   <xs:element name="Error"       type="tns:ErrorType" />     

   <xs:element name="ETGHeader" type="tns:ETGHeaderType"/>
   <xs:element name="GetValuation">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="Settings" type="tns:ETGsettingType"/>
      <xs:element name="Valuation" type="tns:ValuationType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   
   <xs:element name="GetVersion">
      <xs:annotation><xs:documentation>GetVersion Contains mandatory Setting element in request</xs:documentation></xs:annotation>
      <xs:complexType>
        <xs:sequence>	      
           <xs:element name="Settings" type="tns:ETGsettingType" minOccurs="1" maxOccurs="1" />
	   <xs:element name="VersionInformation" type="tns:ETGversionInformationType" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
      </xs:complexType>   
   </xs:element>
   
   <xs:element name="GetVersionResponse">
   <xs:annotation><xs:documentation>GetVersion Contains mandatory Setting element in request</xs:documentation></xs:annotation>
     <xs:complexType>
       <xs:sequence>
          <xs:element name="Settings" type="tns:ETGsettingType" minOccurs="1" maxOccurs="1" />
          <xs:element name="VersionInformation" type="tns:ETGversionInformationType" minOccurs="1" maxOccurs="1" />
       </xs:sequence>
     </xs:complexType>	   
   </xs:element>
   
   
   <xs:element name="GetValuationResponse">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="Settings" type="tns:ETGsettingType"/>
      <xs:element name="Valuation" type="tns:ValuationType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
 
  </xs:schema>
 </wsdl:types>
 <message name="ServiceHeader">
  <part name="etg_header" element="tns:ETGHeader"/>
 </message>
 
 <message name="GetVersionMessage">
    <part name="parameters" element="tns:GetVersion" />
 </message>
 <message name="GetVersionMessageResponse">
    <part name="parameters" element="tns:GetVersionResponse"/>
 </message>
 
 <message name="GetValuationMessage">
  <part name="parameters" element="tns:GetValuation"/>
 </message>
 <message name="GetValuationMessageResponse">
  <part name="parameters" element="tns:GetValuationResponse"/>
 </message>
 <portType name="ValuationSoapPort">

  <operation name="GetVersion">
    <input message="tns:GetVersionMessage"/>
    <output message="tns:GetVersionMessageResponse" />
  </operation>
  <operation name="GetValuation">
   <input message="tns:GetValuationMessage"/>
   <output message="tns:GetValuationMessageResponse"/>
  </operation>
 </portType>
 
 <binding name="ValuationBinding" type="tns:ValuationSoapPort">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 
  <operation name="GetVersion">
   <soap:operation soapAction="http://www.eurotax.com/GetVersion" style="document"/>
   <input>
    <soap:header message="tns:ServiceHeader" part="etg_header" use="literal"/>
    <soap:body use="literal"/>
   </input>
   <output>
    <soap:header message="tns:ServiceHeader" part="etg_header" use="literal"/>
    <soap:body use="literal"/>
   </output>
  </operation>
  
  <operation name="GetValuation">
   <soap:operation soapAction="http://www.eurotax.com/GetValuation" style="document"/>
   <input>
    <soap:header message="tns:ServiceHeader" part="etg_header" use="literal"/>
    <soap:body use="literal"/>
   </input>
   <output>
    <soap:header message="tns:ServiceHeader" part="etg_header" use="literal"/>
    <soap:body use="literal"/>
   </output>
  </operation>
 </binding>
 <service name="ValuationStub">
  <port name="ValuationService" binding="tns:ValuationBinding">
   <documentation>The the value of the attribute "location" is for reference only. The consumer/client application should be able to change the value of the location on demand by the service provider (i.e., EurotaxGlass's International AG). This requirements is a part of client/consumer application acceptance criteria mentioned in the integration guidelines.</documentation>
   <soap:address location="http://webservices.eurotaxglass.com/webservices/Valuation.wsa"/>
  </port>
 </service>
</wsdl:definitions>
