<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.matsim.org/files/dtd"
xmlns="http://www.matsim.org/files/dtd" elementFormDefault="qualified"
xml:lang="en">
<!-- Editor: Dominik Grether, VSP, Berlin Institute of Technology -->
<!-- This xml schema contains xml definitions for household information in the MATSim framework  -->

<xs:include schemaLocation="http://www.matsim.org/files/dtd/matsimCommon.xsd"/>
<xs:include schemaLocation="http://www.matsim.org/files/dtd/vehicleDefinitionsEnumTypes.xsd"/>

<xs:element name="vehicleDefinitionId">
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="idRefType" />
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="vehicleDefinitions">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="vehicleType" type="vehicleTypeType" minOccurs="1" maxOccurs="unbounded" />
      <xs:element name="vehicle" type="vehicleDefType" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:complexType name="vehicleTypeType">
  <xs:complexContent>
    <xs:extension base="matsimObjectType">
  <xs:sequence>
    <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
    <xs:element name="capacity" type="capacityType" minOccurs="0" maxOccurs="1"/>
    <xs:element name="length" minOccurs="0" maxOccurs="1">  
      <xs:complexType>
        <xs:attribute name="meter" type="xs:decimal" default="7.5"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="width" minOccurs="0" maxOccurs="1">  
      <xs:complexType>
        <xs:attribute name="meter" type="xs:decimal" default="1"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="maximumVelocity" minOccurs="0" maxOccurs="1">
      <xs:complexType>
      <xs:attribute name="meterPerSecond" type="xs:double" use="optional" default="INF"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="engineInformation" type="engineInformationType" minOccurs="0" maxOccurs="1" />
    <xs:element name="accessTime" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="secondsPerPerson" type="xs:decimal" default="1.0"></xs:attribute>
      </xs:complexType>
    </xs:element>    
    <xs:element name="egressTime" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="secondsPerPerson" type="xs:decimal" default="1.0"></xs:attribute>
      </xs:complexType>
    </xs:element>    
    <xs:element name="doorOperation" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="mode" type="doorOperationModeType" default="serial"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="passengerCarEquivalents" minOccurs="0" maxOccurs="1">
    	<xs:complexType>
    		<xs:attribute name="pce" type="xs:decimal" default="1.0"/>
    	</xs:complexType>
    </xs:element>    
  </xs:sequence>
    </xs:extension>
  </xs:complexContent>
<!--  <xs:attribute name="typeId" type="xs:string" use="required" />-->
</xs:complexType>

<xs:complexType name="capacityType">
  <xs:sequence>
    <xs:element name="seats" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="persons" type="xs:nonNegativeInteger"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="standingRoom" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="persons" type="xs:nonNegativeInteger"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="freightCapacity" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="volume" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="cubicMeters" type="xs:double" use="required"/>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="engineInformationType">
  <xs:sequence>
    <xs:element name="fuelType" type="fuelTypeType" minOccurs="1" maxOccurs="1">
    </xs:element>
    <xs:element name="gasConsumption" minOccurs="1" maxOccurs="1">
      <xs:complexType>
        <xs:attribute name="literPerMeter" type="xs:decimal">
        </xs:attribute>
      </xs:complexType>    
    </xs:element>
  </xs:sequence>
</xs:complexType>


<xs:complexType name="vehicleDefType">
  <xs:annotation>
    <xs:documentation></xs:documentation>
  </xs:annotation>
  <xs:complexContent>
    <xs:extension base="matsimObjectType">
      <xs:attribute name="type" type="xs:string" />
    </xs:extension>
  </xs:complexContent>
</xs:complexType>
</xs:schema>
