<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="types/taz.xsd" />
<xsd:element name="net" type="netType">
<xsd:key name="edgeKey">
<xsd:selector xpath="edge"/>
<xsd:field xpath="@id"/>
</xsd:key>
<xsd:keyref name="edgeKeyRefFrom" refer="edgeKey">
<xsd:selector xpath="connection"/>
<xsd:field xpath="@from"/>
</xsd:keyref>
<xsd:keyref name="edgeKeyRefTo" refer="edgeKey">
<xsd:selector xpath="connection"/>
<xsd:field xpath="@to"/>
</xsd:keyref>
</xsd:element>
<xsd:complexType name="netType">
<xsd:sequence>
<xsd:element name="location" type="locationType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="type" type="typeType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="edge" type="edgeType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="tlLogic" type="tlLogicType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="junction" type="junctionType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="connection" type="connectionType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="prohibition" type="prohibitionType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="roundabout" type="roundaboutType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="taz" type="tazType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="version">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d+.\d+"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="junctionCornerDetail" type="xsd:int"/>
<xsd:attribute name="junctionLinkDetail" type="xsd:int"/>
<xsd:attribute name="lefthand" type="boolType"/>
<xsd:attribute name="rectangularLaneCut" type="boolType"/>
<xsd:attribute name="walkingareas" type="boolType"/>
<xsd:attribute name="limitTurnSpeed" type="floatType"/>
<xsd:attribute name="checkLaneFoesAll" type="boolType"/>
<xsd:attribute name="checkLaneFoesRoundabout" type="boolType"/>
<xsd:attribute name="tlsIgnoreInternalJunctionJam" type="boolType"/>
<xsd:attribute name="spreadType" type="spreadTypeType"/>
<xsd:attribute name="avoidOverlap" type="boolType"/>
<xsd:attribute name="junctionHigherSpeed" type="boolType"/>
<xsd:attribute name="internalJunctionsVehicleWidth" type="floatType"/>
<xsd:attribute name="junctionsMinimalShape" type="boolType"/>
<xsd:attribute name="junctionsEndpointShape" type="boolType"/>
</xsd:complexType>
<xsd:complexType name="edgeType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="lane" type="laneType" minOccurs="1" maxOccurs="63"/>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="stopOffset" type="stopOffsetType" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="function" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="normal"/>
<xsd:enumeration value="internal"/>
<xsd:enumeration value="connector"/>
<xsd:enumeration value="crossing"/>
<xsd:enumeration value="walkingarea"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="from" type="xsd:string"/>
<xsd:attribute name="to" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="priority" type="xsd:integer" use="optional"/>
<xsd:attribute name="length" type="positiveFloatType" use="optional"/>
<xsd:attribute name="bidi" type="xsd:string" use="optional"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="routingType" type="xsd:string" use="optional"/>
<xsd:attribute name="shape" type="shapeTypeTwo" use="optional"/>
<xsd:attribute name="distance" type="floatType"/>
<xsd:attribute name="spreadType" type="spreadTypeType" use="optional"/>
<xsd:attribute name="crossingEdges" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="spreadTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="center"/>
<xsd:enumeration value="roadCenter"/>
<xsd:enumeration value="right"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="laneType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="neigh" type="neighType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="stopOffset" type="stopOffsetType" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="index" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="allow" type="xsd:string" use="optional"/>
<xsd:attribute name="disallow" type="xsd:string" use="optional"/>
<xsd:attribute name="prefer" type="xsd:string" use="optional"/>
<xsd:attribute name="speed" type="positiveFloatType" use="required"/>
<xsd:attribute name="friction" type="positiveFloatType" use="optional"/>
<xsd:attribute name="length" type="positiveFloatType" use="required"/>
<xsd:attribute name="endOffset" type="positiveFloatType" use="optional"/>
<xsd:attribute name="width" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="acceleration" type="boolType" use="optional"/>
<xsd:attribute name="shape" type="shapeTypeTwo" use="required"/>
<xsd:attribute name="customShape" type="boolType" use="optional"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="changeRight" type="xsd:string" use="optional"/>
<xsd:attribute name="changeLeft" type="xsd:string" use="optional"/>
<xsd:attribute name="outlineShape" type="shapeType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="junctionType">
<xsd:sequence>
<xsd:element name="request" type="requestType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<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="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="traffic_light"/>
<xsd:enumeration value="traffic_light_unregulated"/>
<xsd:enumeration value="traffic_light_right_on_red"/>
<xsd:enumeration value="rail_signal"/>
<xsd:enumeration value="rail_crossing"/>
<xsd:enumeration value="priority"/>
<xsd:enumeration value="priority_stop"/>
<xsd:enumeration value="left_before_right"/>
<xsd:enumeration value="right_before_left"/>
<xsd:enumeration value="allway_stop"/>
<xsd:enumeration value="zipper"/>
<xsd:enumeration value="district"/>
<xsd:enumeration value="unregulated"/>
<xsd:enumeration value="internal"/>
<xsd:enumeration value="dead_end"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="incLanes" type="xsd:string" use="required"/>
<xsd:attribute name="intLanes" type="xsd:string" use="required"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="radius" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="customShape" type="boolType" use="optional"/>
<xsd:attribute name="rightOfWay" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="default"/>
<xsd:enumeration value="mixedPriority"/>
<xsd:enumeration value="allwayStop"/>
<xsd:enumeration value="edgePriority"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fringe" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="default"/>
<xsd:enumeration value="outer"/>
<xsd:enumeration value="inner"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="roundabout" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="1"/>
<xsd:enumeration value="0"/>
<xsd:enumeration value="default"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="requestType">
<xsd:attribute name="index" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="response" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern
value="[01]+">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="foes" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern
value="[01]+">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="cont" type="boolType" use="optional"/>
</xsd:complexType>
<xsd:complexType name="stopOffsetType">
<xsd:attribute name="value" type="nonNegativeFloatType" use="required"/>
<xsd:attribute name="vClasses" type="xsd:string" use="optional"/>
<xsd:attribute name="exceptions" type="xsd:string" use="optional"/>
</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="required"/>
<xsd:attribute name="fromLane" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="toLane" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="pass" 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="uncontrolled" type="boolType" use="optional"/>
<xsd:attribute name="via" type="xsd:string" use="optional"/>
<xsd:attribute name="tl" type="xsd:string" use="optional"/>
<xsd:attribute name="linkIndex" type="xsd:integer" use="optional"/>
<xsd:attribute name="linkIndex2" type="xsd:integer" 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:attribute name="dir" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="s"/>
<xsd:enumeration value="t"/>
<xsd:enumeration value="T"/>
<xsd:enumeration value="l"/>
<xsd:enumeration value="r"/>
<xsd:enumeration value="L"/>
<xsd:enumeration value="R"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="state" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="M"/>
<xsd:enumeration value="m"/>
<xsd:enumeration value="O"/>
<xsd:enumeration value="o"/>
<xsd:enumeration value="="/>
<xsd:enumeration value="-"/>
<xsd:enumeration value="s"/>
<xsd:enumeration value="w"/>
<xsd:enumeration value="Z"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="prohibitionType">
<xsd:attribute name="prohibitor" type="xsd:string" use="required"/>
<xsd:attribute name="prohibited" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="roundaboutType">
<xsd:attribute name="nodes" type="xsd:string" use="required"/>
<xsd:attribute name="edges" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="neighType">
<xsd:attribute name="lane" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>