<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:include schemaLocation="types/base.xsd"/>
<xsd:element name="netstate">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="timestep"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="timestep">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="edge"/>
</xsd:sequence>
<xsd:attribute name="time" use="required" type="nonNegativeFloatType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="edge">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded" >
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="lane"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="vehicle"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="person"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="container"/>
</xsd:choice>
<xsd:attribute name="id" use="required" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="lane">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="vehicle"/>
</xsd:sequence>
<xsd:attribute name="id" use="required" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="vehicle">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="person"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="container"/>
</xsd:sequence>
<xsd:attribute name="id" use="required" type="xsd:string"/>
<xsd:attribute name="pos" use="required" type="nonNegativeFloatType"/>
<xsd:attribute name="speed" use="required" type="nonNegativeFloatType"/>
<xsd:attribute name="posLat" use="optional" type="floatType"/>
<xsd:attribute name="speedLat" use="optional" type="floatType"/>
<xsd:attribute name="personNumber" use="optional" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="containerNumber" use="optional" type="xsd:nonNegativeInteger"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="person">
<xsd:complexType>
<xsd:attribute name="id" use="required" type="xsd:string"/>
<xsd:attribute name="pos" use="required" type="nonNegativeFloatType"/>
<xsd:attribute name="angle" use="required" type="floatType"/>
<xsd:attribute name="stage" use="required" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="container">
<xsd:complexType>
<xsd:attribute name="id" use="required" type="xsd:string"/>
<xsd:attribute name="pos" use="required" type="nonNegativeFloatType"/>
<xsd:attribute name="angle" use="required" type="floatType"/>
<xsd:attribute name="stage" use="required" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>