<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:include schemaLocation="types/route.xsd"/> <xsd:include schemaLocation="additional_file.xsd"/> <xsd:element name="snapshot"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="rngState" type="rngStateType" minOccurs="0"/> <xsd:element name="edgeControl" type="edgeControlState" minOccurs="0"/> <xsd:element name="delay" type="delayStateType" minOccurs="1"/> <xsd:element name="vTypeDistribution" type="vTypeDistributionStateType" minOccurs="0"/> <xsd:element name="routeDistribution" type="routeDistributionStateType" minOccurs="0"/> <xsd:element name="vType" type="vTypeType" minOccurs="0"/> <xsd:element name="vehicle" type="vehicleStateType" minOccurs="0"/> <xsd:element name="transportables" type="transportablesStateType" minOccurs="0"/> <xsd:element name="route" type="routeStateType" minOccurs="0"/> <xsd:element name="flowState" type="flowStateType" minOccurs="0"/> <xsd:element name="lane" type="laneStateType" minOccurs="0"/> <xsd:element name="segment" type="segmentStateType" minOccurs="0"/> <xsd:element name="vehicleTransfer" type="vehicleTransferType" minOccurs="0"/> <xsd:element name="railSignalConstraintTracker" type="railSignalConstraintTrackerType" minOccurs="0"/> <xsd:element name="railSignalConstraints" type="railSignalConstraintsType" minOccurs="0"/> <xsd:element name="tlLogic" type="tlStateType" minOccurs="0"/> <xsd:element name="driveWay" type="driveWayStateType" minOccurs="0"/> <xsd:element name="subDriveWay" type="driveWayStateType" minOccurs="0"/> <xsd:element name="routingEngine" type="routingEngineType" minOccurs="0"/> </xsd:choice> <xsd:attribute name="version" type="xsd:string"/> <xsd:attribute name="time" type="timeType"/> <xsd:attribute name="type" type="xsd:string"/> <xsd:attribute name="constraints" type="boolType"/> <xsd:attribute name="rail" type="boolType"/> </xsd:complexType> </xsd:element> <xsd:complexType name="rngStateType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="rngLane" type="rngLaneType" minOccurs="0"/> </xsd:choice> <xsd:attribute name="default" type="xsd:string" use="required"/> <xsd:attribute name="routeHandler" type="xsd:string" use="optional"/> <xsd:attribute name="insertionControl" type="xsd:string" use="optional"/> <xsd:attribute name="device" type="xsd:string" use="optional"/> <xsd:attribute name="device.btreceiver" type="xsd:string" use="optional"/> <xsd:attribute name="device.toc" type="xsd:string" use="optional"/> <xsd:attribute name="driverState" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="edgeControlState"> <xsd:attribute name="lanes" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="rngLaneType"> <xsd:attribute name="index" type="xsd:int" use="required"/> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="delayStateType"> <xsd:attribute name="number" type="xsd:int" use="required"/> <xsd:attribute name="begin" type="xsd:integer" use="required"/> <xsd:attribute name="end" type="xsd:integer" use="required"/> <xsd:attribute name="depart" type="floatType" use="required"/> <xsd:attribute name="time" type="nonNegativeFloatType" use="required"/> </xsd:complexType> <xsd:complexType name="vTypeDistributionStateType"> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="vTypes" type="xsd:string" use="required"/> <xsd:attribute name="probabilities" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="routeDistributionStateType"> <xsd:complexContent> <xsd:extension base="routeDistributionType"> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="flowStateType"> <xsd:complexContent> <xsd:extension base="flowType"> <xsd:attribute name="index" type="xsd:nonNegativeInteger" use="required"/> <xsd:attribute name="done" type="xsd:nonNegativeInteger" use="required"/> <xsd:attribute name="next" type="timeType" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="vehicleStateType"> <xsd:sequence> <xsd:element name="stop" type="stopType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="device" type="deviceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="rem" type="remType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="route" type="xsd:string"/> <xsd:attribute name="reroute" type="boolType"/> <xsd:attribute name="fromTaz" type="xsd:string"/> <xsd:attribute name="toTaz" type="xsd:string"/> <xsd:attribute name="type" type="xsd:string"/> <xsd:attribute name="depart" type="departType" use="required"/> <xsd:attribute name="color" type="colorType"/> <xsd:attribute name="departLane" type="departLaneType"/> <xsd:attribute name="departPos" type="departPosType"/> <xsd:attribute name="departSpeed" type="departSpeedType"/> <xsd:attribute name="departEdge" type="routeIndexType"/> <xsd:attribute name="arrivalEdge" type="routeIndexType"/> <xsd:attribute name="arrivalLane" type="arrivalLaneType"/> <xsd:attribute name="arrivalPos" type="arrivalPosType"/> <xsd:attribute name="arrivalPosRandomized" type="nonNegativeFloatType"/> <xsd:attribute name="arrivalSpeed" type="arrivalSpeedType"/> <xsd:attribute name="departPosLat" type="departPosLatType"/> <xsd:attribute name="arrivalPosLat" type="arrivalPosLatType"/> <xsd:attribute name="arrival" type="timeType"/> <xsd:attribute name="routeLength" type="nonNegativeFloatType"/> <xsd:attribute name="line" type="xsd:string"/> <xsd:attribute name="personNumber" type="xsd:nonNegativeInteger"/> <xsd:attribute name="containerNumber" type="xsd:nonNegativeInteger"/> <xsd:attribute name="insertionChecks" type="xsd:string"/> <xsd:attribute name="parkingBadges" type="xsd:string"/> <xsd:attribute name="pos" type="xsd:string"/> <xsd:attribute name="posLat" type="floatType"/> <xsd:attribute name="speed" type="xsd:string"/> <xsd:attribute name="angle" type="floatType"/> <xsd:attribute name="speedFactor" type="nonNegativeFloatType"/> <xsd:attribute name="waitingTime" type="xsd:string"/> <xsd:attribute name="distance" type="xsd:string" use="required"/> <xsd:attribute name="state" type="xsd:string" use="required"/> <xsd:attribute name="lcState" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="deviceType"> <xsd:attribute name="id" type="xsd:string" use="required"/> <!-- device optional if vehicle has not departed yet --> <xsd:attribute name="state" type="xsd:string" use="optional"/> <!-- device specific attributes --> <xsd:attribute name="exitTimes" type="xsd:string" use="optional"/> <xsd:attribute name="edge" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="remType"> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="time" type="timeType" use="required"/> <xsd:attribute name="pos" type="xsd:float" use="required"/> </xsd:complexType> <xsd:complexType name="transportablesStateType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="person" type="personStateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="container" type="containerStateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="type" type="xsd:string" use="required"/> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="personStateType"> <xsd:complexContent> <xsd:extension base="personType"> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="containerStateType"> <xsd:complexContent> <xsd:extension base="containerType"> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="routeStateType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="stop" type="stopType"/> <xsd:element name="param" type="paramType"/> </xsd:choice> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="state" type="xsd:string" use="required"/> <xsd:attribute name="edges" type="xsd:string" use="required"/> <xsd:attribute name="color" type="colorType"/> </xsd:complexType> <xsd:complexType name="laneStateType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="vehicles" type="vehiclesType" minOccurs="0" maxOccurs="1"/> <xsd:element name="link" type="linkType" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="vehiclesType"> <xsd:attribute name="value" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="linkType"> <xsd:sequence> <xsd:element name="approaching" type="approachingType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="to" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="approachingType"> <xsd:attribute name="id" type="idType" use="required"/> <xsd:attribute name="arrivalTime" type="xsd:integer" use="required"/> <xsd:attribute name="arrivalSpeed" type="floatType" use="required"/> <xsd:attribute name="departSpeed" type="floatType" use="required"/> <xsd:attribute name="request" type="boolType" use="required"/> <xsd:attribute name="arrivalTimeBraking" type="xsd:integer" use="optional"/> <xsd:attribute name="arrivalSpeedBraking" type="floatType" use="required"/> <xsd:attribute name="waitingTime" type="xsd:integer" use="required"/> <xsd:attribute name="distance" type="floatType" use="required"/> <xsd:attribute name="posLat" type="floatType" use="optional"/> </xsd:complexType> <xsd:complexType name="segmentStateType"> <xsd:sequence> <xsd:element name="vehicles" type="queueType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="queueType"> <xsd:attribute name="time" type="xsd:long" use="required"/> <xsd:attribute name="blockTime" type="xsd:long" use="required"/> <xsd:attribute name="value" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="vehicleTransferType"> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="depart" type="xsd:integer" use="required"/> <xsd:attribute name="parking" type="xsd:string" use="optional"/> <xsd:attribute name="jump" type="boolType" use="optional"/> </xsd:complexType> <xsd:complexType name="railSignalConstraintTrackerType"> <xsd:attribute name="lane" type="xsd:string" use="required"/> <xsd:attribute name="index" type="xsd:int" use="required"/> <xsd:attribute name="state" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="tlStateType"> <xsd:attribute name="id" type="idType" use="required"/> <xsd:attribute name="programID" type="xsd:string" use="required"/> <xsd:attribute name="phase" type="xsd:int" use="required"/> <xsd:attribute name="duration" type="xsd:integer" use="required"/> </xsd:complexType> <xsd:complexType name="driveWayStateType"> <xsd:attribute name="id" type="idType" use="required"/> <xsd:attribute name="edges" type="xsd:string" use="required"/> <xsd:attribute name="vehicles" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="routingEngineType"> <xsd:sequence> <xsd:element name="edge" type="routingEngineEdgeType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="last" type="xsd:int" use="required"/> <xsd:attribute name="index" type="xsd:int" use="required"/> </xsd:complexType> <xsd:complexType name="routingEngineEdgeType"> <xsd:attribute name="id" type="idType" use="required"/> <xsd:attribute name="speed" type="floatType" use="required"/> <xsd:attribute name="pastSpeed" type="xsd:string" use="optional"/> <xsd:attribute name="bikeSpeed" type="floatType" use="optional"/> <xsd:attribute name="pastBikeSpeed" type="xsd:string" use="optional"/> </xsd:complexType> </xsd:schema>