<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.matsim.org/files/dtd"
           xmlns="http://www.matsim.org/files/dtd"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
           jxb:version="2.1"
           xml:lang="en">

<!-- Editor: Dominik Grether, VSP, Berlin Institute of Technology -->
<!-- Description of the traffic light system to be used in
the simulation -->

<xs:include schemaLocation="matsimCommon.xsd"/>

<xs:element name="signalSystems">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="signalSystemDefinition" type="signalSystemDefinitionType" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="signalGroupDefinition" type="signalGroupDefinitionType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:complexType name="signalSystemDefinitionType">
  <xs:complexContent>
    <xs:extension base="matsimObjectType">
    <xs:sequence>
      <xs:element name="defaultCycleTime" type="matsimTimeAttributeType" minOccurs="0" maxOccurs="1" >
        <xs:annotation>
          <xs:documentation>Umlaufzeit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="defaultSynchronizationOffset" type="matsimTimeAttributeType" minOccurs="0" maxOccurs="1" >
        <xs:annotation>
          <xs:documentation>Versatzzeit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="defaultInterGreenTime" type="matsimTimeAttributeType" minOccurs="0" maxOccurs="1" >
        <xs:annotation>
          <xs:documentation>Zwischenzeit</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="signalGroupDefinitionType">  
  <xs:complexContent>
    <xs:extension base="matsimObjectType">
    <xs:sequence>
      <xs:element name="signalSystemDefinition" type="idRefType" minOccurs="1" maxOccurs="1" > </xs:element>
      <xs:element name="lane" type="idRefType" minOccurs="1" maxOccurs="unbounded"></xs:element>
      <xs:element name="toLink" type="idRefType" minOccurs="1" maxOccurs="unbounded"></xs:element>
    </xs:sequence>
    <xs:attribute name="linkIdRef" type="matsimIdType" use="required"></xs:attribute>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

</xs:schema>