LINK.java

//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 
// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2019.03.16 at 06:21:55 PM CET 
//


package org.opentrafficsim.xml.generated;

import java.awt.Color;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Generated;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlIDREF;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.djunits.value.vdouble.scalar.Direction;
import org.djunits.value.vdouble.scalar.Duration;
import org.djunits.value.vdouble.scalar.LinearDensity;
import org.djunits.value.vdouble.scalar.Speed;
import org.opentrafficsim.xml.bindings.ClassNameAdapter;
import org.opentrafficsim.xml.bindings.ColorAdapter;
import org.opentrafficsim.xml.bindings.CoordinateListAdapter;
import org.opentrafficsim.xml.bindings.DirectionAdapter;
import org.opentrafficsim.xml.bindings.DrivingDirectionAdapter;
import org.opentrafficsim.xml.bindings.DurationAdapter;
import org.opentrafficsim.xml.bindings.GTUPositionAdapter;
import org.opentrafficsim.xml.bindings.LaneKeepingAdapter;
import org.opentrafficsim.xml.bindings.LeftRightAdapter;
import org.opentrafficsim.xml.bindings.LengthAdapter;
import org.opentrafficsim.xml.bindings.LengthBeginEndAdapter;
import org.opentrafficsim.xml.bindings.PerLengthAdapter;
import org.opentrafficsim.xml.bindings.SignedLengthAdapter;
import org.opentrafficsim.xml.bindings.SpeedAdapter;
import org.opentrafficsim.xml.bindings.types.ArcDirection;
import org.opentrafficsim.xml.bindings.types.DrivingDirectionType;
import org.opentrafficsim.xml.bindings.types.GTUPositionType;
import org.opentrafficsim.xml.bindings.types.LaneKeepingType;
import org.opentrafficsim.xml.bindings.types.LengthBeginEnd;
import org.opentrafficsim.xml.bindings.types.Point3dList;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;choice&gt;
 *           &lt;element name="STRAIGHT" type="{http://www.w3.org/2001/XMLSchema}anyType"/&gt;
 *           &lt;element name="BEZIER"&gt;
 *             &lt;complexType&gt;
 *               &lt;complexContent&gt;
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                   &lt;attribute name="STARTDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *                   &lt;attribute name="ENDDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *                   &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
 *                 &lt;/restriction&gt;
 *               &lt;/complexContent&gt;
 *             &lt;/complexType&gt;
 *           &lt;/element&gt;
 *           &lt;element name="CLOTHOID"&gt;
 *             &lt;complexType&gt;
 *               &lt;complexContent&gt;
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                   &lt;attribute name="STARTDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *                   &lt;attribute name="STARTCURVATURE" use="required" type="{http://www.opentrafficsim.org/ots}PERLENGTHTYPE" /&gt;
 *                   &lt;attribute name="ENDDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *                   &lt;attribute name="ENDCURVATURE" use="required" type="{http://www.opentrafficsim.org/ots}PERLENGTHTYPE" /&gt;
 *                   &lt;attribute name="LENGTH" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
 *                   &lt;attribute name="ENDELEVATION" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
 *                   &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
 *                 &lt;/restriction&gt;
 *               &lt;/complexContent&gt;
 *             &lt;/complexType&gt;
 *           &lt;/element&gt;
 *           &lt;element name="ARC"&gt;
 *             &lt;complexType&gt;
 *               &lt;complexContent&gt;
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                   &lt;attribute name="RADIUS" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
 *                   &lt;attribute name="DIRECTION" use="required" type="{http://www.opentrafficsim.org/ots}LEFTRIGHTTYPE" /&gt;
 *                   &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
 *                 &lt;/restriction&gt;
 *               &lt;/complexContent&gt;
 *             &lt;/complexType&gt;
 *           &lt;/element&gt;
 *           &lt;element name="POLYLINE"&gt;
 *             &lt;complexType&gt;
 *               &lt;complexContent&gt;
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                   &lt;attribute name="INTERMEDIATEPOINTS" use="required" type="{http://www.opentrafficsim.org/ots}COORDINATELISTTYPE" /&gt;
 *                 &lt;/restriction&gt;
 *               &lt;/complexContent&gt;
 *             &lt;/complexType&gt;
 *           &lt;/element&gt;
 *         &lt;/choice&gt;
 *         &lt;element name="LANEOVERRIDE" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="LEGALSPEEDLIMIT" type="{http://www.opentrafficsim.org/ots}SPEEDTYPE" /&gt;
 *                 &lt;attribute name="DIRECTION" type="{http://www.opentrafficsim.org/ots}DRIVINGDIRECTIONTYPE" /&gt;
 *                 &lt;attribute name="COLOR" type="{http://www.opentrafficsim.org/ots}COLORTYPE" /&gt;
 *                 &lt;attribute name="OVERTAKING" type="{http://www.opentrafficsim.org/ots}OVERTAKINGTYPE" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="GENERATOR" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="POSITION" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
 *                 &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="IAT" use="required" type="{http://www.opentrafficsim.org/ots}TIMEDISTTYPE" /&gt;
 *                 &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
 *                 &lt;attribute name="MAXGTU" type="{http://www.w3.org/2001/XMLSchema}double" /&gt;
 *                 &lt;attribute name="STARTTIME" type="{http://www.opentrafficsim.org/ots}DURATIONTYPE" /&gt;
 *                 &lt;attribute name="ENDTIME" type="{http://www.opentrafficsim.org/ots}DURATIONTYPE" /&gt;
 *                 &lt;attribute name="ROUTE" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="ROUTEMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="LISTGENERATOR" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="POSITION" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
 *                 &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
 *                 &lt;attribute name="ROUTE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="FILL" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="DISTANCE" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHDISTTYPE" /&gt;
 *                 &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
 *                 &lt;attribute name="MAXGTU" type="{http://www.w3.org/2001/XMLSchema}double" /&gt;
 *                 &lt;attribute name="ROUTE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="BLOCK" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="SENSOR" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="NAME" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
 *                 &lt;attribute name="CLASS" use="required" type="{http://www.opentrafficsim.org/ots}CLASSNAMETYPE" /&gt;
 *                 &lt;attribute name="TRIGGER" use="required" type="{http://www.opentrafficsim.org/ots}GTUPOSITIONTYPE" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="TRAFFICLIGHT" type="{http://www.opentrafficsim.org/ots}TRAFFICLIGHTTYPE" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="SIGNALGROUP" type="{http://www.opentrafficsim.org/ots}SIGNALGROUPTYPE" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="SINK" maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *                 &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *       &lt;/sequence&gt;
 *       &lt;attribute name="NAME" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="NODESTART" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" /&gt;
 *       &lt;attribute name="NODEEND" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" /&gt;
 *       &lt;attribute name="ROADLAYOUT" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="OFFSETSTART" type="{http://www.opentrafficsim.org/ots}SIGNEDLENGTHTYPE" default="0.0 m" /&gt;
 *       &lt;attribute name="OFFSETEND" type="{http://www.opentrafficsim.org/ots}SIGNEDLENGTHTYPE" default="0.0 m" /&gt;
 *       &lt;attribute name="ROTATIONSTART" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *       &lt;attribute name="ROTATIONEND" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
 *       &lt;attribute name="LANEKEEPING" type="{http://www.opentrafficsim.org/ots}LANEKEEPINGTYPE" default="KEEPRIGHT" /&gt;
 *       &lt;attribute name="PRIORITY" type="{http://www.opentrafficsim.org/ots}PRIORITYTYPE" /&gt;
 *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}base"/&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "straight",
    "bezier",
    "clothoid",
    "arc",
    "polyline",
    "laneoverride",
    "generator",
    "listgenerator",
    "fill",
    "block",
    "sensor",
    "trafficlight",
    "signalgroup",
    "sink"
})
@XmlRootElement(name = "LINK")
@Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
public class LINK {

    @XmlElement(name = "STRAIGHT")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected Object straight;
    @XmlElement(name = "BEZIER")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected LINK.BEZIER bezier;
    @XmlElement(name = "CLOTHOID")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected LINK.CLOTHOID clothoid;
    @XmlElement(name = "ARC")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected LINK.ARC arc;
    @XmlElement(name = "POLYLINE")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected LINK.POLYLINE polyline;
    @XmlElement(name = "LANEOVERRIDE")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.LANEOVERRIDE> laneoverride;
    @XmlElement(name = "GENERATOR")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.GENERATOR> generator;
    @XmlElement(name = "LISTGENERATOR")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.LISTGENERATOR> listgenerator;
    @XmlElement(name = "FILL")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.FILL> fill;
    @XmlElement(name = "BLOCK")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.BLOCK> block;
    @XmlElement(name = "SENSOR")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.SENSOR> sensor;
    @XmlElement(name = "TRAFFICLIGHT")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<TRAFFICLIGHTTYPE> trafficlight;
    @XmlElement(name = "SIGNALGROUP")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<SIGNALGROUPTYPE> signalgroup;
    @XmlElement(name = "SINK")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected List<LINK.SINK> sink;
    @XmlAttribute(name = "NAME", required = true)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected String name;
    @XmlAttribute(name = "NODESTART", required = true)
    @XmlIDREF
    @XmlSchemaType(name = "IDREF")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected org.opentrafficsim.xml.generated.NODE nodestart;
    @XmlAttribute(name = "NODEEND", required = true)
    @XmlIDREF
    @XmlSchemaType(name = "IDREF")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected org.opentrafficsim.xml.generated.NODE nodeend;
    @XmlAttribute(name = "ROADLAYOUT")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected String roadlayout;
    @XmlAttribute(name = "OFFSETSTART")
    @XmlJavaTypeAdapter(SignedLengthAdapter.class)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected org.djunits.value.vdouble.scalar.Length offsetstart;
    @XmlAttribute(name = "OFFSETEND")
    @XmlJavaTypeAdapter(SignedLengthAdapter.class)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected org.djunits.value.vdouble.scalar.Length offsetend;
    @XmlAttribute(name = "ROTATIONSTART")
    @XmlJavaTypeAdapter(DirectionAdapter.class)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected Direction rotationstart;
    @XmlAttribute(name = "ROTATIONEND")
    @XmlJavaTypeAdapter(DirectionAdapter.class)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected Direction rotationend;
    @XmlAttribute(name = "LANEKEEPING")
    @XmlJavaTypeAdapter(LaneKeepingAdapter.class)
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected LaneKeepingType lanekeeping;
    @XmlAttribute(name = "PRIORITY")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected String priority;
    @XmlAttribute(name = "base", namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    protected String base;

    /**
     * Gets the value of the straight property.
     * 
     * @return
     *     possible object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public Object getSTRAIGHT() {
        return straight;
    }

    /**
     * Sets the value of the straight property.
     * 
     * @param value
     *     allowed object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setSTRAIGHT(Object value) {
        this.straight = value;
    }

    /**
     * Gets the value of the bezier property.
     * 
     * @return
     *     possible object is
     *     {@link LINK.BEZIER }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public LINK.BEZIER getBEZIER() {
        return bezier;
    }

    /**
     * Sets the value of the bezier property.
     * 
     * @param value
     *     allowed object is
     *     {@link LINK.BEZIER }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setBEZIER(LINK.BEZIER value) {
        this.bezier = value;
    }

    /**
     * Gets the value of the clothoid property.
     * 
     * @return
     *     possible object is
     *     {@link LINK.CLOTHOID }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public LINK.CLOTHOID getCLOTHOID() {
        return clothoid;
    }

    /**
     * Sets the value of the clothoid property.
     * 
     * @param value
     *     allowed object is
     *     {@link LINK.CLOTHOID }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setCLOTHOID(LINK.CLOTHOID value) {
        this.clothoid = value;
    }

    /**
     * Gets the value of the arc property.
     * 
     * @return
     *     possible object is
     *     {@link LINK.ARC }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public LINK.ARC getARC() {
        return arc;
    }

    /**
     * Sets the value of the arc property.
     * 
     * @param value
     *     allowed object is
     *     {@link LINK.ARC }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setARC(LINK.ARC value) {
        this.arc = value;
    }

    /**
     * Gets the value of the polyline property.
     * 
     * @return
     *     possible object is
     *     {@link LINK.POLYLINE }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public LINK.POLYLINE getPOLYLINE() {
        return polyline;
    }

    /**
     * Sets the value of the polyline property.
     * 
     * @param value
     *     allowed object is
     *     {@link LINK.POLYLINE }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setPOLYLINE(LINK.POLYLINE value) {
        this.polyline = value;
    }

    /**
     * Gets the value of the laneoverride property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the laneoverride property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getLANEOVERRIDE().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.LANEOVERRIDE }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.LANEOVERRIDE> getLANEOVERRIDE() {
        if (laneoverride == null) {
            laneoverride = new ArrayList<LINK.LANEOVERRIDE>();
        }
        return this.laneoverride;
    }

    /**
     * Gets the value of the generator property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the generator property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getGENERATOR().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.GENERATOR }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.GENERATOR> getGENERATOR() {
        if (generator == null) {
            generator = new ArrayList<LINK.GENERATOR>();
        }
        return this.generator;
    }

    /**
     * Gets the value of the listgenerator property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the listgenerator property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getLISTGENERATOR().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.LISTGENERATOR }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.LISTGENERATOR> getLISTGENERATOR() {
        if (listgenerator == null) {
            listgenerator = new ArrayList<LINK.LISTGENERATOR>();
        }
        return this.listgenerator;
    }

    /**
     * Gets the value of the fill property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the fill property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFILL().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.FILL }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.FILL> getFILL() {
        if (fill == null) {
            fill = new ArrayList<LINK.FILL>();
        }
        return this.fill;
    }

    /**
     * Gets the value of the block property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the block property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getBLOCK().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.BLOCK }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.BLOCK> getBLOCK() {
        if (block == null) {
            block = new ArrayList<LINK.BLOCK>();
        }
        return this.block;
    }

    /**
     * Gets the value of the sensor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the sensor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getSENSOR().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.SENSOR }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.SENSOR> getSENSOR() {
        if (sensor == null) {
            sensor = new ArrayList<LINK.SENSOR>();
        }
        return this.sensor;
    }

    /**
     * Gets the value of the trafficlight property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the trafficlight property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTRAFFICLIGHT().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TRAFFICLIGHTTYPE }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<TRAFFICLIGHTTYPE> getTRAFFICLIGHT() {
        if (trafficlight == null) {
            trafficlight = new ArrayList<TRAFFICLIGHTTYPE>();
        }
        return this.trafficlight;
    }

    /**
     * Gets the value of the signalgroup property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the signalgroup property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getSIGNALGROUP().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link SIGNALGROUPTYPE }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<SIGNALGROUPTYPE> getSIGNALGROUP() {
        if (signalgroup == null) {
            signalgroup = new ArrayList<SIGNALGROUPTYPE>();
        }
        return this.signalgroup;
    }

    /**
     * Gets the value of the sink property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the sink property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getSINK().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LINK.SINK }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public List<LINK.SINK> getSINK() {
        if (sink == null) {
            sink = new ArrayList<LINK.SINK>();
        }
        return this.sink;
    }

    /**
     * Gets the value of the name property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public String getNAME() {
        return name;
    }

    /**
     * Sets the value of the name property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setNAME(String value) {
        this.name = value;
    }

    /**
     * Gets the value of the nodestart property.
     * 
     * @return
     *     possible object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public org.opentrafficsim.xml.generated.NODE getNODESTART() {
        return nodestart;
    }

    /**
     * Sets the value of the nodestart property.
     * 
     * @param value
     *     allowed object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setNODESTART(org.opentrafficsim.xml.generated.NODE value) {
        this.nodestart = value;
    }

    /**
     * Gets the value of the nodeend property.
     * 
     * @return
     *     possible object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public org.opentrafficsim.xml.generated.NODE getNODEEND() {
        return nodeend;
    }

    /**
     * Sets the value of the nodeend property.
     * 
     * @param value
     *     allowed object is
     *     {@link Object }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setNODEEND(org.opentrafficsim.xml.generated.NODE value) {
        this.nodeend = value;
    }

    /**
     * Gets the value of the roadlayout property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public String getROADLAYOUT() {
        return roadlayout;
    }

    /**
     * Sets the value of the roadlayout property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setROADLAYOUT(String value) {
        this.roadlayout = value;
    }

    /**
     * Gets the value of the offsetstart property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public org.djunits.value.vdouble.scalar.Length getOFFSETSTART() {
        if (offsetstart == null) {
            return new SignedLengthAdapter().unmarshal("0.0 m");
        } else {
            return offsetstart;
        }
    }

    /**
     * Sets the value of the offsetstart property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setOFFSETSTART(org.djunits.value.vdouble.scalar.Length value) {
        this.offsetstart = value;
    }

    /**
     * Gets the value of the offsetend property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public org.djunits.value.vdouble.scalar.Length getOFFSETEND() {
        if (offsetend == null) {
            return new SignedLengthAdapter().unmarshal("0.0 m");
        } else {
            return offsetend;
        }
    }

    /**
     * Sets the value of the offsetend property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setOFFSETEND(org.djunits.value.vdouble.scalar.Length value) {
        this.offsetend = value;
    }

    /**
     * Gets the value of the rotationstart property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public Direction getROTATIONSTART() {
        return rotationstart;
    }

    /**
     * Sets the value of the rotationstart property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setROTATIONSTART(Direction value) {
        this.rotationstart = value;
    }

    /**
     * Gets the value of the rotationend property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public Direction getROTATIONEND() {
        return rotationend;
    }

    /**
     * Sets the value of the rotationend property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setROTATIONEND(Direction value) {
        this.rotationend = value;
    }

    /**
     * Gets the value of the lanekeeping property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public LaneKeepingType getLANEKEEPING() {
        if (lanekeeping == null) {
            return new LaneKeepingAdapter().unmarshal("KEEPRIGHT");
        } else {
            return lanekeeping;
        }
    }

    /**
     * Sets the value of the lanekeeping property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setLANEKEEPING(LaneKeepingType value) {
        this.lanekeeping = value;
    }

    /**
     * Gets the value of the priority property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public String getPRIORITY() {
        return priority;
    }

    /**
     * Sets the value of the priority property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setPRIORITY(String value) {
        this.priority = value;
    }

    /**
     * Gets the value of the base property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public String getBase() {
        return base;
    }

    /**
     * Sets the value of the base property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public void setBase(String value) {
        this.base = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="RADIUS" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
     *       &lt;attribute name="DIRECTION" use="required" type="{http://www.opentrafficsim.org/ots}LEFTRIGHTTYPE" /&gt;
     *       &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class ARC {

        @XmlAttribute(name = "RADIUS", required = true)
        @XmlJavaTypeAdapter(LengthAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected org.djunits.value.vdouble.scalar.Length radius;
        @XmlAttribute(name = "DIRECTION", required = true)
        @XmlJavaTypeAdapter(LeftRightAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected ArcDirection direction;
        @XmlAttribute(name = "NUMSEGMENTS")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected BigInteger numsegments;

        /**
         * Gets the value of the radius property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public org.djunits.value.vdouble.scalar.Length getRADIUS() {
            return radius;
        }

        /**
         * Sets the value of the radius property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setRADIUS(org.djunits.value.vdouble.scalar.Length value) {
            this.radius = value;
        }

        /**
         * Gets the value of the direction property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public ArcDirection getDIRECTION() {
            return direction;
        }

        /**
         * Sets the value of the direction property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setDIRECTION(ArcDirection value) {
            this.direction = value;
        }

        /**
         * Gets the value of the numsegments property.
         * 
         * @return
         *     possible object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public BigInteger getNUMSEGMENTS() {
            if (numsegments == null) {
                return new BigInteger("64");
            } else {
                return numsegments;
            }
        }

        /**
         * Sets the value of the numsegments property.
         * 
         * @param value
         *     allowed object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setNUMSEGMENTS(BigInteger value) {
            this.numsegments = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="STARTDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
     *       &lt;attribute name="ENDDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
     *       &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class BEZIER {

        @XmlAttribute(name = "STARTDIRECTION")
        @XmlJavaTypeAdapter(DirectionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Direction startdirection;
        @XmlAttribute(name = "ENDDIRECTION")
        @XmlJavaTypeAdapter(DirectionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Direction enddirection;
        @XmlAttribute(name = "NUMSEGMENTS")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected BigInteger numsegments;

        /**
         * Gets the value of the startdirection property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Direction getSTARTDIRECTION() {
            return startdirection;
        }

        /**
         * Sets the value of the startdirection property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setSTARTDIRECTION(Direction value) {
            this.startdirection = value;
        }

        /**
         * Gets the value of the enddirection property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Direction getENDDIRECTION() {
            return enddirection;
        }

        /**
         * Sets the value of the enddirection property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setENDDIRECTION(Direction value) {
            this.enddirection = value;
        }

        /**
         * Gets the value of the numsegments property.
         * 
         * @return
         *     possible object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public BigInteger getNUMSEGMENTS() {
            if (numsegments == null) {
                return new BigInteger("64");
            } else {
                return numsegments;
            }
        }

        /**
         * Sets the value of the numsegments property.
         * 
         * @param value
         *     allowed object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setNUMSEGMENTS(BigInteger value) {
            this.numsegments = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class BLOCK {

        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "POSITION", required = true)
        @XmlJavaTypeAdapter(LengthBeginEndAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LengthBeginEnd position;

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the position property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LengthBeginEnd getPOSITION() {
            return position;
        }

        /**
         * Sets the value of the position property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setPOSITION(LengthBeginEnd value) {
            this.position = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="STARTDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
     *       &lt;attribute name="STARTCURVATURE" use="required" type="{http://www.opentrafficsim.org/ots}PERLENGTHTYPE" /&gt;
     *       &lt;attribute name="ENDDIRECTION" type="{http://www.opentrafficsim.org/ots}DIRECTIONTYPE" /&gt;
     *       &lt;attribute name="ENDCURVATURE" use="required" type="{http://www.opentrafficsim.org/ots}PERLENGTHTYPE" /&gt;
     *       &lt;attribute name="LENGTH" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
     *       &lt;attribute name="ENDELEVATION" type="{http://www.opentrafficsim.org/ots}LENGTHTYPE" /&gt;
     *       &lt;attribute name="NUMSEGMENTS" type="{http://www.w3.org/2001/XMLSchema}integer" default="64" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class CLOTHOID {

        @XmlAttribute(name = "STARTDIRECTION")
        @XmlJavaTypeAdapter(DirectionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Direction startdirection;
        @XmlAttribute(name = "STARTCURVATURE", required = true)
        @XmlJavaTypeAdapter(PerLengthAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LinearDensity startcurvature;
        @XmlAttribute(name = "ENDDIRECTION")
        @XmlJavaTypeAdapter(DirectionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Direction enddirection;
        @XmlAttribute(name = "ENDCURVATURE", required = true)
        @XmlJavaTypeAdapter(PerLengthAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LinearDensity endcurvature;
        @XmlAttribute(name = "LENGTH")
        @XmlJavaTypeAdapter(LengthAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected org.djunits.value.vdouble.scalar.Length length;
        @XmlAttribute(name = "ENDELEVATION")
        @XmlJavaTypeAdapter(LengthAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected org.djunits.value.vdouble.scalar.Length endelevation;
        @XmlAttribute(name = "NUMSEGMENTS")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected BigInteger numsegments;

        /**
         * Gets the value of the startdirection property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Direction getSTARTDIRECTION() {
            return startdirection;
        }

        /**
         * Sets the value of the startdirection property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setSTARTDIRECTION(Direction value) {
            this.startdirection = value;
        }

        /**
         * Gets the value of the startcurvature property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LinearDensity getSTARTCURVATURE() {
            return startcurvature;
        }

        /**
         * Sets the value of the startcurvature property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setSTARTCURVATURE(LinearDensity value) {
            this.startcurvature = value;
        }

        /**
         * Gets the value of the enddirection property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Direction getENDDIRECTION() {
            return enddirection;
        }

        /**
         * Sets the value of the enddirection property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setENDDIRECTION(Direction value) {
            this.enddirection = value;
        }

        /**
         * Gets the value of the endcurvature property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LinearDensity getENDCURVATURE() {
            return endcurvature;
        }

        /**
         * Sets the value of the endcurvature property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setENDCURVATURE(LinearDensity value) {
            this.endcurvature = value;
        }

        /**
         * Gets the value of the length property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public org.djunits.value.vdouble.scalar.Length getLENGTH() {
            return length;
        }

        /**
         * Sets the value of the length property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLENGTH(org.djunits.value.vdouble.scalar.Length value) {
            this.length = value;
        }

        /**
         * Gets the value of the endelevation property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public org.djunits.value.vdouble.scalar.Length getENDELEVATION() {
            return endelevation;
        }

        /**
         * Sets the value of the endelevation property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setENDELEVATION(org.djunits.value.vdouble.scalar.Length value) {
            this.endelevation = value;
        }

        /**
         * Gets the value of the numsegments property.
         * 
         * @return
         *     possible object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public BigInteger getNUMSEGMENTS() {
            if (numsegments == null) {
                return new BigInteger("64");
            } else {
                return numsegments;
            }
        }

        /**
         * Sets the value of the numsegments property.
         * 
         * @param value
         *     allowed object is
         *     {@link BigInteger }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setNUMSEGMENTS(BigInteger value) {
            this.numsegments = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="DISTANCE" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHDISTTYPE" /&gt;
     *       &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
     *       &lt;attribute name="MAXGTU" type="{http://www.w3.org/2001/XMLSchema}double" /&gt;
     *       &lt;attribute name="ROUTE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class FILL {

        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "GTU")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtu;
        @XmlAttribute(name = "GTUMIX")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtumix;
        @XmlAttribute(name = "DISTANCE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String distance;
        @XmlAttribute(name = "INITIALSPEED", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String initialspeed;
        @XmlAttribute(name = "MAXGTU")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Double maxgtu;
        @XmlAttribute(name = "ROUTE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String route;

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the gtu property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTU() {
            return gtu;
        }

        /**
         * Sets the value of the gtu property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTU(String value) {
            this.gtu = value;
        }

        /**
         * Gets the value of the gtumix property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTUMIX() {
            return gtumix;
        }

        /**
         * Sets the value of the gtumix property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTUMIX(String value) {
            this.gtumix = value;
        }

        /**
         * Gets the value of the distance property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getDISTANCE() {
            return distance;
        }

        /**
         * Sets the value of the distance property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setDISTANCE(String value) {
            this.distance = value;
        }

        /**
         * Gets the value of the initialspeed property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getINITIALSPEED() {
            return initialspeed;
        }

        /**
         * Sets the value of the initialspeed property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setINITIALSPEED(String value) {
            this.initialspeed = value;
        }

        /**
         * Gets the value of the maxgtu property.
         * 
         * @return
         *     possible object is
         *     {@link Double }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Double getMAXGTU() {
            return maxgtu;
        }

        /**
         * Sets the value of the maxgtu property.
         * 
         * @param value
         *     allowed object is
         *     {@link Double }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setMAXGTU(Double value) {
            this.maxgtu = value;
        }

        /**
         * Gets the value of the route property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getROUTE() {
            return route;
        }

        /**
         * Sets the value of the route property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setROUTE(String value) {
            this.route = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="POSITION" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
     *       &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="IAT" use="required" type="{http://www.opentrafficsim.org/ots}TIMEDISTTYPE" /&gt;
     *       &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
     *       &lt;attribute name="MAXGTU" type="{http://www.w3.org/2001/XMLSchema}double" /&gt;
     *       &lt;attribute name="STARTTIME" type="{http://www.opentrafficsim.org/ots}DURATIONTYPE" /&gt;
     *       &lt;attribute name="ENDTIME" type="{http://www.opentrafficsim.org/ots}DURATIONTYPE" /&gt;
     *       &lt;attribute name="ROUTE" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="ROUTEMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class GENERATOR {

        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "POSITION")
        @XmlJavaTypeAdapter(LengthBeginEndAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LengthBeginEnd position;
        @XmlAttribute(name = "GTU")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtu;
        @XmlAttribute(name = "GTUMIX")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtumix;
        @XmlAttribute(name = "IAT", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String iat;
        @XmlAttribute(name = "INITIALSPEED", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String initialspeed;
        @XmlAttribute(name = "MAXGTU")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Double maxgtu;
        @XmlAttribute(name = "STARTTIME")
        @XmlJavaTypeAdapter(DurationAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Duration starttime;
        @XmlAttribute(name = "ENDTIME")
        @XmlJavaTypeAdapter(DurationAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Duration endtime;
        @XmlAttribute(name = "ROUTE")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String route;
        @XmlAttribute(name = "ROUTEMIX")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String routemix;

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the position property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LengthBeginEnd getPOSITION() {
            return position;
        }

        /**
         * Sets the value of the position property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setPOSITION(LengthBeginEnd value) {
            this.position = value;
        }

        /**
         * Gets the value of the gtu property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTU() {
            return gtu;
        }

        /**
         * Sets the value of the gtu property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTU(String value) {
            this.gtu = value;
        }

        /**
         * Gets the value of the gtumix property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTUMIX() {
            return gtumix;
        }

        /**
         * Sets the value of the gtumix property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTUMIX(String value) {
            this.gtumix = value;
        }

        /**
         * Gets the value of the iat property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getIAT() {
            return iat;
        }

        /**
         * Sets the value of the iat property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setIAT(String value) {
            this.iat = value;
        }

        /**
         * Gets the value of the initialspeed property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getINITIALSPEED() {
            return initialspeed;
        }

        /**
         * Sets the value of the initialspeed property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setINITIALSPEED(String value) {
            this.initialspeed = value;
        }

        /**
         * Gets the value of the maxgtu property.
         * 
         * @return
         *     possible object is
         *     {@link Double }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Double getMAXGTU() {
            return maxgtu;
        }

        /**
         * Sets the value of the maxgtu property.
         * 
         * @param value
         *     allowed object is
         *     {@link Double }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setMAXGTU(Double value) {
            this.maxgtu = value;
        }

        /**
         * Gets the value of the starttime property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Duration getSTARTTIME() {
            return starttime;
        }

        /**
         * Sets the value of the starttime property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setSTARTTIME(Duration value) {
            this.starttime = value;
        }

        /**
         * Gets the value of the endtime property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Duration getENDTIME() {
            return endtime;
        }

        /**
         * Sets the value of the endtime property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setENDTIME(Duration value) {
            this.endtime = value;
        }

        /**
         * Gets the value of the route property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getROUTE() {
            return route;
        }

        /**
         * Sets the value of the route property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setROUTE(String value) {
            this.route = value;
        }

        /**
         * Gets the value of the routemix property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getROUTEMIX() {
            return routemix;
        }

        /**
         * Sets the value of the routemix property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setROUTEMIX(String value) {
            this.routemix = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="LEGALSPEEDLIMIT" type="{http://www.opentrafficsim.org/ots}SPEEDTYPE" /&gt;
     *       &lt;attribute name="DIRECTION" type="{http://www.opentrafficsim.org/ots}DRIVINGDIRECTIONTYPE" /&gt;
     *       &lt;attribute name="COLOR" type="{http://www.opentrafficsim.org/ots}COLORTYPE" /&gt;
     *       &lt;attribute name="OVERTAKING" type="{http://www.opentrafficsim.org/ots}OVERTAKINGTYPE" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class LANEOVERRIDE {

        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "LEGALSPEEDLIMIT")
        @XmlJavaTypeAdapter(SpeedAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Speed legalspeedlimit;
        @XmlAttribute(name = "DIRECTION")
        @XmlJavaTypeAdapter(DrivingDirectionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected DrivingDirectionType direction;
        @XmlAttribute(name = "COLOR")
        @XmlJavaTypeAdapter(ColorAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Color color;
        @XmlAttribute(name = "OVERTAKING")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String overtaking;

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the legalspeedlimit property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Speed getLEGALSPEEDLIMIT() {
            return legalspeedlimit;
        }

        /**
         * Sets the value of the legalspeedlimit property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLEGALSPEEDLIMIT(Speed value) {
            this.legalspeedlimit = value;
        }

        /**
         * Gets the value of the direction property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public DrivingDirectionType getDIRECTION() {
            return direction;
        }

        /**
         * Sets the value of the direction property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setDIRECTION(DrivingDirectionType value) {
            this.direction = value;
        }

        /**
         * Gets the value of the color property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Color getCOLOR() {
            return color;
        }

        /**
         * Sets the value of the color property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setCOLOR(Color value) {
            this.color = value;
        }

        /**
         * Gets the value of the overtaking property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getOVERTAKING() {
            return overtaking;
        }

        /**
         * Sets the value of the overtaking property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setOVERTAKING(String value) {
            this.overtaking = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="POSITION" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
     *       &lt;attribute name="GTU" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="GTUMIX" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="INITIALSPEED" use="required" type="{http://www.opentrafficsim.org/ots}SPEEDDISTTYPE" /&gt;
     *       &lt;attribute name="ROUTE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class LISTGENERATOR {

        @XmlAttribute(name = "URI", required = true)
        @XmlSchemaType(name = "anyURI")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String uri;
        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "POSITION")
        @XmlJavaTypeAdapter(LengthBeginEndAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LengthBeginEnd position;
        @XmlAttribute(name = "GTU")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtu;
        @XmlAttribute(name = "GTUMIX")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String gtumix;
        @XmlAttribute(name = "INITIALSPEED", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String initialspeed;
        @XmlAttribute(name = "ROUTE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String route;

        /**
         * Gets the value of the uri property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getURI() {
            return uri;
        }

        /**
         * Sets the value of the uri property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setURI(String value) {
            this.uri = value;
        }

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the position property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LengthBeginEnd getPOSITION() {
            return position;
        }

        /**
         * Sets the value of the position property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setPOSITION(LengthBeginEnd value) {
            this.position = value;
        }

        /**
         * Gets the value of the gtu property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTU() {
            return gtu;
        }

        /**
         * Sets the value of the gtu property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTU(String value) {
            this.gtu = value;
        }

        /**
         * Gets the value of the gtumix property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getGTUMIX() {
            return gtumix;
        }

        /**
         * Sets the value of the gtumix property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setGTUMIX(String value) {
            this.gtumix = value;
        }

        /**
         * Gets the value of the initialspeed property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getINITIALSPEED() {
            return initialspeed;
        }

        /**
         * Sets the value of the initialspeed property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setINITIALSPEED(String value) {
            this.initialspeed = value;
        }

        /**
         * Gets the value of the route property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getROUTE() {
            return route;
        }

        /**
         * Sets the value of the route property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setROUTE(String value) {
            this.route = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="INTERMEDIATEPOINTS" use="required" type="{http://www.opentrafficsim.org/ots}COORDINATELISTTYPE" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class POLYLINE {

        @XmlAttribute(name = "INTERMEDIATEPOINTS", required = true)
        @XmlJavaTypeAdapter(CoordinateListAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Point3dList intermediatepoints;

        /**
         * Gets the value of the intermediatepoints property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Point3dList getINTERMEDIATEPOINTS() {
            return intermediatepoints;
        }

        /**
         * Sets the value of the intermediatepoints property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setINTERMEDIATEPOINTS(Point3dList value) {
            this.intermediatepoints = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="NAME" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
     *       &lt;attribute name="CLASS" use="required" type="{http://www.opentrafficsim.org/ots}CLASSNAMETYPE" /&gt;
     *       &lt;attribute name="TRIGGER" use="required" type="{http://www.opentrafficsim.org/ots}GTUPOSITIONTYPE" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class SENSOR {

        @XmlAttribute(name = "NAME")
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String name;
        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "POSITION", required = true)
        @XmlJavaTypeAdapter(LengthBeginEndAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LengthBeginEnd position;
        @XmlAttribute(name = "CLASS", required = true)
        @XmlJavaTypeAdapter(ClassNameAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected Class _class;
        @XmlAttribute(name = "TRIGGER", required = true)
        @XmlJavaTypeAdapter(GTUPositionAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected GTUPositionType trigger;

        /**
         * Gets the value of the name property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getNAME() {
            return name;
        }

        /**
         * Sets the value of the name property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setNAME(String value) {
            this.name = value;
        }

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the position property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LengthBeginEnd getPOSITION() {
            return position;
        }

        /**
         * Sets the value of the position property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setPOSITION(LengthBeginEnd value) {
            this.position = value;
        }

        /**
         * Gets the value of the class property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public Class getCLASS() {
            return _class;
        }

        /**
         * Sets the value of the class property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setCLASS(Class value) {
            this._class = value;
        }

        /**
         * Gets the value of the trigger property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public GTUPositionType getTRIGGER() {
            return trigger;
        }

        /**
         * Sets the value of the trigger property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setTRIGGER(GTUPositionType value) {
            this.trigger = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attribute name="LANE" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *       &lt;attribute name="POSITION" use="required" type="{http://www.opentrafficsim.org/ots}LENGTHBEGINENDTYPE" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
    public static class SINK {

        @XmlAttribute(name = "LANE", required = true)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected String lane;
        @XmlAttribute(name = "POSITION", required = true)
        @XmlJavaTypeAdapter(LengthBeginEndAdapter.class)
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        protected LengthBeginEnd position;

        /**
         * Gets the value of the lane property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public String getLANE() {
            return lane;
        }

        /**
         * Sets the value of the lane property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setLANE(String value) {
            this.lane = value;
        }

        /**
         * Gets the value of the position property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public LengthBeginEnd getPOSITION() {
            return position;
        }

        /**
         * Sets the value of the position property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", date = "2019-03-16T06:21:55+01:00", comments = "JAXB RI v2.3.0")
        public void setPOSITION(LengthBeginEnd value) {
            this.position = value;
        }

    }

}