<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema
    xmlns:xs='http://www.w3.org/2001/XMLSchema'
    xmlns:vehicle="http://classic-trader.com/api-schema/vehicle/motorbike"
    xmlns:motorbikeAd="http://classic-trader.com/api-schema/vehicleAd/motorbikeAd"
    xmlns:contact="http://classic-trader.com/api-schema/contact"
    xmlns:location="http://classic-trader.com/api-schema/location"
    xmlns:translated="http://classic-trader.com/api-schema/translated"
    xmlns:image="http://classic-trader.com/api-schema/image"
    xmlns:extra="http://classic-trader.com/api-schema/extra"
    xmlns:asset="http://classic-trader.com/api-schema/asset"
    targetNamespace="http://classic-trader.com/api-schema/vehicleAd/motorbikeAd"
    elementFormDefault="qualified"
    version="1.0.1">

    <xs:import namespace="http://classic-trader.com/api-schema/vehicle/motorbike" schemaLocation="../vehicle/motorbike-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/contact" schemaLocation="../contact-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/location" schemaLocation="../location-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/translated" schemaLocation="../translated-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/image" schemaLocation="../image-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/extra" schemaLocation="../extra-1.0.xsd"/>
    <xs:import namespace="http://classic-trader.com/api-schema/asset" schemaLocation="../asset-1.0.xsd"/>

    <!-- motorbikeAd -->
    <xs:element name="motorbikeAd">
        <xs:complexType>
            <xs:sequence>
                <!-- custom data -->
                <xs:element ref="motorbikeAd:uid" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:importId" minOccurs="1" maxOccurs="1"/>

                <!-- step 0 -->
                <xs:element ref="vehicle:motorbike" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:yearOfProduction" minOccurs="1" maxOccurs="1"/>

                <!-- step 1 -->
                <xs:element ref="motorbikeAd:titleShort" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:horsepower" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:cubicCapacity" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:engineType" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:cylinder" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:gearbox" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:gearType" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:gears" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:starter" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:gearShiftType" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:chassisFront" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:chassisRear" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:frontBrakes" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:rearBrakes" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:mileageUnit" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:mileageByUnit" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:fuel" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:numberOfPreviousOwner" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:firstRegistrationDate" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:chassisNumber" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:engineNumber" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:gearboxNumber" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:replica" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:matchingNumbers" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:colorOutside" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:manufacturerColorNameOutside" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:price" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:priceCurrency" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:priceOnRequest" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:vatReclaimable" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="location:location" minOccurs="1" maxOccurs="1"/>

                <!-- step 2 -->
                <xs:element ref="motorbikeAd:standardImages" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:damageImages" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:restorationImages" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:embeddedVideoCode" minOccurs="0" maxOccurs="1"/>

                <!-- step 3 -->
                <xs:element ref="motorbikeAd:description" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:extras" minOccurs="0" maxOccurs="1"/>

                <!-- step 4 -->
                <xs:element ref="motorbikeAd:stateCategory" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:licensed" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:accidentFree" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:readyToRide" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:report" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:mainInspection" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:oldtimerLicensePlate" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:files" minOccurs="0" maxOccurs="1"/>

                <!-- Step 5 -->
                <xs:element ref="contact:contact" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:status" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:locale" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="motorbikeAd:hasChanges" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="uid" type="xs:string"/>
    <xs:element name="importId" type="xs:string"/>
    <xs:element name="cubicCapacity">
        <xs:simpleType>
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="1"/>
                <xs:maxInclusive value="10000"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="horsepower">
        <xs:simpleType>
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="1"/>
                <xs:maxInclusive value="1000"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="manufacturerCode" type='xs:string'/>
    <xs:element name="chassisNumber" type='xs:string'/>
    <xs:element name="gears">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="ONE"/>
                <xs:enumeration value="TWO"/>
                <xs:enumeration value="THREE"/>
                <xs:enumeration value="FOUR"/>
                <xs:enumeration value="FIVE"/>
                <xs:enumeration value="SIX"/>
                <xs:enumeration value="SEVEN"/>
                <xs:enumeration value="EIGHT"/>
                <xs:enumeration value="NINE"/>
                <xs:enumeration value="TEN"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="gearType" type="xs:string"/>
    <xs:element name="rearBrakes">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="DISC"/>
                <xs:enumeration value="DRUM"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="frontBrakes">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="DISC"/>
                <xs:enumeration value="DRUM"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="cylinder">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="ONE"/>
                <xs:enumeration value="TWO"/>
                <xs:enumeration value="THREE"/>
                <xs:enumeration value="FOUR"/>
                <xs:enumeration value="FIVE"/>
                <xs:enumeration value="SIX"/>
                <xs:enumeration value="SEVEN"/>
                <xs:enumeration value="EIGHT"/>
                <xs:enumeration value="NINE"/>
                <xs:enumeration value="TEN"/>
                <xs:enumeration value="ELEVEN"/>
                <xs:enumeration value="TWELVE"/>
                <xs:enumeration value="SIXTEEN"/>
                <xs:enumeration value="TWENTYFOUR"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="doors">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="NONE"/>
                <xs:enumeration value="ONE"/>
                <xs:enumeration value="TWO"/>
                <xs:enumeration value="THREE"/>
                <xs:enumeration value="FOUR"/>
                <xs:enumeration value="FIVE"/>
                <xs:enumeration value="SIX"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="firstRegistrationDate">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="(18|19|20)\d{2}-\d{2}"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="numberOfPreviousOwner">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="ONE"/>
                <xs:enumeration value="TWO"/>
                <xs:enumeration value="THREE"/>
                <xs:enumeration value="FOUR"/>
                <xs:enumeration value="FIVE"/>
                <xs:enumeration value="SIX"/>
                <xs:enumeration value="GREATERSIX"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="matchingNumbers" type='xs:boolean'/>
    <xs:element name="replica" type='xs:boolean'/>
    <xs:element name="report" type='xs:boolean'/>
    <xs:element name="colorInside">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="BEIGE"/>
                <xs:enumeration value="BLUE"/>
                <xs:enumeration value="BROWN"/>
                <xs:enumeration value="YELLOW"/>
                <xs:enumeration value="GREY"/>
                <xs:enumeration value="GREEN"/>
                <xs:enumeration value="PURPLE"/>
                <xs:enumeration value="ORANGE"/>
                <xs:enumeration value="RED"/>
                <xs:enumeration value="BLACK"/>
                <xs:enumeration value="WHITE"/>
                <xs:enumeration value="GOLD"/>
                <xs:enumeration value="SILVER"/>
                <xs:enumeration value="OTHERS"/>
                <xs:enumeration value="NOT_SPECIFIED"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="colorOutside">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="BEIGE"/>
                <xs:enumeration value="BLUE"/>
                <xs:enumeration value="BROWN"/>
                <xs:enumeration value="YELLOW"/>
                <xs:enumeration value="GREY"/>
                <xs:enumeration value="GREEN"/>
                <xs:enumeration value="PURPLE"/>
                <xs:enumeration value="ORANGE"/>
                <xs:enumeration value="RED"/>
                <xs:enumeration value="BLACK"/>
                <xs:enumeration value="WHITE"/>
                <xs:enumeration value="GOLD"/>
                <xs:enumeration value="SILVER"/>
                <xs:enumeration value="OTHERS"/>
                <xs:enumeration value="NOT_SPECIFIED"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="interiorMaterial">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="CLOTH"/>
                <xs:enumeration value="LEATHER"/>
                <xs:enumeration value="PARTIAL_LEATHER"/>
                <xs:enumeration value="LEATHERETTE"/>
                <xs:enumeration value="ALCANTARA"/>
                <xs:enumeration value="VELVET"/>
                <xs:enumeration value="OTHERS"/>
                <xs:enumeration value="NOT_SPECIFIED"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="sunroof" type='xs:boolean'/>
    <xs:element name="airconditioning" type='xs:boolean'/>
    <xs:element name="abs" type='xs:boolean'/>
    <xs:element name="centralLocking" type='xs:boolean'/>
    <xs:element name="cruiseControl" type='xs:boolean'/>
    <xs:element name="electricWindows" type='xs:boolean'/>
    <xs:element name="heatedSeats" type='xs:boolean'/>
    <xs:element name="airbag" type='xs:boolean'/>
    <xs:element name="powerSteering" type='xs:boolean'/>
    <xs:element name="gearbox" type="xs:string"/>
    <xs:element name="steering">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="CENTER"/>
                <xs:enumeration value="LEFT"/>
                <xs:enumeration value="RIGHT"/>
                <xs:enumeration value="NOT_SPECIFIED"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="fuel">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="GASOLINE"/>
                <xs:enumeration value="DIESEL"/>
                <xs:enumeration value="GAS"/>
                <xs:enumeration value="ELECTRO"/>
                <xs:enumeration value="NOT_SPECIFIED"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="starsEngine" type='xs:integer'/>
    <xs:element name="starsTechnik" type='xs:integer'/>
    <xs:element name="starsPaint" type='xs:integer'/>
    <xs:element name="starsInterior" type='xs:integer'/>
    <xs:element name="stateCategory">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="ORIGINAL"/>
                <xs:enumeration value="AUTHENTIC"/>
                <xs:enumeration value="RESTORED"/>
                <xs:enumeration value="PARTIALLY_RESTORED"/>
                <xs:enumeration value="REBUILT"/>
                <xs:enumeration value="OBJECT"/>
                <xs:enumeration value="DONATOR"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="reportProvider" type='xs:string'/>
    <xs:element name="reportMark" type='xs:string'/>
    <xs:element name="engineNumber" type='xs:string'/>
    <xs:element name="gearboxNumber" type='xs:string'/>
    <xs:element name="foldingRoof" type='xs:boolean'/>
    <xs:element name="lockedManufacturerCode" type='xs:boolean'/>
    <xs:element name="licensed" type='xs:boolean'/>
    <xs:element name="readyToRide" type='xs:boolean'/>
    <xs:element name="milleMiglia" type='xs:boolean'/>
    <xs:element name="mainInspection" type='xs:boolean'/>
    <xs:element name="oldtimerLicensePlate" type='xs:boolean'/>
    <xs:element name="fiva" type='xs:boolean'/>
    <xs:element name="fia" type='xs:boolean'/>
    <xs:element name="accidentFree" type='xs:boolean'/>
    <xs:element name="mainInspectionUntil">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="(18|19|20)\d{2}-\d{2}"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>

    <xs:element name="titleShort" type="translated:locales"/>
    <xs:element name="manufacturerColorNameInside" type='translated:locales'/>
    <xs:element name="manufacturerColorNameOutside" type='translated:locales'/>
    <xs:element name="description" type='translated:locales'/>
    <xs:element name="status">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="DELETED"/>
                <xs:enumeration value="SOLD"/>
                <xs:enumeration value="PAUSED"/>
                <xs:enumeration value="PUBLISHED"/>
                <xs:enumeration value="DRAFT"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="price">
        <xs:simpleType>
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="priceCurrency">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="eur"/>
                <xs:enumeration value="usd"/>
                <xs:enumeration value="jpy"/>
                <xs:enumeration value="bgn"/>
                <xs:enumeration value="czk"/>
                <xs:enumeration value="dkk"/>
                <xs:enumeration value="gbp"/>
                <xs:enumeration value="huf"/>
                <xs:enumeration value="ltl"/>
                <xs:enumeration value="pln"/>
                <xs:enumeration value="ron"/>
                <xs:enumeration value="sek"/>
                <xs:enumeration value="chf"/>
                <xs:enumeration value="nok"/>
                <xs:enumeration value="hrk"/>
                <xs:enumeration value="rub"/>
                <xs:enumeration value="try"/>
                <xs:enumeration value="aud"/>
                <xs:enumeration value="brl"/>
                <xs:enumeration value="cad"/>
                <xs:enumeration value="cny"/>
                <xs:enumeration value="hkd"/>
                <xs:enumeration value="idr"/>
                <xs:enumeration value="ils"/>
                <xs:enumeration value="inr"/>
                <xs:enumeration value="krw"/>
                <xs:enumeration value="mxn"/>
                <xs:enumeration value="myr"/>
                <xs:enumeration value="nzd"/>
                <xs:enumeration value="php"/>
                <xs:enumeration value="sgd"/>
                <xs:enumeration value="thb"/>
                <xs:enumeration value="zar"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="priceOnRequest" type='xs:boolean'/>
    <xs:element name="mileageUnit">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="KILOMETRES"/>
                <xs:enumeration value="MILES"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="mileageByUnit" type='xs:integer'/>
    <xs:element name="vatReclaimable" type='xs:boolean'/>
    <xs:element name="yearOfProduction">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="(18|19|20)\d{2}"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="embeddedVideoCode">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="(http://.*|https://.*)"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="locale">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="de_DE"/>
                <xs:enumeration value="en_GB"/>
                <xs:enumeration value="en_US"/>
                <xs:enumeration value="it_IT"/>
                <xs:enumeration value="fr_FR"/>
                <xs:enumeration value="es_ES"/>
                <xs:enumeration value="nl_NL"/>
                <xs:enumeration value="de_CH"/>
                <xs:enumeration value="en_AU"/>
                <xs:enumeration value="de_AT"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="hasChanges" type='xs:boolean'/>

    <!--  abstract vehicle fields -->
    <xs:element name="starter">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="90"/>
                <xs:minLength value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="engineType">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="90"/>
                <xs:minLength value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="gearShiftType">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="90"/>
                <xs:minLength value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="chassisFront">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="90"/>
                <xs:minLength value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="chassisRear">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="90"/>
                <xs:minLength value="1"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="standardImages">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="image:image" minOccurs="0" maxOccurs="50"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="damageImages">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="image:image" minOccurs="0" maxOccurs="50"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="restorationImages">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="image:image" minOccurs="0" maxOccurs="50"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="extras">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="extra:extra" minOccurs="0" maxOccurs="50"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="files">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="asset:asset" minOccurs="0" maxOccurs="10"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
