<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="types/base.xsd" />
<xsd:element name="connections" type="connectionsType"/>
<xsd:complexType name="connectionsType">
<xsd:sequence>
<xsd:element name="location" type="locationType" minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="connection" type="connectionType"/>
<xsd:element name="prohibition" type="prohibitionType"/>
<xsd:element name="delete" type="deleteType"/>
<xsd:element name="crossing" type="crossingType"/>
<xsd:element name="walkingArea" type="walkingAreaType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="version" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d+.\d+"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="connectionType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="conflict" type="conflictType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="from" type="xsd:string" use="required"/>
<xsd:attribute name="to" type="xsd:string" use="optional"/>
<xsd:attribute name="fromLane" type="xsd:nonNegativeInteger" use="optional"/>
<xsd:attribute name="toLane" type="xsd:nonNegativeInteger" use="optional"/>
<xsd:attribute name="pass" type="boolType" use="optional"/>
<xsd:attribute name="uncontrolled" type="boolType" use="optional"/>
<xsd:attribute name="keepClear" type="boolType" use="optional"/>
<xsd:attribute name="contPos" type="floatType" use="optional"/>
<xsd:attribute name="visibility" type="floatType" use="optional"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
<xsd:attribute name="speed" type="floatType" use="optional"/>
<xsd:attribute name="length" type="floatType" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
<xsd:attribute name="changeRight" type="xsd:string" use="optional"/>
<xsd:attribute name="changeLeft" type="xsd:string" use="optional"/>
<xsd:attribute name="indirect" type="boolType" use="optional"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="prohibitionType">
<xsd:attribute name="prohibitor" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".+->.+"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="prohibited" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".+->.+"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="deleteType">
<xsd:attribute name="from" type="xsd:string" use="required"/>
<xsd:attribute name="to" type="xsd:string" use="optional"/>
<xsd:attribute name="fromLane" type="xsd:nonNegativeInteger" use="optional"/>
<xsd:attribute name="toLane" type="xsd:nonNegativeInteger" use="optional"/>
</xsd:complexType>
<xsd:complexType name="crossingType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="node" type="xsd:string" use="required"/>
<xsd:attribute name="edges" type="xsd:string" use="optional"/>
<xsd:attribute name="priority" type="xsd:int" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
<xsd:attribute name="discard" type="boolType" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
<xsd:attribute name="outlineShape" type="shapeType" use="optional"/>
<xsd:attribute name="linkIndex" type="xsd:integer" use="optional"/>
<xsd:attribute name="linkIndex2" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="walkingAreaType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="node" type="xsd:string" use="required"/>
<xsd:attribute name="edges" type="xsd:string" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
</xsd:complexType>
</xsd:schema>