<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="types/metadata.xsd"/>
<xsd:include schemaLocation="types/route.xsd"/>
<xsd:include schemaLocation="types/taz.xsd"/>
<xsd:element name="additional" type="additionalType"/>
<xsd:element name="rerouterValue" type="rerouterValuesType"/>
<xsd:complexType name="additionalType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="location" type="locationType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="vTypeProbe" type="vTypeProbeType" minOccurs="0"/>
<xsd:element name="e1Detector" type="e1DetectorType" minOccurs="0"/>
<xsd:element name="inductionLoop" type="e1DetectorType" minOccurs="0"/>
<xsd:element name="e2Detector" type="e2DetectorType" minOccurs="0"/>
<xsd:element name="laneAreaDetector" type="e2DetectorType" minOccurs="0"/>
<xsd:element name="e3Detector" type="e3DetectorType" minOccurs="0"/>
<xsd:element name="entryExitDetector" type="e3DetectorType" minOccurs="0"/>
<xsd:element name="edgeData" type="meandataType" minOccurs="0"/>
<xsd:element name="laneData" type="meandataType" minOccurs="0"/>
<xsd:element name="timedEvent" type="timedEventType" minOccurs="0"/>
<xsd:element name="tlLogic" type="tlLogicAdditionalType" minOccurs="0"/>
<xsd:element name="WAUT" type="WAUTType" minOccurs="0"/>
<xsd:element name="wautJunction" type="wautJunctionType" minOccurs="0"/>
<xsd:element name="variableSpeedSign" type="variableSpeedSignType" minOccurs="0"/>
<xsd:element name="routeProbe" type="routeProbeType" minOccurs="0"/>
<xsd:element name="rerouter" type="rerouterType" minOccurs="0"/>
<xsd:element name="instantInductionLoop" type="instantInductionLoopType" minOccurs="0"/>
<xsd:element name="busStop" type="busStopType" minOccurs="0"/>
<xsd:element name="trainStop" type="busStopType" minOccurs="0"/>
<xsd:element name="containerStop" type="containerStopType" minOccurs="0"/>
<xsd:element name="chargingStation" type="chargingStationType" minOccurs="0"/>
<xsd:element name="overheadWireSegment" type="overheadWireSegmentType" minOccurs="0"/>
<xsd:element name="tractionSubstation" type="tractionSubstationType" minOccurs="0"/>
<xsd:element name="overheadWireClamp" type="overheadWireClampType" minOccurs="0"/>
<xsd:element name="overheadWire" type="overheadWireType" minOccurs="0"/>
<xsd:element name="parkingArea" type="parkingAreaType" minOccurs="0"/>
<xsd:element name="calibrator" type="calibratorType" minOccurs="0"/>
<xsd:element name="vaporizer" type="vaporizerType" minOccurs="0"/>
<xsd:element name="railSignalConstraints" type="railSignalConstraintsType" minOccurs="0"/>
<xsd:element name="deadlock" type="deadlockType" minOccurs="0"/>
<xsd:element name="vTypeDistribution" type="vTypeDistributionType" minOccurs="0"/>
<xsd:element name="routeDistribution" type="routeDistributionType" minOccurs="0"/>
<xsd:element name="vType" type="vTypeType" minOccurs="0"/>
<xsd:element name="route" type="routeType" minOccurs="0"/>
<xsd:element name="vehicle" type="vehicleType" minOccurs="0"/>
<xsd:element name="flow" type="flowType" minOccurs="0"/>
<xsd:element name="trip" type="tripType" minOccurs="0"/>
<xsd:element name="person" type="personType" minOccurs="0"/>
<xsd:element name="personFlow" type="personFlowType" minOccurs="0"/>
<xsd:element name="container" type="containerType" minOccurs="0"/>
<xsd:element name="containerFlow" type="containerFlowType" minOccurs="0"/>
<xsd:element name="interval" type="flowIntervalType" minOccurs="0"/>
<xsd:element name="poly" type="polygonType" minOccurs="0"/>
<xsd:element name="poi" type="poiType" minOccurs="0"/>
<xsd:element name="taz" type="tazType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="type" type="typeType" minOccurs="0"/>
<xsd:element name="preference" type="preferenceType"/>
<xsd:element name="include" type="includeType" minOccurs="0"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="rerouterValuesType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interval" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="closingReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
<xsd:attribute name="until" type="timeType" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="closingLaneReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="destProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="routeProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="parkingAreaReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
<xsd:attribute name="visible" type="boolType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="viaProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="overtakingReroute">
<xsd:complexType>
<xsd:attribute name="main" type="xsd:string" use="required"/>
<xsd:attribute name="siding" type="xsd:string" use="required"/>
<xsd:attribute name="minSaving" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="stationReroute">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="minSaving" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="begin" type="timeType" use="required"/>
<xsd:attribute name="end" type="timeType" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="e1DetectorType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="detectorIdType" use="required"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="pos" type="floatType" use="required"/>
<xsd:attribute name="length" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="nextEdges" type="xsd:string" use="optional"/>
<xsd:attribute name="detectPersons" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="friendlyPos" use="optional" type="boolType"/>
<!-- allow reading typed detectors (dfrouter/flowrouter) -->
<xsd:attribute name="type" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="vTypeProbeType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="e2DetectorType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="detectorIdType" use="required"/>
<xsd:attribute name="lane" type="xsd:string" use="optional"/>
<xsd:attribute name="lanes" type="xsd:string" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="pos" type="floatType" use="optional"/>
<xsd:attribute name="endPos" type="floatType" use="optional"/>
<xsd:attribute name="length" type="floatType" use="optional"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="tl" type="xsd:string" use="optional"/>
<xsd:attribute name="to" type="xsd:string" use="optional"/>
<xsd:attribute name="cont" type="boolType" use="optional"/>
<xsd:attribute name="timeThreshold" type="floatType" use="optional"/>
<xsd:attribute name="speedThreshold" type="floatType" use="optional"/>
<xsd:attribute name="jamThreshold" type="floatType" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="nextEdges" type="xsd:string" use="optional"/>
<xsd:attribute name="detectPersons" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="friendlyPos" use="optional" type="boolType"/>
<xsd:attribute name="show" use="optional" type="boolType"/>
</xsd:complexType>
<xsd:complexType name="e3DetectorType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="2" maxOccurs="unbounded">
<xsd:element name="detEntry" type="detEntryExitType" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="detExit" type="detEntryExitType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="detectorIdType" use="required"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="timeThreshold" type="floatType" use="optional"/>
<xsd:attribute name="speedThreshold" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="nextEdges" type="xsd:string" use="optional"/>
<xsd:attribute name="detectPersons" type="xsd:string" use="optional"/>
<xsd:attribute name="openEntry" type="boolType" use="optional"/>
<xsd:attribute name="expectArrival" type="boolType" use="optional"/>
<xsd:attribute name="pos" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="detEntryExitType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="pos" type="floatType" use="required"/>
<xsd:attribute name="friendlyPos" use="optional" type="boolType">
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="meandataType">
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="emissions"/>
<xsd:enumeration value="hbefa"/> <!-- deprecated in favor of emissions -->
<xsd:enumeration value="harmonoise"/>
<xsd:enumeration value="amitran"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="begin" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="end" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="maxTraveltime" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="excludeEmpty" use="optional">
<xsd:simpleType>
<xsd:union memberTypes="boolType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="defaults"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="withInternal" type="boolType" use="optional"/>
<xsd:attribute name="trackVehicles" type="boolType" use="optional"/>
<xsd:attribute name="detectPersons" type="xsd:string" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="writeAttributes" type="xsd:string" use="optional"/>
<xsd:attribute name="edges" type="xsd:string" use="optional"/>
<xsd:attribute name="edgesFile" type="xsd:string" use="optional"/>
<xsd:attribute name="aggregate" use="optional">
<xsd:simpleType>
<xsd:union memberTypes="boolType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="taz"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="minSamples" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="speedThreshold" type="floatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="timedEventType">
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SaveTLSProgram"/>
<xsd:enumeration value="SaveTLSStates"/>
<xsd:enumeration value="SaveTLSSwitchTimes"/>
<xsd:enumeration value="SaveTLSSwitchStates"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="source" type="xsd:string" use="optional"/>
<xsd:attribute name="dest" type="xsd:string" use="required"/>
<xsd:attribute name="saveDetectors" type="boolType" use="optional"/>
<xsd:attribute name="saveConditions" type="boolType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="WAUTType">
<xsd:sequence>
<xsd:element name="wautSwitch" type="wautSwitchType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="refTime" type="timeType"/>
<xsd:attribute name="startProg" type="xsd:string" use="required"/>
<xsd:attribute name="period" type="timeType"/>
</xsd:complexType>
<xsd:complexType name="wautSwitchType">
<xsd:attribute name="time" type="timeType" use="required"/>
<xsd:attribute name="to" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="wautJunctionType">
<xsd:attribute name="wautID" type="xsd:string" use="required"/>
<xsd:attribute name="junctionID" type="xsd:string" use="required"/>
<xsd:attribute name="procedure" type="xsd:string"/>
<xsd:attribute name="synchron" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="variableSpeedSignType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="step" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="time" type="nonNegativeFloatType" use="required"/>
<xsd:attribute name="speed" type="floatType" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="lanes" type="xsd:string" use="required"/>
<xsd:attribute name="file" type="xsd:string" use="optional"/>
<xsd:attribute name="pos" type="xsd:string" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="routeProbeType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="edge" type="xsd:string" use="optional"/>
<xsd:attribute name="begin" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional" />
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="rerouterType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="include" type="includeType" minOccurs="0"/>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interval" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="closingReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
<xsd:attribute name="until" type="timeType" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="closingLaneReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="destProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="routeProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="parkingAreaReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
<xsd:attribute name="visible" type="boolType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="viaProbReroute">
<xsd:complexType>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="overtakingReroute">
<xsd:complexType>
<xsd:attribute name="main" type="xsd:string" use="required"/>
<xsd:attribute name="siding" type="xsd:string" use="required"/>
<xsd:attribute name="minSaving" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="defer" type="boolType" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="stationReroute">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="minSaving" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="begin" type="timeType" use="required"/>
<xsd:attribute name="end" type="timeType" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="edges" type="xsd:string" use="optional"/>
<xsd:attribute name="probability" type="nonNegativeFloatType"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="timeThreshold" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="pos" type="xsd:string" use="optional"/>
<xsd:attribute name="radius" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="visible" type="boolType" use="optional"/>
<xsd:attribute name="off" type="boolType" use="optional"/>
<xsd:attribute name="optional" type="boolType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="instantInductionLoopType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="detectorIdType" use="required"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="pos" type="floatType" use="required"/>
<xsd:attribute name="file" type="xsd:string" use="required"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="nextEdges" type="xsd:string" use="optional"/>
<xsd:attribute name="detectPersons" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="busStopType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="access" type="accessType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="color" type="colorType" use="optional"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="startPos" type="floatType"/>
<xsd:attribute name="endPos" type="floatType"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="lines" type="xsd:string" use="optional"/>
<xsd:attribute name="personCapacity" type="nonNegativeIntType" use="optional"/>
<xsd:attribute name="parkingLength" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="containerStopType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="access" type="accessType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="color" type="colorType" use="optional"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="startPos" type="floatType"/>
<xsd:attribute name="endPos" type="floatType"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="lines" type="xsd:string" use="optional"/>
<xsd:attribute name="containerCapacity" type="nonNegativeIntType" use="optional"/>
<xsd:attribute name="parkingLength" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="chargingStationType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="access" type="accessType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="startPos" type="floatType"/>
<xsd:attribute name="endPos" type="floatType"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="lines" type="xsd:string" use="optional"/>
<xsd:attribute name="power" type="floatType" use="optional"/>
<xsd:attribute name="totalPower" type="floatType" use="optional"/>
<xsd:attribute name="efficiency" type="floatType" use="optional"/>
<xsd:attribute name="chargeInTransit" type="boolType" use="optional"/>
<xsd:attribute name="chargeDelay" type="floatType" use="optional"/>
<xsd:attribute name="chargeType" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="normal"/>
<xsd:enumeration value="battery-exchange"/>
<xsd:enumeration value="fuel"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="waitingTime" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="parkingArea" type="xsd:string" use="optional"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="overheadWireSegmentType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="voltageSource" type="boolType" use="optional"/>
<xsd:attribute name="startPos" type="floatType" use="optional"/>
<xsd:attribute name="endPos" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="tractionSubstationType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="voltage" type="floatType" use="optional"/>
<xsd:attribute name="currentLimit" type="floatType" use="optional"/>
<xsd:attribute name="pos" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="overheadWireClampType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="substationId" type="xsd:string" use="required"/>
<xsd:attribute name="idSegmentStartClamp" type="xsd:string" use="required"/>
<xsd:attribute name="idSegmentEndClamp" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="overheadWireType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="segments" type="xsd:string" use="required"/>
<xsd:attribute name="substationId" type="xsd:string" use="required"/>
<xsd:attribute name="clamps" type="xsd:string" use="optional"/>
<xsd:attribute name="forbiddenInnerLanes" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="accessPosType">
<xsd:union memberTypes="floatType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="random"/>
<xsd:enumeration value="doors"/>
<xsd:enumeration value="carriage"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
<xsd:complexType name="accessType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="pos" type="accessPosType" use="required"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="length" type="nonNegativeFloatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="parkingAreaType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="space" type="parkingSpaceType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="access" type="accessType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="lane" type="xsd:string" use="required"/>
<xsd:attribute name="roadsideCapacity" type="nonNegativeIntType" use="optional"/>
<xsd:attribute name="onRoad" type="boolType" use="optional"/>
<xsd:attribute name="startPos" type="floatType" use="optional"/>
<xsd:attribute name="endPos" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="lines" type="xsd:string" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
<xsd:attribute name="length" type="positiveFloatType" use="optional"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="departPos" type="floatType" use="optional"/>
<xsd:attribute name="lefthand" type="boolType" use="optional"/>
<xsd:attribute name="acceptedBadges" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="parkingSpaceType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="x" type="floatType" use="required"/>
<xsd:attribute name="y" type="floatType" use="required"/>
<xsd:attribute name="z" type="floatType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
<xsd:attribute name="length" type="positiveFloatType" use="optional"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="slope" type="floatType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="calibratorType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="include" type="includeType" minOccurs="0"/>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="route" type="routeType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="flow" type="flowCalibratorType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="id" type="detectorIdType" use="required"/>
<xsd:attribute name="edge" type="xsd:string" use="optional"/>
<xsd:attribute name="lane" type="xsd:string" use="optional"/>
<xsd:attribute name="node" type="xsd:string" use="optional"/>
<xsd:attribute name="pos" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" type="boolType" use="optional"/>
<xsd:attribute name="local" type="boolType" use="optional"/>
<xsd:attribute name="period" type="positiveFloatType" use="optional"/>
<xsd:attribute name="freq" type="positiveFloatType" use="optional"/>
<xsd:attribute name="file" type="xsd:string" use="optional"/>
<xsd:attribute name="output" type="xsd:string" use="optional"/>
<xsd:attribute name="routeProbe" type="xsd:string" use="optional"/>
<xsd:attribute name="jamThreshold" type="floatType" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="vaporizerType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="begin" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="end" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="railSignalConstraintsType">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="predecessor" type="constraintType"/>
<xsd:element name="insertionPredecessor" type="constraintType"/>
<xsd:element name="foeInsertion" type="constraintType"/>
<xsd:element name="insertionOrder" type="constraintType"/>
<xsd:element name="bidiPredecessor" type="constraintType"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
</xsd:complexType>
<xsd:complexType name="constraintType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="tripId" use="required" type="xsd:string"/>
<xsd:attribute name="tl" use="required" type="idType"/>
<xsd:attribute name="foes" use="required" type="xsd:string"/>
<xsd:attribute name="limit" use="optional" type="positiveIntType"/>
<xsd:attribute name="active" use="optional" type="boolType"/>
</xsd:complexType>
<xsd:complexType name="deadlockType">
<xsd:attribute name="time" type="timeType" use="optional"/>
<xsd:attribute name="vehicles" type="xsd:string" use="optional"/>
<xsd:attribute name="signals" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="polygonType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="color" type="colorType" use="optional"/>
<xsd:attribute name="fill" type="boolType" use="optional"/>
<xsd:attribute name="geo" type="boolType" use="optional"/>
<xsd:attribute name="layer" type="floatType" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="required"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="lineWidth" type="floatType" use="optional"/>
<xsd:attribute name="imgFile" type="xsd:string" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="poiType">
<xsd:sequence>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="icon" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value=""/>
<xsd:enumeration value="pin"/>
<xsd:enumeration value="tree"/>
<xsd:enumeration value="hotel"/>
<xsd:enumeration value="fuel"/>
<xsd:enumeration value="charging_station"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="color" type="colorType" use="optional"/>
<xsd:attribute name="layer" type="floatType" use="optional"/>
<xsd:attribute name="x" type="floatType" use="optional"/>
<xsd:attribute name="y" type="floatType" use="optional"/>
<xsd:attribute name="lon" type="floatType" use="optional"/>
<xsd:attribute name="lat" type="floatType" use="optional"/>
<xsd:attribute name="lane" type="xsd:string" use="optional"/>
<xsd:attribute name="pos" type="floatType" use="optional"/>
<xsd:attribute name="friendlyPos" use="optional" type="boolType"/>
<xsd:attribute name="posLat" type="floatType" use="optional"/>
<xsd:attribute name="angle" type="floatType" use="optional"/>
<xsd:attribute name="imgFile" type="xsd:string" use="optional"/>
<xsd:attribute name="width" type="floatType" use="optional"/>
<xsd:attribute name="height" type="floatType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="preferenceType">
<xsd:attribute name="routingType" type="idType" use="required"/>
<xsd:attribute name="vClasses" type="xsd:string" use="optional"/>
<xsd:attribute name="vTypes" type="xsd:string" use="optional"/>
<xsd:attribute name="priority" type="positiveFloatType" use="required"/>
</xsd:complexType>
<!-- differs from types/base.xsd/tlLogicType in 'type' being optional here -->
<xsd:complexType name="tlLogicAdditionalType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="phase" type="phaseType"/>
<xsd:element name="param" type="paramType"/>
<xsd:element name="condition" type="conditionType"/>
<xsd:element name="assignment" type="assignmentType"/>
<xsd:element name="function" type="functionType"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="type" type="tlTypeType" use="optional"/>
<xsd:attribute name="programID" type="xsd:string" use="required"/>
<xsd:attribute name="offset" type="offsetType" use="optional"/>
</xsd:complexType>
</xsd:schema>