<!--
	This is the DTD for TraffixXML v7.5
-->
<!ELEMENT traffix (	title0?, title1?, title2?, comment0?, comment1?, generation?, distribution?, 
					metric?, volpassbyname?, avgvehlen?, queuemethod?, 
					sortsummarymode?, sortsummarydir?,
					globalvoladj?, globaldeladj?, globalgrowthfac?, delay?,
					defaultpopulation?, maxcycle?, reportgreen?, reportgrademodifier?,
					delaymode*, defaulttimeperiod?, losparam*,
					genrate*, dstrate*, node*, gate*, zone*, linkdata*, route*, text*) >
<!ATTLIST traffix
	majorver CDATA "0"
	minorver CDATA "0"
	reportver CDATA "0000"
	copyrightyear CDATA "2000"
	license CDATA ""
	reporttime CDATA ""
	scenario CDATA ""
>

<!ELEMENT nb EMPTY>
<!ATTLIST nb
	left CDATA "0"
	thru CDATA "0"
	rite CDATA "0"
>
<!ELEMENT sb EMPTY>
<!ATTLIST sb
	left CDATA "0"
	thru CDATA "0"
	rite CDATA "0"
>
<!ELEMENT eb EMPTY>
<!ATTLIST eb
	left CDATA "0"
	thru CDATA "0"
	rite CDATA "0"
>
<!ELEMENT wb EMPTY>
<!ATTLIST wb
	left CDATA "0"
	thru CDATA "0"
	rite CDATA "0"
>
<!ELEMENT nbadj EMPTY>
<!ATTLIST nbadj
	left CDATA "1.00"
	thru CDATA "1.00"
	rite CDATA "1.00"
>
<!ELEMENT sbadj EMPTY>
<!ATTLIST sbadj
	left CDATA "1.00"
	thru CDATA "1.00"
	rite CDATA "1.00"
>
<!ELEMENT ebadj EMPTY>
<!ATTLIST ebadj
	left CDATA "1.00"
	thru CDATA "1.00"
	rite CDATA "1.00"
>
<!ELEMENT wbadj EMPTY>
<!ATTLIST wbadj
	left CDATA "1.00"
	thru CDATA "1.00"
	rite CDATA "1.00"
>
<!ELEMENT nbgc EMPTY>
<!ATTLIST nbgc
	left CDATA "0.00"
	thru CDATA "0.00"
	rite CDATA "0.00"
>
<!ELEMENT sbgc EMPTY>
<!ATTLIST sbgc
	left CDATA "0.00"
	thru CDATA "0.00"
	rite CDATA "0.00"
>
<!ELEMENT ebgc EMPTY>
<!ATTLIST ebgc
	left CDATA "0.00"
	thru CDATA "0.00"
	rite CDATA "0.00"
>
<!ELEMENT wbgc EMPTY>
<!ATTLIST wbgc
	left CDATA "0.00"
	thru CDATA "0.00"
	rite CDATA "0.00"
>
<!ELEMENT nblos EMPTY>
<!ATTLIST nblos
	left CDATA "*"
	thru CDATA "*"
	rite CDATA "*"
>
<!ELEMENT sblos EMPTY>
<!ATTLIST sblos
	left CDATA "*"
	thru CDATA "*"
	rite CDATA "*"
>
<!ELEMENT eblos EMPTY>
<!ATTLIST eblos
	left CDATA "*"
	thru CDATA "*"
	rite CDATA "*"
>
<!ELEMENT wblos EMPTY>
<!ATTLIST wblos
	left CDATA "*"
	thru CDATA "*"
	rite CDATA "*"
>
<!ELEMENT nbbound EMPTY>
<!ATTLIST nbbound
	left (northbound | southbound | eastbound | westbound ) "northbound"
	thru (northbound | southbound | eastbound | westbound ) "northbound"
	rite (northbound | southbound | eastbound | westbound ) "northbound"
>
<!ELEMENT sbbound EMPTY>
<!ATTLIST sbbound
	left (northbound | southbound | eastbound | westbound ) "southbound"
	thru (northbound | southbound | eastbound | westbound ) "southbound"
	rite (northbound | southbound | eastbound | westbound ) "southbound"
>
<!ELEMENT ebbound EMPTY>
<!ATTLIST ebbound
	left (northbound | southbound | eastbound | westbound ) "eastbound"
	thru (northbound | southbound | eastbound | westbound ) "eastbound"
	rite (northbound | southbound | eastbound | westbound ) "eastbound"
>
<!ELEMENT wbbound EMPTY>
<!ATTLIST wbbound
	left (northbound | southbound | eastbound | westbound ) "westbound"
	thru (northbound | southbound | eastbound | westbound ) "westbound"
	rite (northbound | southbound | eastbound | westbound ) "westbound"
>
<!ELEMENT nbturn EMPTY>
<!ATTLIST nbturn
	left (left | thru | rite ) "left"
	thru (left | thru | rite ) "thru"
	rite (left | thru | rite ) "rite"
>
<!ELEMENT sbturn EMPTY>
<!ATTLIST sbturn
	left (left | thru | rite ) "left"
	thru (left | thru | rite ) "thru"
	rite (left | thru | rite ) "rite"
>
<!ELEMENT ebturn EMPTY>
<!ATTLIST ebturn
	left (left | thru | rite ) "left"
	thru (left | thru | rite ) "thru"
	rite (left | thru | rite ) "rite"
>
<!ELEMENT wbturn EMPTY>
<!ATTLIST wbturn
	left (left | thru | rite ) "left"
	thru (left | thru | rite ) "thru"
	rite (left | thru | rite ) "rite"
>

<!--======================================================================
  title0: first line of title on reports.
-->
<!ELEMENT title0 (#PCDATA)>

<!--======================================================================
  title1: second line of title on reports.
-->
<!ELEMENT title1 (#PCDATA)>

<!--======================================================================
  title2: third line of title on reports.
-->
<!ELEMENT title2 (#PCDATA)>

<!--======================================================================
  comment0: first line of comment.
-->
<!ELEMENT comment0 (#PCDATA)>

<!--======================================================================
  comment1: second line of comment.
-->
<!ELEMENT comment1 (#PCDATA)>

<!--======================================================================
  generation: title of trip generation report.
-->
<!ELEMENT generation (#PCDATA)>

<!--======================================================================
  distribution: title of trip distribution report.
-->
<!ELEMENT distribution (#PCDATA)>

<!--======================================================================
  metric: use metric units?
-->
<!ELEMENT metric EMPTY>
<!ATTLIST metric
	val (true | false | yes | no) "false"
>

<!--======================================================================
  volpassbyname: the label used in the reports for the passerby line.
-->
<!ELEMENT volpassbyname (#PCDATA)>

<!--======================================================================
  avgvehlen: the average vehicle length.
-->
<!ELEMENT avgvehlen EMPTY>
<!ATTLIST avgvehlen
	val CDATA "25.0"
>

<!--======================================================================
  queuemethod: the method to use to calculate the queue.
    meanqueue - australian method, mean back of queue after start of green.
    designqueue - design queue length, mean maximum queue length at start of green.
-->
<!ELEMENT queuemethod EMPTY>
<!ATTLIST queuemethod
	val (meanqueue | designqueue | backqueue) "designqueue"
>

<!--======================================================================
  sortsummarymode: order to sort intersection in the los summary  report.
    byindex - by intersection index.
    bybasedelay - by the intersection base delay.
    bybasevc - by the intersection base v/c.
    byfuturedelay - by the intersection future delay.
    byfuturevc - by the intersection future v/c.
    bychange - by the intersection change in delay or v/c.
-->
<!ELEMENT sortsummarymode EMPTY>
<!ATTLIST sortsummarymode
	val (byindex | bybasedelay | bybasevc | byfuturedelay | byfuturevc | bychange) "byindex"
>

<!--======================================================================
  sortsummarydir: sort los summary report ascending or descending?
    false - ascending.
    true - descending.
-->
<!ELEMENT sortsummarydir EMPTY>
<!ATTLIST sortsummarydir
	val (true | false | yes | no) "false"
>

<!--======================================================================
  globalvoladj: global volume adjustment.
-->
<!ELEMENT globalvoladj EMPTY>
<!ATTLIST globalvoladj
	val CDATA "1.00"
>

<!--======================================================================
  globaldeladj: global delay adjustment.
-->
<!ELEMENT globaldeladj EMPTY>
<!ATTLIST globaldeladj
	val CDATA "1.00"
>

<!--======================================================================
  globalgrowthfac: global growth factor.
-->
<!ELEMENT globalgrowthfac EMPTY>
<!ATTLIST globalgrowthfac
	val CDATA "1.00"
>

<!--======================================================================
  delay: parameters for delay calculation.
-->
<!ELEMENT delay EMPTY>
<!ATTLIST delay
	t CDATA "900" 
	a CDATA "0.00" 
	b CDATA "0.00"
	m CDATA "4" 
	n CDATA "2"
>

<!--======================================================================
  defaultpopulation: default population.
-->
<!ELEMENT defaultpopulation EMPTY>
<!ATTLIST defaultpopulation
	val CDATA "0"
>

<!--======================================================================
  maxcycle: the maximum cycle time.
-->
<!ELEMENT maxcycle EMPTY>
<!ATTLIST maxcycle
	val CDATA "120"
>

<!--======================================================================
  reportgreen: report timings as green time values?
    true - report timings as green time.
    false - report timings as green per cycle.
-->
<!ELEMENT reportgreen EMPTY>
<!ATTLIST reportgreen
	val (true | false | yes | no) "false"
>

<!--======================================================================
  reportgrademodifier: add grade modifier to los value.
-->
<!ELEMENT reportgrademodifier EMPTY>
<!ATTLIST reportgrademodifier
	val (true | false | yes | no) "false"
>

<!--======================================================================
  delaymode: the delay calculation method to use for a specific los method.
    mode -
      average = average of all movements.
      averagecrit = average of critical movements.
    calc - calculate delay for this method?
-->
<!ELEMENT delaymode EMPTY>
<!ATTLIST delaymode
	method (Unknown | 85Ops | 85Plan | 94Ops | 94Plan | 212Plan | 212Ops | 212Concord | 90TJKM | 90SanJose | 90ICU | 91ICU | Taiwan91Ops | Taiwan91Plan | Taiwan212Plan | Taiwan212Ops | 85HCM | 94HCM | 4Stop | 94OpsSCVTA | SIGCAP | 97Ops | 97Plan | 97HCM | 97Stop | 00Ops | 00Plan | 00HCM | 00Stop) #REQUIRED
	mode (average | averagecrit) "average"
	calc (true | false | yes | no) "yes"
>

<!--======================================================================
  defaulttimeperiod: default analysis time period.
-->
<!ELEMENT defaulttimeperiod EMPTY>
<!ATTLIST defaulttimeperiod
	val CDATA "0.25"
>

<!--======================================================================
  losparam: los method parameters.
-->
<!ELEMENT losparam (vphg?, pceinterpolate?, pce?, 
					mllf?, mtlf?, mrlf?,
					satmllf?, satmtlf?, satmrlf?,
					satmltlf?, satmrtlf?, satmltrlf?)>
<!ATTLIST losparam
	method (Unknown | 85Ops | 85Plan | 94Ops | 94Plan | 212Plan | 212Ops | 212Concord | 90TJKM | 90SanJose | 90ICU | 91ICU | Taiwan91Ops | Taiwan91Plan | Taiwan212Plan | Taiwan212Ops | 85HCM | 94HCM | 4Stop | 94OpsSCVTA | SIGCAP | 97Ops | 97Plan | 97HCM | 97Stop | 00Ops | 00Plan | 00HCM | 00Stop) #REQUIRED
>
	<!-- *** vphg -->
	<!ELEMENT vphg EMPTY>
	<!ATTLIST vphg
		twophase CDATA #REQUIRED
		threephase CDATA #REQUIRED
		fourplusphase CDATA #REQUIRED
	>
	<!-- *** pce table -->
	<!ELEMENT pceinterpolate EMPTY>
	<!ATTLIST pceinterpolate
		val (true | false | yes | no) #REQUIRED
	>
	<!ELEMENT pce EMPTY>
	<!ATTLIST pce
		vol0 CDATA #REQUIRED
		val0 CDATA #REQUIRED
		vol1 CDATA #REQUIRED
		val1 CDATA #REQUIRED
		vol2 CDATA #REQUIRED
		val2 CDATA #REQUIRED
		vol3 CDATA #REQUIRED
		val3 CDATA #REQUIRED
		vol4 CDATA #REQUIRED
		val4 CDATA #REQUIRED
	>
	<!-- *** volume multi-lane factor -->
	<!ELEMENT mllf EMPTY>
	<!ATTLIST mllf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT mtlf EMPTY>
	<!ATTLIST mtlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT mrlf EMPTY>
	<!ATTLIST mrlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!-- *** saturation multi-lane factor -->
	<!ELEMENT satmllf EMPTY>
	<!ATTLIST satmllf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT satmtlf EMPTY>
	<!ATTLIST satmtlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT satmrlf EMPTY>
	<!ATTLIST satmrlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT satmltlf EMPTY>
	<!ATTLIST satmltlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT satmltrlf EMPTY>
	<!ATTLIST satmltrlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>
	<!ELEMENT satmrtlf EMPTY>
	<!ATTLIST satmrtlf
		onelane CDATA #REQUIRED
		twolanes CDATA #REQUIRED
		threepluslanes CDATA #REQUIRED
	>

<!--======================================================================
  genrate: the names of the trip generation rates.
-->
<!ELEMENT genrate (#PCDATA)>
<!ATTLIST genrate
	index CDATA #REQUIRED
>

<!--======================================================================
  dstrate: the names of the trip distributin rates.
-->
<!ELEMENT dstrate (#PCDATA)>
<!ATTLIST dstrate
	index CDATA #REQUIRED
>

<!--======================================================================
  node: an intersection node in the network.
    index - a unique numeric index for all 'node' tags.
		volume and geometry fields are reproduced at the 'node' level
		but it is recommended that they are placed at the 
		'volumedata' or 'geometrydata' level.
-->
<!ELEMENT node (name?, position?, latlonposition?, links?, namecomment?,
				volumedata?,
					mlfflag?, volmode?, volume?, volindex?, volbound?, volturn?,
					volcountdate?, voltimeperiod?, 
					passerbyname?, passerby?, 
					voladj?, growthfac?, phfvoladj?, 
					volbasereduct?, volfuturereduct?, 
					sneakers?, pedvol?, bikevol?, 
				geometrydata?,
					method?, optimizedbase?, optimizedfuture?,
					control?, yplusar?, mincycle?, speed?, 
					population?, defaultpop?, 
					sat?, rtor?, lanes?, rtgeo?, grade?, vehicle?, critgapadj?, 
					calcbasegc?, basegc?, calcfutgc?, futgc?, 
					usersat?, satadj?, 
					areatype?, signaltype?, coordinated?, streettype?, 
					lanewidth?, metriclanewidth?, crosswalkwidth?, metriccrosswalkwidth?,
					hevveh?, nopark?, parkhour?, bushour?, 
					pedshour?, includerite?, rtprotect?, arrival?, calcsatadj?, 
					deladj?, mingreen?, offset?, timeperiod?, 
					unitextension?, ignoresatmlf?, gradepercent?, mediantype?, gapstorage?, 
					flaredlanequeue?, pedwalkspeed?, metricpedwalkspeed?, calccapacityflag?, 
					alphaval?, upstreamvol?, ignoreupstreamunsigflag?, 
				improvement?,
				resultdata?)>
<!ATTLIST node
	index CDATA #REQUIRED
>
	<!-- *** node name -->
	<!ELEMENT name (#PCDATA)>
	<!-- *** node position -->
	<!ELEMENT position EMPTY>
	<!ATTLIST position
		xpos CDATA "0"
		ypos CDATA "0"
	>
	<!-- *** node latitude/longitude position -->
	<!ELEMENT latlonposition EMPTY>
	<!ATTLIST latlonposition
		latitude CDATA "0.0"
		longitude CDATA "0.0"
	>
	<!-- *** node links (not used) -->
	<!ELEMENT links EMPTY>
	<!ATTLIST links
		n CDATA #IMPLIED
		s CDATA #IMPLIED
		e CDATA #IMPLIED
		w CDATA #IMPLIED
		nz CDATA #IMPLIED
		sz CDATA #IMPLIED
		ez CDATA #IMPLIED
		wz CDATA #IMPLIED
		ng CDATA #IMPLIED
		sg CDATA #IMPLIED
		eg CDATA #IMPLIED
		wg CDATA #IMPLIED
	>
	<!-- *** node name comment -->
	<!ELEMENT namecomment (#PCDATA)>
	<!-- *** node volume data -->
	<!ELEMENT volumedata (	mlfflag?, volmode?, volume?, volindex?, volbound?, volturn?,
							volcountdate?, voltimeperiod?, 
							passerbyname?, passerby?, 
							voladj?, growthfac?, phfvoladj?, 
							volbasereduct?, volfuturereduct?, 
							sneakers?, pedvol?, bikevol?)>
	<!-- *** node geometry data -->
	<!ELEMENT geometrydata (	method?, optimizedbase?, optimizedfuture?,
								control?, yplusar?, mincycle?, speed?, 
								population?, defaultpop?, 
								sat?, rtor?, lanes?, rtgeo?, grade?, vehicle?, critgapadj?, 
								calcbasegc?, basegc?, calcfutgc?, futgc?, 
								usersat?, satadj?, 
								areatype?, signaltype?, coordinated?, streettype?, 
								lanewidth?, metriclanewidth?, crosswalkwidth?, metriccrosswalkwidth?,
								hevveh?, nopark?, parkhour?, bushour?, 
								pedshour?, includerite?, rtprotect?, arrival?, calcsatadj?, 
								deladj?, mingreen?, offset?, timeperiod?, 
								unitextension?, ignoresatmlf?, gradepercent?, mediantype?, gapstorage?, 
								flaredlanequeue?, pedwalkspeed?, metricpedwalkspeed?, calccapacityflag?, 
								alphaval?, upstreamvol?, ignoreupstreamunsigflag?)>
	<!-- *** node use mlf factor? -->
	<!ELEMENT mlfflag EMPTY>
	<!ATTLIST mlfflag
		val (true | false | yes | no) "false"
	>
	<!-- *** node volume mode -->
	<!ELEMENT nbvolmode EMPTY>
	<!ATTLIST nbvolmode
		left (local | remote ) "local"
		thru (local | remote ) "local"
		rite (local | remote ) "local"
	>
	<!ELEMENT sbvolmode EMPTY>
	<!ATTLIST sbvolmode
		left (local | remote ) "local"
		thru (local | remote ) "local"
		rite (local | remote ) "local"
	>
	<!ELEMENT ebvolmode EMPTY>
	<!ATTLIST ebvolmode
		left (local | remote ) "local"
		thru (local | remote ) "local"
		rite (local | remote ) "local"
	>
	<!ELEMENT wbvolmode EMPTY>
	<!ATTLIST wbvolmode
		left (local | remote ) "local"
		thru (local | remote ) "local"
		rite (local | remote ) "local"
	>
	<!ELEMENT volmode (nbvolmode?, ebvolmode?, sbvolmode?, wbvolmode?)>
	<!-- *** node volumes -->
	<!ELEMENT volume (nb?, eb?, sb?, wb?)>
	<!-- *** node volume bound direction for remote linking for volumes -->
	<!ELEMENT volbound (nbbound?, ebbound?, sbbound?, wbbound?)>
	<!-- *** node volume turn direction for remote linking for volumes -->
	<!ELEMENT volturn (nbturn?, ebturn?, sbturn?, wbturn?)>
	<!-- *** node volume index for remote linking for volumes -->
	<!ELEMENT volindex (nb?, eb?, sb?, wb?)>
	<!-- *** node volume count date -->
	<!ELEMENT volcountdate EMPTY>
	<!ATTLIST volcountdate
		year CDATA #REQUIRED
		month CDATA #REQUIRED
		day CDATA #REQUIRED
	>
	<!-- *** node volume time period label -->
	<!ELEMENT voltimeperiod (#PCDATA)>
	<!-- *** node passerby name -->
	<!ELEMENT passerbyname (#PCDATA)>
	<!-- *** node passerby values -->
	<!ELEMENT passerby (nb?, eb?, sb?, wb?)>
	<!-- *** node volume adjustments -->
	<!ELEMENT voladj (nbadj?, ebadj?, sbadj?, wbadj?)>
	<!ATTLIST voladj
		global CDATA "1.00"
	>
	<!-- *** node growth factor -->
	<!ELEMENT growthfac (nbadj?, ebadj?, sbadj?, wbadj?)>
	<!ATTLIST growthfac
		global CDATA "1.00"
	>
	<!-- *** node phf volume adjustments -->
	<!ELEMENT phfvoladj (nbadj?, ebadj?, sbadj?, wbadj?)>
	<!ATTLIST phfvoladj
		global CDATA "1.00"
	>
	<!-- *** node volume base alternative reductions -->
	<!ELEMENT volbasereduct (nb?, eb?, sb?, wb?)>
	<!-- *** node volume future alternative reductions -->
	<!ELEMENT volfuturereduct (nb?, eb?, sb?, wb?)>
	<!-- *** node sneakers -->
	<!ELEMENT sneakers EMPTY>
	<!ATTLIST sneakers
		val CDATA "2.0"
	>
	<!-- *** node los method -->
	<!ELEMENT method (#PCDATA)>
	<!ATTLIST method
		val (Unknown | 85Ops | 85Plan | 94Ops | 94Plan | 212Plan | 212Ops | 212Concord | 90TJKM | 90SanJose | 90ICU | 91ICU | Taiwan91Ops | Taiwan91Plan | Taiwan212Plan | Taiwan212Ops | 85HCM | 94HCM | 4Stop | 94OpsSCVTA | SIGCAP | 97Ops | 97Plan | 97HCM | 97Stop | 00Ops | 00Plan | 00HCM | 00Stop) #REQUIRED
	>
	<!-- *** node signal control, cycle time, and loss time -->
	<!ELEMENT control EMPTY>
	<!ATTLIST control
		nscontrol (left | noleft | split | stop | unctrl | yield | protect | permit | protpmt | stopyld | yldstop | prtpmt | pmtprt | permpp | ppperm | protpp | ppprot | pmtprot | permppr | pprperm | protppr | pprprot | prpppr | pprprp) #REQUIRED
		ewcontrol (left | noleft | split | stop | unctrl | yield | protect | permit | protpmt | stopyld | yldstop | prtpmt | pmtprt | permpp | ppperm | protpp | ppprot | pmtprot | permppr | pprperm | protppr | pprprot | prpppr | pprprp) #REQUIRED
		cycletime CDATA "100"
		losstime CDATA "0"
	>
	<!-- *** node yellow plus all red -->
	<!ELEMENT yplusar EMPTY>
	<!ATTLIST yplusar
		val CDATA "4"
	>
	<!-- *** node minimum cycle time -->
	<!ELEMENT mincycle EMPTY>
	<!ATTLIST mincycle
		val CDATA "0"
	>
	<!-- *** node travel speed through intersection -->
	<!ELEMENT speed EMPTY>
	<!ATTLIST speed
		nsspeed CDATA "30"
		ewspeed CDATA "30"
	>
	<!-- *** node population -->
	<!ELEMENT population EMPTY>
	<!ATTLIST population
		val CDATA "0"
	>
	<!-- *** node use default population? -->
	<!ELEMENT defaultpop EMPTY>
	<!ATTLIST defaultpop
		val (true | false | yes | no) "true"
	>
	<!-- *** node saturation values -->
	<!ELEMENT sat (nb?, eb?, sb?, wb?)>
	<!-- *** node right turn on red -->
	<!ELEMENT rtor EMPTY>
	<!ATTLIST rtor
		nb (Free | No | Ovl | Acc | Chan | free | no | ovl | aux | acc | chan) "No"
		eb (Free | No | Ovl | Acc | Chan | free | no | ovl | aux | acc | chan) "No"
		sb (Free | No | Ovl | Acc | Chan | free | no | ovl | aux | acc | chan) "No"
		wb (Free | No | Ovl | Acc | Chan | free | no | ovl | aux | acc | chan) "No"
	>
	<!-- *** node lanes -->
	<!ELEMENT lanes (nblanes?, eblanes?, sblanes?, wblanes?)>
		<!ELEMENT nblanes EMPTY>
		<!ATTLIST nblanes
			left CDATA "0"
			lt CDATA "0"
			thru CDATA "0"
			rt CDATA "0"
			rite CDATA "0"
			ltr CDATA "0"
		>
		<!ELEMENT eblanes EMPTY>
		<!ATTLIST eblanes
			left CDATA "0"
			lt CDATA "0"
			thru CDATA "0"
			rt CDATA "0"
			rite CDATA "0"
			ltr CDATA "0"
		>
		<!ELEMENT sblanes EMPTY>
		<!ATTLIST sblanes
			left CDATA "0"
			lt CDATA "0"
			thru CDATA "0"
			rt CDATA "0"
			rite CDATA "0"
			ltr CDATA "0"
		>
		<!ELEMENT wblanes EMPTY>
		<!ATTLIST wblanes
			left CDATA "0"
			lt CDATA "0"
			thru CDATA "0"
			rt CDATA "0"
			rite CDATA "0"
			ltr CDATA "0"
		>
	<!-- *** node right turn geometry -->
	<!ELEMENT rtgeo (nbrtgeo?, ebrtgeo?, sbrtgeo?, wbrtgeo?)>
		<!ELEMENT nbrtgeo EMPTY>
		<!ATTLIST nbrtgeo
			curbradius CDATA "20"
			turnangle CDATA "90"
		>
		<!ELEMENT ebrtgeo EMPTY>
		<!ATTLIST ebrtgeo
			curbradius CDATA "20"
			turnangle CDATA "90"
		>
		<!ELEMENT sbrtgeo EMPTY>
		<!ATTLIST sbrtgeo
			curbradius CDATA "20"
			turnangle CDATA "90"
		>
		<!ELEMENT wbrtgeo EMPTY>
		<!ATTLIST wbrtgeo
			curbradius CDATA "20"
			turnangle CDATA "90"
		>
	<!-- *** node grade -->
	<!ELEMENT grade EMPTY>
	<!ATTLIST grade
		north (MinusSix | MinusFour | MinusTwo | Zero | PlusTwo | PlusFour | PlusSix | PlusEight | PlusTen | minussix | minusfour | minustwo | zero | plustwo | plusfour | plussix | pluseight | plusten) "Zero"
		east (MinusSix | MinusFour | MinusTwo | Zero | PlusTwo | PlusFour | PlusSix | PlusEight | PlusTen | minussix | minusfour | minustwo | zero | plustwo | plusfour | plussix | pluseight | plusten) "Zero"
		south (MinusSix | MinusFour | MinusTwo | Zero | PlusTwo | PlusFour | PlusSix | PlusEight | PlusTen | minussix | minusfour | minustwo | zero | plustwo | plusfour | plussix | pluseight | plusten) "Zero"
		west (MinusSix | MinusFour | MinusTwo | Zero | PlusTwo | PlusFour | PlusSix | PlusEight | PlusTen | minussix | minusfour | minustwo | zero | plustwo | plusfour | plussix | pluseight | plusten) "Zero"
	>
	<!-- *** node vehicle types -->
	<!ELEMENT vehicle (nbvehicle?, ebvehicle?, sbvehicle?, wbvehicle?)>
		<!ELEMENT nbvehicle EMPTY>
		<!ATTLIST nbvehicle
			motorcycle CDATA "0.00"
			passengercar CDATA "0.00"
			truckrv CDATA "0.00"
			combination CDATA "0.00"
		>
		<!ELEMENT ebvehicle EMPTY>
		<!ATTLIST ebvehicle
			motorcycle CDATA "0.00"
			passengercar CDATA "0.00"
			truckrv CDATA "0.00"
			combination CDATA "0.00"
		>
		<!ELEMENT sbvehicle EMPTY>
		<!ATTLIST sbvehicle
			motorcycle CDATA "0.00"
			passengercar CDATA "0.00"
			truckrv CDATA "0.00"
			combination CDATA "0.00"
		>
		<!ELEMENT wbvehicle EMPTY>
		<!ATTLIST wbvehicle
			motorcycle CDATA "0.00"
			passengercar CDATA "0.00"
			truckrv CDATA "0.00"
			combination CDATA "0.00"
		>
	<!-- *** node critical gap adjustments -->
	<!ELEMENT critgapadj (nb?, eb?, sb?, wb?)>
	<!-- *** node calculate base g/c or use user defined base g/c values? -->
	<!ELEMENT calcbasegc EMPTY>
	<!ATTLIST calcbasegc
		val (true | false | yes | no) "true"
	>
	<!-- *** node user defined base g/c values. -->
	<!ELEMENT basegc (nbgc?, ebgc?, sbgc?, wbgc?)>
	<!ATTLIST basegc
		global CDATA "0.00"
	>
	<!-- *** node calculate future g/c or use user defined future g/c values? -->
	<!ELEMENT calcfutgc EMPTY>
	<!ATTLIST calcfutgc
		val (true | false | yes | no) "true"
	>
	<!-- *** node user defined future g/c values. -->
	<!ELEMENT futgc (nbgc?, ebgc?, sbgc?, wbgc?)>
	<!ATTLIST futgc
		global CDATA "0.00"
	>
	<!-- *** node user saturation values -->
	<!ELEMENT usersat (nb?, eb?, sb?, wb?)>
	<!-- *** node saturation adjustments -->
	<!ELEMENT satadj (nbadj?, ebadj?, sbadj?, wbadj?)>
	<!ATTLIST satadj
		global CDATA "1.00"
	>
	<!-- *** node area type -->
	<!ELEMENT areatype EMPTY>
	<!ATTLIST areatype
		val (cbd | other) "other"
	>
	<!-- *** node signal type -->
	<!ELEMENT signaltype EMPTY>
	<!ATTLIST signaltype
		val (fixed | actuated | semiactuated | unknown) "actuated"
	>
	<!-- *** node coordinated? -->
	<!ELEMENT coordinated EMPTY>
	<!ATTLIST coordinated
		val (true | false | yes | no) "false"
	>
	<!-- *** node approach street type -->
	<!ELEMENT streettype EMPTY>
	<!ATTLIST streettype
		nb (main | side) "main"
		eb (main | side) "side"
		sb (main | side) "main"
		wb (main | side) "side"
	>
	<!-- *** node lane width -->
	<!ELEMENT lanewidth (nb?, eb?, sb?, wb?)>
	<!-- *** node lane width in metric units -->
	<!ELEMENT metriclanewidth (nb?, eb?, sb?, wb?)>
	<!-- *** node percentage of heavy vehicles -->
	<!ELEMENT hevveh EMPTY>
	<!ATTLIST hevveh
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node no parking on street? -->
	<!ELEMENT nopark EMPTY>
	<!ATTLIST nopark
		nb (true | false | yes | no) "yes"
		eb (true | false | yes | no) "yes"
		sb (true | false | yes | no) "yes"
		wb (true | false | yes | no) "yes"
	>
	<!-- *** node no parking time per hour -->
	<!ELEMENT parkhour EMPTY>
	<!ATTLIST parkhour
		nb CDATA "20"
		eb CDATA "20"
		sb CDATA "20"
		wb CDATA "20"
	>
	<!-- *** node bus stops per hour -->
	<!ELEMENT bushour EMPTY>
	<!ATTLIST bushour
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node conflicting pedestrians per hour -->
	<!ELEMENT pedshour EMPTY>
	<!ATTLIST pedshour
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node include right turns? -->
	<!ELEMENT includerite EMPTY>
	<!ATTLIST includerite
		nb (true | false | yes | no) "yes"
		eb (true | false | yes | no) "yes"
		sb (true | false | yes | no) "yes"
		wb (true | false | yes | no) "yes"
	>
	<!-- *** node are right turns protected? -->
	<!ELEMENT rtprotect EMPTY>
	<!ATTLIST rtprotect
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node arrival type -->
	<!ELEMENT arrival EMPTY>
	<!ATTLIST arrival
		nb (1 | 2 | 3 | 4 | 5 | 6) "3"
		eb (1 | 2 | 3 | 4 | 5 | 6) "3"
		sb (1 | 2 | 3 | 4 | 5 | 6) "3"
		wb (1 | 2 | 3 | 4 | 5 | 6) "3"
	>
	<!-- *** node calculate hcm saturation adjustment? -->
	<!ELEMENT calcsatadj EMPTY>
	<!ATTLIST calcsatadj
		val (true | false | yes | no) "true"
	>
	<!-- *** node delay adjustments -->
	<!ELEMENT deladj (nbadj?, ebadj?, sbadj?, wbadj?)>
	<!ATTLIST deladj
		global CDATA "1.00"
	>
	<!-- *** node minimum green times -->
	<!ELEMENT mingreen (nb?, eb?, sb?, wb?)>
	<!-- *** node offset for signal coordination (not used) -->
	<!ELEMENT offset EMPTY>
	<!ATTLIST offset
		val CDATA "0"
	>
	<!-- *** node sample time period -->
	<!ELEMENT timeperiod EMPTY>
	<!ATTLIST timeperiod
		val CDATA "0.25"
	>
	<!-- *** node unit extenstion -->
	<!ELEMENT unitextension EMPTY>
	<!ATTLIST unitextension
		val CDATA "3.0"
	>
	<!-- *** node ignore saturation mlf? -->
	<!ELEMENT ignoresatmlf EMPTY>
	<!ATTLIST ignoresatmlf
		val (true | false | yes | no) "true"
	>
	<!-- *** node grade percentage -->
	<!ELEMENT gradepercent EMPTY>
	<!ATTLIST gradepercent
		nb CDATA "0.00"
		eb CDATA "0.00"
		sb CDATA "0.00"
		wb CDATA "0.00"
	>
	<!-- *** node median type -->
	<!ELEMENT mediantype EMPTY>
	<!ATTLIST mediantype
		val (Undivided | CurbRadius | TWLTL | undivided | curbradius | twltl) "Undivided"
	>
	<!-- *** node gap storage -->
	<!ELEMENT gapstorage EMPTY>
	<!ATTLIST gapstorage
		val CDATA "0"
	>
	<!-- *** node flared lane queue -->
	<!ELEMENT flaredlanequeue EMPTY>
	<!ATTLIST flaredlanequeue
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node pedestrian walk speed -->
	<!ELEMENT pedwalkspeed EMPTY>
	<!ATTLIST pedwalkspeed
		val CDATA "4.0"
	>
	<!-- *** node pedestrian walk speed in metric units -->
	<!ELEMENT metricpedwalkspeed EMPTY>
	<!ATTLIST metricpedwalkspeed
		val CDATA "1.2"
	>
	<!-- *** node calculate capacity for HCM 97 4-way stop method? -->
	<!ELEMENT calccapacityflag EMPTY>
	<!ATTLIST calccapacityflag
		val (true | false | yes | no) "false"
	>
	<!-- *** node alpha value used in HCM 97 4-way stop method -->
	<!ELEMENT alphaval EMPTY>
	<!ATTLIST alphaval
		val CDATA "0.01"
	>
	<!-- *** node upstream volume for HCM 97 unsignalized method
            0 = initial volume.
            1 = final volume.
    -->
	<!ELEMENT upstreamvol EMPTY>
	<!ATTLIST upstreamvol
		val (0 | 1) "0"
	>
	<!-- *** node ignore upstream unsignalized intersection for HCM 97 unsignalized method -->
	<!ELEMENT ignoreupstreamunsigflag EMPTY>
	<!ATTLIST ignoreupstreamunsigflag
		val (true | false | yes | no) "true"
	>
	<!-- *** node improvements -->
	<!ELEMENT improvement (cost?, description?)>
		<!ELEMENT cost EMPTY>
		<!ATTLIST cost
			val CDATA "0.000"
		>
		<!ELEMENT description (#PCDATA)>
	<!-- *** node pedestrian volume -->
	<!ELEMENT pedvol EMPTY>
	<!ATTLIST pedvol
		nb CDATA "0"
		eb CDATA "0"
		sb CDATA "0"
		wb CDATA "0"
	>
	<!-- *** node bicycle volume -->
	<!ELEMENT bikevol (nb?, eb?, sb?, wb?)>
	<!-- *** node crosswalk width -->
	<!ELEMENT crosswalkwidth EMPTY>
	<!ATTLIST crosswalkwidth
		nb CDATA "8"
		eb CDATA "8"
		sb CDATA "8"
		wb CDATA "8"
	>
	<!-- *** node metric crosswalk width -->
	<!ELEMENT metriccrosswalkwidth EMPTY>
	<!ATTLIST metriccrosswalkwidth
		nb CDATA "2.44"
		eb CDATA "2.44"
		sb CDATA "2.44"
		wb CDATA "2.44"
	>
	<!-- *** optimized base? -->
	<!ELEMENT optimizedbase EMPTY>
	<!ATTLIST optimizedbase
		val (true | false | yes | no) "false"
	>
	<!-- *** optimized future? -->
	<!ELEMENT optimizedfuture EMPTY>
	<!ATTLIST optimizedfuture
		val (true | false | yes | no) "false"
	>
	<!-- *** node result data -->
	<!ELEMENT resultdata ( method?, 
		optimalcycle?, criticalvoltocap?, averagedelay?, averagecriticaldelay?, 
		los?, hcmlanes?, lanegroup?, volumemodule?, 
		planningsignalops?, unsignalized?, fourwaystop?, 
		satmodule?, capacitymodule?, losmodule?)>
	<!ATTLIST resultdata
		alternative (base | future) "base"
	>
		<!-- *** optimal cycle -->
		<!ELEMENT optimalcycle EMPTY>
		<!ATTLIST optimalcycle
			val CDATA "0.00000"
		>
		<!-- *** critical vol/cap -->
		<!ELEMENT criticalvoltocap EMPTY>
		<!ATTLIST criticalvoltocap
			val CDATA "0.00000"
		>
		<!-- *** average delay -->
		<!ELEMENT averagedelay EMPTY>
		<!ATTLIST averagedelay
			val CDATA "0.00000"
		>
		<!-- *** average critical delay -->
		<!ELEMENT averagecriticaldelay EMPTY>
		<!ATTLIST averagecriticaldelay
			val CDATA "0.00000"
		>
		<!-- *** los -->
		<!ELEMENT los (#PCDATA)>
		<!-- *** hcm lanes -->
		<!ELEMENT hcmlanes (nblanes?, eblanes?, sblanes?, wblanes?)>
		<!-- *** lane group -->
		<!ELEMENT lanegroup (nb?, eb?, sb?, wb?)>
		<!ELEMENT volumemodule (basevolume?, growthadj?, initialbasevolume?, 
								addedvolume?, initialfuturevolume?,
								useradj?, phfadj?, phfvolume?, 
								volumereduct?, reducedvolume?, 
								pceadj?, mlfadj?, planadj?, finalvoladj?, altfinalvolume?, 
								finalvolume?)>
			<!-- *** base volume -->
			<!ELEMENT basevolume (nb?, eb?, sb?, wb?)>
			<!-- *** growth factor -->
			<!ELEMENT growthadj (nb?, eb?, sb?, wb?)>
			<!-- *** initial base volume -->
			<!ELEMENT initialbasevolume (nb?, eb?, sb?, wb?)>
			<!-- *** added volume -->
			<!ELEMENT addedvolume (nb?, eb?, sb?, wb?)>
			<!-- *** initial future volume -->
			<!ELEMENT initialfuturevolume (nb?, eb?, sb?, wb?)>
			<!-- *** user adjustment -->
			<!ELEMENT useradj (nb?, eb?, sb?, wb?)>
			<!-- *** phf adjustment -->
			<!ELEMENT phfadj (nb?, eb?, sb?, wb?)>
			<!-- *** phf volume -->
			<!ELEMENT phfvolume (nb?, eb?, sb?, wb?)>
			<!-- *** volume reduction -->
			<!ELEMENT volumereduct (nb?, eb?, sb?, wb?)>
			<!-- *** reduced volume -->
			<!ELEMENT reducedvolume (nb?, eb?, sb?, wb?)>
			<!-- *** pce adjustment -->
			<!ELEMENT pceadj (nb?, eb?, sb?, wb?)>
			<!-- *** mlf adjustment -->
			<!ELEMENT mlfadj (nb?, eb?, sb?, wb?)>
			<!-- *** hcm planning adjustment -->
			<!ELEMENT planadj (nb?, eb?, sb?, wb?)>
			<!-- *** final volume adjustment -->
			<!ELEMENT finalvoladj (nb?, eb?, sb?, wb?)>
			<!-- *** alternate final volume -->
			<!ELEMENT altfinalvolume (nb?, eb?, sb?, wb?)>
			<!-- *** final volume -->
			<!ELEMENT finalvolume (nb?, eb?, sb?, wb?)>
		<!ELEMENT planningsignalops (phasenssignal?, phaseewsignal?, phaseleftadj?,
										volperlane?, criticalvolume?,
										phasecritvol?, phaselosstime?, phasegrntime?)>
			<!-- *** n/s signal phasing -->
			<!ELEMENT phasenssignal EMPTY>
			<!ATTLIST phasenssignal
				phase1 (XXX | NST | STL | NTL | NSL | NTL ) "XXX"
				phase2 (XXX | NST | STL | NTL | NSL | NTL ) "XXX"
				phase3 (XXX | NST | STL | NTL | NSL | NTL ) "XXX"
			>
			<!-- *** e/w signal phasing -->
			<!ELEMENT phaseewsignal EMPTY>
			<!ATTLIST phaseewsignal
				phase1 (XXX | EWT | WTL | ETL | EWL | ETL ) "XXX"
				phase2 (XXX | EWT | WTL | ETL | EWL | ETL ) "XXX"
				phase3 (XXX | EWT | WTL | ETL | EWL | ETL ) "XXX"
			>
			<!-- *** volume adjustment -->
			<!ELEMENT phaseleftadj EMPTY>
			<!ATTLIST phaseleftadj
				nb CDATA "0.00000"
				eb CDATA "0.00000"
				sb CDATA "0.00000"
				wb CDATA "0.00000"
			>
			<!-- *** volume per lane -->
			<!ELEMENT volperlane (nb?, eb?, sb?, wb?)>
			<!-- *** critical volume by movement -->
			<!ELEMENT criticalvolume (nb?, eb?, sb?, wb?)>
			<!-- *** phase values -->
			<!ELEMENT phasens EMPTY>
			<!ATTLIST phasens
				phase1 CDATA "0.00000"
				phase2 CDATA "0.00000"
				phase3 CDATA "0.00000"
			>
			<!ELEMENT phaseew EMPTY>
			<!ATTLIST phaseew
				phase1 CDATA "0.00000"
				phase2 CDATA "0.00000"
				phase3 CDATA "0.00000"
			>
			<!-- *** critical volume by phase -->
			<!ELEMENT phasecritvol (phasens?, phaseew?)>
			<!-- *** loss time by phase -->
			<!ELEMENT phaselosstime (phasens?, phaseew?)>
			<!-- *** green time by phase -->
			<!ELEMENT phasegrntime (phasens?, phaseew?)>
		<!ELEMENT unsignalized (unsigvolumemodule?, unsigcriticalgapmodule?, unsigcapacitymodule?, unsiglosmodule?)>
			<!ELEMENT unsigvolumemodule (adjvolume?)>
				<!-- *** adjusted volume -->
				<!ELEMENT adjvolume (nb?, eb?, sb?, wb?)>
			<!ELEMENT unsigcriticalgapmodule (moveuptime?, criticalgap?, followuptime?)>
				<!-- *** moveup time -->
				<!ELEMENT moveuptime (nb?, eb?, sb?, wb?)>
				<!-- *** critical gap -->
				<!ELEMENT criticalgap (nb?, eb?, sb?, wb?)>
				<!-- *** followup time -->
				<!ELEMENT followuptime (nb?, eb?, sb?, wb?)>
			<!ELEMENT unsigcapacitymodule (conflictvol?, potentialcap?, usedcapacity?, 
										impedance?, actualcap?, capadjfactor?, movecap?, totalcap?)>
				<!-- *** conflicting volume -->
				<!ELEMENT conflictvol (nb?, eb?, sb?, wb?)>
				<!-- *** potential capacity -->
				<!ELEMENT potentialcap (nb?, eb?, sb?, wb?)>
				<!-- *** used capacity -->
				<!ELEMENT usedcapacity (nb?, eb?, sb?, wb?)>
				<!-- *** impedance -->
				<!ELEMENT impedance (nb?, eb?, sb?, wb?)>
				<!-- *** actual capacity -->
				<!ELEMENT actualcap (nb?, eb?, sb?, wb?)>
				<!-- *** capacity adjustment factor -->
				<!ELEMENT capadjfactor (nb?, eb?, sb?, wb?)>
				<!-- *** move capacity -->
				<!ELEMENT movecap (nb?, eb?, sb?, wb?)>
				<!-- *** total capacity -->
				<!ELEMENT totalcap (nb?, eb?, sb?, wb?)>
			<!ELEMENT unsiglosmodule (unusedcapacity?, sharedcap?, unusedsharedcap?, shareddelay?, sharedlos?, approachdelay?)>
				<!-- *** unused capacity -->
				<!ELEMENT unusedcapacity (nb?, eb?, sb?, wb?)>
				<!-- *** shared capacity -->
				<!ELEMENT sharedcap (nb?, eb?, sb?, wb?)>
				<!-- *** unused shared capacity -->
				<!ELEMENT unusedsharedcap (nb?, eb?, sb?, wb?)>
				<!-- *** shared delay -->
				<!ELEMENT shareddelay (nb?, eb?, sb?, wb?)>
				<!-- *** shared los -->
				<!ELEMENT sharedlos (nblos?, eblos?, sblos?, wblos?)>
				<!-- *** approach delay -->
				<!ELEMENT approachdelay EMPTY>
				<!ATTLIST approachdelay
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
		<!ELEMENT fourwaystop (hcmfourwaystopmodule?, stopsatmodule?, stopapproachvs?, stoplosmodule?)>
			<!ELEMENT hcmfourwaystopmodule (grouptype?, headwayadjprobability?, fourwaystoplanemodule*, overalldelay?, overalllos?)>
				<!-- *** group type -->
				<!ELEMENT grouptype EMPTY>
				<!ATTLIST grouptype
					nb (1 | 2 | 3A | 3B | 4A | 4B | 5 | 6 | X) "X"
					eb (1 | 2 | 3A | 3B | 4A | 4B | 5 | 6 | X) "X"
					sb (1 | 2 | 3A | 3B | 4A | 4B | 5 | 6 | X) "X"
					wb (1 | 2 | 3A | 3B | 4A | 4B | 5 | 6 | X) "X"
				>
				<!ELEMENT headwayadjprobability (probc1?, probc2?, probc3?, probc4?, probc5?,
												adjprobc1?, adjprobc2?, adjprobc3?, adjprobc4?, adjprobc5?)>
					<!ELEMENT probc1 EMPTY>
					<!ATTLIST probc1
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT probc2 EMPTY>
					<!ATTLIST probc2
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT probc3 EMPTY>
					<!ATTLIST probc3
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT probc4 EMPTY>
					<!ATTLIST probc4
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT probc5 EMPTY>
					<!ATTLIST probc5
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT adjprobc1 EMPTY>
					<!ATTLIST adjprobc1
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT adjprobc2 EMPTY>
					<!ATTLIST adjprobc2
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT adjprobc3 EMPTY>
					<!ATTLIST adjprobc3
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT adjprobc4 EMPTY>
					<!ATTLIST adjprobc4
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!ELEMENT adjprobc5 EMPTY>
					<!ATTLIST adjprobc5
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
				<!ELEMENT fourwaystoplanemodule (lanetype?, laneheadwayadj?, lanevolume?, lanecapacity?, lanedegreeofutilization?, lanedepheadway?, laneservicetime?, lanedelay?)>
				<!ATTLIST fourwaystoplanemodule
					index CDATA #REQUIRED
				>
					<!-- *** lane type -->
					<!ELEMENT lanetype EMPTY>
					<!ATTLIST lanetype
						nb (nolane | left | leftthru | thru | ritethru | rite | ltr) "nolane"
						eb (nolane | left | leftthru | thru | ritethru | rite | ltr) "nolane"
						sb (nolane | left | leftthru | thru | ritethru | rite | ltr) "nolane"
						wb (nolane | left | leftthru | thru | ritethru | rite | ltr) "nolane"
					>
					<!-- *** lane headway adjustment -->
					<!ELEMENT laneheadwayadj EMPTY>
					<!ATTLIST laneheadwayadj
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** lane volume -->
					<!ELEMENT lanevolume EMPTY>
					<!ATTLIST lanevolume
						nb CDATA "0"
						eb CDATA "0"
						sb CDATA "0"
						wb CDATA "0"
					>
					<!-- *** lane capacity -->
					<!ELEMENT lanecapacity EMPTY>
					<!ATTLIST lanecapacity
						nb CDATA "0"
						eb CDATA "0"
						sb CDATA "0"
						wb CDATA "0"
					>
					<!-- *** lane degree of utilization -->
					<!ELEMENT lanedegreeofutilization EMPTY>
					<!ATTLIST lanedegreeofutilization
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** lane departure headway -->
					<!ELEMENT lanedepheadway EMPTY>
					<!ATTLIST lanedepheadway
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** lane service time -->
					<!ELEMENT laneservicetime EMPTY>
					<!ATTLIST laneservicetime
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** lane delay -->
					<!ELEMENT lanedelay EMPTY>
					<!ATTLIST lanedelay
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
				<!-- *** overall delay -->
				<!ELEMENT overalldelay EMPTY>
				<!ATTLIST overalldelay
					val CDATA "0.00"
				>
				<!-- *** overall los -->
				<!ELEMENT overalllos EMPTY>
				<!ATTLIST overalllos
					val CDATA "*"
				>
			<!ELEMENT stopsatmodule (capperlane?)>
				<!-- *** capacity per lane -->
				<!ELEMENT capperlane EMPTY>
				<!ATTLIST capperlane
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
			<!-- *** approach volume to saturation -->
			<!ELEMENT stopapproachvs EMPTY>
			<!ATTLIST stopapproachvs
				nb CDATA "0.00000"
				eb CDATA "0.00000"
				sb CDATA "0.00000"
				wb CDATA "0.00000"
			>
			<!ELEMENT stoplosmodule (stopapproachdelay?, stopapproachfinaldeladj?, stopapproachfinaldelay?)>
				<!-- *** approach delay -->
				<!ELEMENT stopapproachdelay EMPTY>
				<!ATTLIST stopapproachdelay
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** approach final delay adjustment -->
				<!ELEMENT stopapproachfinaldeladj EMPTY>
				<!ATTLIST stopapproachfinaldeladj
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** approach final delay -->
				<!ELEMENT stopapproachfinaldelay EMPTY>
				<!ATTLIST stopapproachfinaldelay
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
		<!ELEMENT satmodule (satperlane?, hcmsatadjmodule?, hcmsatadj?, usersatadj?, mlfsatadj?, finalsatadj?, sharedlanes?, finalsat?)>
			<!-- *** saturation per lane -->
			<!ELEMENT satperlane EMPTY>
			<!ATTLIST satperlane
				nb CDATA "0.00000"
				eb CDATA "0.00000"
				sb CDATA "0.00000"
				wb CDATA "0.00000"
			>
			<!ELEMENT hcmsatadjmodule (lanewidthadj?, hevvehadj?, gradeadj?, parkadj?,
										busadj?, areaadj?, riteadj?, riteadjcase?, 
										leftadj?, leftadjcase?, altprimaryleftvol?, 
										altsecondaryleftvol?, altleftadj?, altleftadjcase?,
										altleftgc?, leftadjmodule?, pedbikeadj?, pedbikeadjmodule?)>
				<!-- *** lane width adjustment -->
				<!ELEMENT lanewidthadj (nb?, eb?, sb?, wb?)>
				<!-- *** heavy vehicle adjustment -->
				<!ELEMENT hevvehadj (nb?, eb?, sb?, wb?)>
				<!-- *** grade adjustment -->
				<!ELEMENT gradeadj (nb?, eb?, sb?, wb?)>
				<!-- *** parking adjustment -->
				<!ELEMENT parkadj (nb?, eb?, sb?, wb?)>
				<!-- *** bus stop adjustment -->
				<!ELEMENT busadj (nb?, eb?, sb?, wb?)>
				<!-- *** area type adjustment -->
				<!ELEMENT areaadj (nb?, eb?, sb?, wb?)>
				<!-- *** right turn adjustment -->
				<!ELEMENT riteadj (nb?, eb?, sb?, wb?)>
				<!-- *** right turn adjustment case -->
				<!ELEMENT riteadjcase (nb?, eb?, sb?, wb?)>
				<!-- *** left turn adjustment -->
				<!ELEMENT leftadj (nb?, eb?, sb?, wb?)>
				<!-- *** left turn adjustment case -->
				<!ELEMENT leftadjcase (nb?, eb?, sb?, wb?)>
				<!-- *** alternate primary left turn volume -->
				<!ELEMENT altprimaryleftvol EMPTY>
				<!ATTLIST altprimaryleftvol
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** alternate secondary left turn volume -->
				<!ELEMENT altsecondaryleftvol EMPTY>
				<!ATTLIST altsecondaryleftvol
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** alternate left turn adjustment -->
				<!ELEMENT altleftadj EMPTY>
				<!ATTLIST altleftadj
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** alternate left turn adjustment case -->
				<!ELEMENT altleftadjcase EMPTY>
				<!ATTLIST altleftadjcase
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!-- *** alternate left turn green per cycle -->
				<!ELEMENT altleftgc EMPTY>
				<!ATTLIST altleftgc
					nb CDATA "0.00000"
					eb CDATA "0.00000"
					sb CDATA "0.00000"
					wb CDATA "0.00000"
				>
				<!ELEMENT leftadjmodule (validflag?, cyclelength?, actualgreen?, effgreen?, 
					opposinggreen?, opposinglanes?, approachinglanes?, vlt?, plt?, plto?,
					ltc?, vo?, volc?, rpo?, tl?, gf?, qro?, gq?, gu?, nval?, ptho?, fs?, pl?,
					el1?, el2?, fmin?, fm?, flt?, singlelaneoppose?, singlelaneapproach?)>
					<!-- *** valid flag? -->
					<!ELEMENT validflag EMPTY>
					<!ATTLIST validflag
						nb ( yes | no ) "no"
						eb ( yes | no ) "no"
						sb ( yes | no ) "no"
						wb ( yes | no ) "no"
					>
					<!-- *** cycle length -->
					<!ELEMENT cyclelength EMPTY>
					<!ATTLIST cyclelength
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** actual green time -->
					<!ELEMENT actualgreen EMPTY>
					<!ATTLIST actualgreen
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** effective green time -->
					<!ELEMENT effgreen EMPTY>
					<!ATTLIST effgreen
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** opposing green time -->
					<!ELEMENT opposinggreen EMPTY>
					<!ATTLIST opposinggreen
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** number of opposing lanes -->
					<!ELEMENT opposinglanes EMPTY>
					<!ATTLIST opposinglanes
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** number of approach lanes -->
					<!ELEMENT approachinglanes EMPTY>
					<!ATTLIST approachinglanes
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** adjusted left turn flow rate -->
					<!ELEMENT vlt EMPTY>
					<!ATTLIST vlt
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** proportion of left turns in lane group -->
					<!ELEMENT plt EMPTY>
					<!ATTLIST plt
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** proportion of left turns in opposing flow -->
					<!ELEMENT plto EMPTY>
					<!ATTLIST plto
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** left turns per cycle -->
					<!ELEMENT ltc EMPTY>
					<!ATTLIST ltc
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** adjusted opposing flow rate -->
					<!ELEMENT vo EMPTY>
					<!ATTLIST vo
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** opposing flow per lane per cycle -->
					<!ELEMENT volc EMPTY>
					<!ATTLIST volc
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** opposing platoon ratio -->
					<!ELEMENT rpo EMPTY>
					<!ATTLIST rpo
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** loss time per phase -->
					<!ELEMENT tl EMPTY>
					<!ATTLIST tl
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** effective green until arrival of left turn car -->
					<!ELEMENT gf EMPTY>
					<!ATTLIST gf
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** opposing queue ratio -->
					<!ELEMENT qro EMPTY>
					<!ATTLIST qro
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** effective green blocked by opposing queue -->
					<!ELEMENT gq EMPTY>
					<!ATTLIST gq
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** effective green while left turns filter through -->
					<!ELEMENT gu EMPTY>
					<!ATTLIST gu
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** maximum opposing cars arriving during gq-gf -->
					<!ELEMENT nval EMPTY>
					<!ATTLIST nval
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** proportion of opposing through and right turn cars -->
					<!ELEMENT ptho EMPTY>
					<!ATTLIST ptho
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** left turn saturation factor -->
					<!ELEMENT fs EMPTY>
					<!ATTLIST fs
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** proportion of left turns in shared lane -->
					<!ELEMENT pl EMPTY>
					<!ATTLIST pl
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** through car equivalents -->
					<!ELEMENT el1 EMPTY>
					<!ATTLIST el1
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** single lane throughn car equivalents -->
					<!ELEMENT el2 EMPTY>
					<!ATTLIST el2
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** minimum left turn adjustment factor -->
					<!ELEMENT fmin EMPTY>
					<!ATTLIST fmin
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** single lane left turn adjustment factor -->
					<!ELEMENT fm EMPTY>
					<!ATTLIST fm
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** left turn adjustment factor -->
					<!ELEMENT flt EMPTY>
					<!ATTLIST flt
						nb CDATA "0.00000"
						eb CDATA "0.00000"
						sb CDATA "0.00000"
						wb CDATA "0.00000"
					>
					<!-- *** single lane opposing? -->
					<!ELEMENT singlelaneoppose EMPTY>
					<!ATTLIST singlelaneoppose
						nb ( yes | no ) "no"
						eb ( yes | no ) "no"
						sb ( yes | no ) "no"
						wb ( yes | no ) "no"
					>
					<!-- *** single lane approach? -->
					<!ELEMENT singlelaneapproach EMPTY>
					<!ATTLIST singlelaneapproach
						nb ( yes | no ) "no"
						eb ( yes | no ) "no"
						sb ( yes | no ) "no"
						wb ( yes | no ) "no"
					>
				<!ELEMENT pedbikeadj (nb?, eb?, sb?, wb?)>
				<!ELEMENT pedbikeadjmodule (pedbikeadjcrosswalkwidth?, pedbikeadjcrosswalklength?, 
					pedbikeadjmingp?, pedbikeadjgp?, pedbikeadjpedvol?, pedbikeadjpedflowrate?, 
					pedbikeadjbikevol?, pedbikeadjbikeflowrate?, pedbikeadjpedocc?, pedbikeadjbikeocc?, 
					pedbikeadjpedafterocc?, pedbikeadjrocc?, pedbikeadjturningvehadj?,
					pedbikeadjprt?, pedbikeadjplta?)>
					<!-- *** cross walk width -->
					<!ELEMENT pedbikeadjcrosswalkwidth (nb?, eb?, sb?, wb?)>
					<!-- *** cross walk length -->
					<!ELEMENT pedbikeadjcrosswalklength (nb?, eb?, sb?, wb?)>
					<!-- *** minimum pedestrian green time -->
					<!ELEMENT pedbikeadjmingp (nb?, eb?, sb?, wb?)>
					<!-- *** pedestrian green time -->
					<!ELEMENT pedbikeadjgp (nb?, eb?, sb?, wb?)>
					<!-- *** pedestrian volume -->
					<!ELEMENT pedbikeadjpedvol (nb?, eb?, sb?, wb?)>
					<!-- *** pedestrian flow rate -->
					<!ELEMENT pedbikeadjpedflowrate (nb?, eb?, sb?, wb?)>
					<!-- *** bike volume -->
					<!ELEMENT pedbikeadjbikevol (nb?, eb?, sb?, wb?)>
					<!-- *** bike flow rate -->
					<!ELEMENT pedbikeadjbikeflowrate (nb?, eb?, sb?, wb?)>
					<!-- *** average pedestrian occupancy -->
					<!ELEMENT pedbikeadjpedocc (nb?, eb?, sb?, wb?)>
					<!-- *** bike conflict zone occupancy -->
					<!ELEMENT pedbikeadjbikeocc (nb?, eb?, sb?, wb?)>
					<!-- *** pedestrian occupancy after the opposing queue clears -->
					<!ELEMENT pedbikeadjpedafterocc (nb?, eb?, sb?, wb?)>
					<!-- *** relevant conflict zone occupancy -->
					<!ELEMENT pedbikeadjrocc (nb?, eb?, sb?, wb?)>
					<!-- *** turning vehicle adjustment -->
					<!ELEMENT pedbikeadjturningvehadj (nb?, eb?, sb?, wb?)>
					<!-- *** proportion of right turns -->
					<!ELEMENT pedbikeadjprt (nb?, eb?, sb?, wb?)>
					<!-- *** proportion of left turns using protected phase -->
					<!ELEMENT pedbikeadjplta (nb?, eb?, sb?, wb?)>
			<!-- *** hcm saturation adjustment -->
			<!ELEMENT hcmsatadj (nb?, eb?, sb?, wb?)>
			<!-- *** user saturation adjustment -->
			<!ELEMENT usersatadj (nb?, eb?, sb?, wb?)>
			<!-- *** multi-lane saturation adjustment -->
			<!ELEMENT mlfsatadj (nb?, eb?, sb?, wb?)>
			<!-- *** final saturation adjustment -->
			<!ELEMENT finalsatadj (nb?, eb?, sb?, wb?)>
			<!-- *** shared lane allocation -->
			<!ELEMENT sharedlanes (nb?, eb?, sb?, wb?)>
			<!-- *** final saturation -->
			<!ELEMENT finalsat (nb?, eb?, sb?, wb?)>
		<!ELEMENT capacitymodule (voltosat?, pcevoltosat?, crit?, grnpercycle?, voltocap?)>
			<!-- *** volume to saturation ratio -->
			<!ELEMENT voltosat (nb?, eb?, sb?, wb?)>
			<!-- *** volume to saturation ratio without pce -->
			<!ELEMENT pcevoltosat (nb?, eb?, sb?, wb?)>
			<!-- *** critical movement -->
			<!ELEMENT crit EMPTY>
			<!ATTLIST crit
				nb (left | thru | rite | invalid) "invalid"
				eb (left | thru | rite | invalid) "invalid"
				sb (left | thru | rite | invalid) "invalid"
				wb (left | thru | rite | invalid) "invalid"
			>
			<!-- *** green per cycle -->
			<!ELEMENT grnpercycle (nb?, eb?, sb?, wb?)>
			<!-- *** volume to capacity ratio -->
			<!ELEMENT voltocap (nb?, eb?, sb?, wb?)>
		<!ELEMENT losmodule (delaycalc?, approachlosbymove?, approachlos?, queuecalc?)>
			<!ELEMENT delaycalc (uniformdelay?, incrementaldelay?, unadjusteddelay?, 
								finaldeladj?, uniformcase?, hcmdeladj?, finaldelay?)>
				<!-- *** uniform delay -->
				<!ELEMENT uniformdelay (nb?, eb?, sb?, wb?)>
				<!-- *** incremental delay -->
				<!ELEMENT incrementaldelay (nb?, eb?, sb?, wb?)>
				<!-- *** unadjusted delay -->
				<!ELEMENT unadjusteddelay (nb?, eb?, sb?, wb?)>
				<!-- *** final delay adjustment-->
				<!ELEMENT finaldeladj (nb?, eb?, sb?, wb?)>
				<!-- *** uniform delay case -->
				<!ELEMENT uniformcase EMPTY>
				<!ATTLIST uniformcase
					nb CDATA "0"
					eb CDATA "0"
					sb CDATA "0"
					wb CDATA "0"
				>
				<!-- *** hcm delay adjustment -->
				<!ELEMENT hcmdeladj (nb?, eb?, sb?, wb?)>
				<!-- *** final delay -->
				<!ELEMENT finaldelay (nb?, eb?, sb?, wb?)>
			<!-- *** approach los by movement -->
			<!ELEMENT approachlosbymove (nblos?, eblos?, sblos?, wblos?)>
			<!-- *** approach los -->
			<!ELEMENT approachlos (nblos?, eblos?, sblos?, wblos?)>
			<!ELEMENT queuecalc (meanqueue?, designqueue?, backofqueue?, backofqueuemodule?)>
				<!-- *** mean queue -->
				<!ELEMENT meanqueue (nb?, eb?, sb?, wb?)>
				<!-- *** design queue -->
				<!ELEMENT designqueue (nb?, eb?, sb?, wb?)>
				<!-- *** back of queue -->
				<!ELEMENT backofqueue (nb?, eb?, sb?, wb?)>
				<!ELEMENT backofqueuemodule (backofqueueprogfactor?, backofqueueq1?, 
					backofqueueupstreamvoltocap?, backofqueueival?, backofqueuekb?,
					backofqueueq2?, backofqueuef70?, backofqueuef85?, backofqueuef90?,
					backofqueuef95?, backofqueuef98?, backofqueue70?,  backofqueue85?, 
					backofqueue90?,  backofqueue95?,  backofqueue98?)>
					<!-- *** progression factor -->
					<!ELEMENT backofqueueprogfactor (nb?, eb?, sb?, wb?)>
					<!-- *** first term queued vehicles -->
					<!ELEMENT backofqueueq1 (nb?, eb?, sb?, wb?)>
					<!-- *** upstream volume to capacity -->
					<!ELEMENT backofqueueupstreamvoltocap (nb?, eb?, sb?, wb?)>
					<!-- *** upstream filter factor for platoon arrivals -->
					<!ELEMENT backofqueueival (nb?, eb?, sb?, wb?)>
					<!-- *** second term adjustment factor related to early arrivals -->
					<!ELEMENT backofqueuekb (nb?, eb?, sb?, wb?)>
					<!-- *** second term queued vehicles -->
					<!ELEMENT backofqueueq2 (nb?, eb?, sb?, wb?)>
					<!-- *** 70th percentile factor -->
					<!ELEMENT backofqueuef70 (nb?, eb?, sb?, wb?)>
					<!-- *** 85th percentile factor -->
					<!ELEMENT backofqueuef85 (nb?, eb?, sb?, wb?)>
					<!-- *** 90th percentile factor -->
					<!ELEMENT backofqueuef90 (nb?, eb?, sb?, wb?)>
					<!-- *** 95th percentile factor -->
					<!ELEMENT backofqueuef95 (nb?, eb?, sb?, wb?)>
					<!-- *** 98th percentile factor -->
					<!ELEMENT backofqueuef98 (nb?, eb?, sb?, wb?)>
					<!-- *** 70th percentile queue -->
					<!ELEMENT backofqueue70 (nb?, eb?, sb?, wb?)>
					<!-- *** 85th percentile queue -->
					<!ELEMENT backofqueue85 (nb?, eb?, sb?, wb?)>
					<!-- *** 90th percentile queue -->
					<!ELEMENT backofqueue90 (nb?, eb?, sb?, wb?)>
					<!-- *** 95th percentile queue -->
					<!ELEMENT backofqueue95 (nb?, eb?, sb?, wb?)>
					<!-- *** 98th percentile queue -->
					<!ELEMENT backofqueue98 (nb?, eb?, sb?, wb?)>

<!--======================================================================
  gate: a gate in the network.
-->
<!ELEMENT gate (name?, position?, latlonposition?, links?)>
<!ATTLIST gate
	index CDATA #REQUIRED
>

<!--======================================================================
  zone: a zone in the network.
-->
<!ELEMENT zone (name?, position?, latlonposition?, links?, units*, gatepaths*)>
<!ATTLIST zone
	index CDATA #REQUIRED
>
	<!ELEMENT units (name?, amount?, rate*)>
		<!-- *** unit amount -->
		<!ELEMENT amount EMPTY>
		<!ATTLIST amount
			val CDATA "0.00"
		>
		<!-- *** unit rate -->
		<!ELEMENT rate (in?, out?)>
		<!ATTLIST rate
			index CDATA #REQUIRED
		>
			<!-- *** unit rate in -->
			<!ELEMENT in EMPTY>
			<!ATTLIST in
				val CDATA "0.00"
			>
			<!-- *** unit rate out -->
			<!ELEMENT out EMPTY>
			<!ATTLIST out
				val CDATA "0.00"
			>
	<!ELEMENT gatepaths (percent*, path*)>
	<!ATTLIST gatepaths
		index CDATA #REQUIRED
	>
		<!-- *** path distribution percentage -->
		<!ELEMENT percent EMPTY>
		<!ATTLIST percent
			index CDATA #REQUIRED
			rate CDATA "0.0"
		>
		<!-- *** path -->
		<!ELEMENT path (#PCDATA)>
		<!ATTLIST path
			dir (B | I | O) "B"
			percentage CDATA "100.0"
		>

<!--======================================================================
  linkdata: a link in the network.
-->
<!ELEMENT linkdata (apoint?, bpoint?,
					class?, functional?, design?, 
					linkspeed?, linkdistance?, 
					name?, 
					delayflag?, delaybase?, delayfut?,
					otherdelayflag?, otherdelaybase?, otherdelayfut?,
					runtimeflag?, runtime?)>
<!ATTLIST linkdata
	index CDATA #REQUIRED
	typea (NODE | ZONE | GATE) #REQUIRED
	indexa CDATA #REQUIRED
	dira (north | east | south | west) #REQUIRED
	typeb (NODE | ZONE | GATE) #REQUIRED
	indexb CDATA #REQUIRED
	dirb (north | east | south | west) #REQUIRED
>
	<!-- *** 'a' endpoint  -->
	<!ELEMENT apoint EMPTY>
	<!ATTLIST apoint
		type (NODE | ZONE | GATE) "NODE"
		index CDATA #REQUIRED
		dir (north | east | south | west) "north"
	>
	<!-- *** 'b' endpoint -->
	<!ELEMENT bpoint EMPTY>
	<!ATTLIST bpoint
		type (NODE | ZONE | GATE) "NODE"
		index CDATA #REQUIRED
		dir (north | east | south | west) "south"
	>
	<!-- *** arterial class -->
	<!ELEMENT class EMPTY>
	<!ATTLIST class
		val (Unknown | One | Two | Three | unknown | one | two | three) "Unknown"
	>
	<!-- *** functional category -->
	<!ELEMENT functional EMPTY>
	<!ATTLIST functional
		val (Unknown | Principal | Minor | unknown | principal | minor) "Unknown"
	>
	<!-- *** design category -->
	<!ELEMENT design EMPTY>
	<!ATTLIST design
		val (Unknown | Suburban | Intermediate | Urban | unknown | suburban | intermediate | urban) "Unknown"
	>
	<!-- *** speed -->
	<!ELEMENT linkspeed EMPTY>
	<!ATTLIST linkspeed
		val CDATA "0.00"
	>
	<!-- *** distance -->
	<!ELEMENT linkdistance EMPTY>
	<!ATTLIST linkdistance
		val CDATA "0.000"
	>
	<!-- *** calculate delay flag? -->
	<!ELEMENT delayflag EMPTY>
	<!ATTLIST delayflag
		val (true | false | yes | no) "true"
	>
	<!-- *** base alternative delay -->
	<!ELEMENT delaybase EMPTY>
	<!ATTLIST delaybase
		left CDATA "0.00"
		thru CDATA "0.00"
		rite CDATA "0.00"
	>
	<!-- *** future alternative delay -->
	<!ELEMENT delayfut EMPTY>
	<!ATTLIST delayfut
		left CDATA "0.00"
		thru CDATA "0.00"
		rite CDATA "0.00"
	>
	<!-- *** calculate other delay flag? -->
	<!ELEMENT otherdelayflag EMPTY>
	<!ATTLIST otherdelayflag
		val (true | false | yes | no) "false"
	>
	<!-- *** base alternative other delay -->
	<!ELEMENT otherdelaybase EMPTY>
	<!ATTLIST otherdelaybase
		left CDATA "0.00"
		thru CDATA "0.00"
		rite CDATA "0.00"
	>
	<!-- *** future alternative other delay -->
	<!ELEMENT otherdelayfut EMPTY>
	<!ATTLIST otherdelayfut
		left CDATA "0.00"
		thru CDATA "0.00"
		rite CDATA "0.00"
	>
	<!-- *** calculate running time flag? -->
	<!ELEMENT runtimeflag EMPTY>
	<!ATTLIST runtimeflag
		val (true | false | yes | no) "true"
	>
	<!-- *** running time -->
	<!ELEMENT runtime EMPTY>
	<!ATTLIST runtime
		val CDATA "0.0"
	>

<!--======================================================================
  route: a route.
-->
<!ELEMENT route (	dir?, name?, 
					list?, segment?, section?, 
					planeval?, planaadt?, planphf?, planddf?, planturns?, planmedians?, planlos?)>
<!ATTLIST route
	index CDATA #REQUIRED
>
	<!-- *** route direction -->
	<!ELEMENT dir EMPTY>
	<!ATTLIST dir
		val (Unknown | NB | SB | EB | WB | NS | SN | EW | WE) "Unknown"
	>
	<!-- *** route node list -->
	<!ELEMENT list (#PCDATA)>
	<!-- *** route segment nodes -->
	<!ELEMENT segment (#PCDATA)>
	<!-- *** route section nodes -->
	<!ELEMENT section (#PCDATA)>
	<!-- *** evaluate method -->
	<!ELEMENT planeval EMPTY>
	<!ATTLIST planeval
		val (ops | plan) "ops"
	>
	<!-- *** annual average daily traffic -->
	<!ELEMENT planaadt EMPTY>
	<!ATTLIST planaadt
		val CDATA "0"
	>
	<!-- *** peak hour factor -->
	<!ELEMENT planphf EMPTY>
	<!ATTLIST planphf
		val CDATA "0.0000"
	>
	<!-- *** directional distribution factor -->
	<!ELEMENT planddf EMPTY>
	<!ATTLIST planddf
		val CDATA "0.0000"
	>
	<!-- *** percentage of turns from exclusive lanes -->
	<!ELEMENT planturns EMPTY>
	<!ATTLIST planturns
		val CDATA "0.0000"
	>
	<!-- *** medians? -->
	<!ELEMENT planmedians EMPTY>
	<!ATTLIST planmedians
		val (true | false | yes | no) "false"
	>
	<!-- *** route los -->
	<!ELEMENT planlos EMPTY>
	<!ATTLIST planlos
		val (A | B | C | D | E | F | X | a | b | c | d | e | f | x) "X"
	>

<!--======================================================================
  text: a text string.
-->
<!ELEMENT text (#PCDATA)>
<!ATTLIST text
	xpos CDATA #REQUIRED
	ypos CDATA #REQUIRED
	pointsize CDATA "8"
	rotation CDATA "0"
	facename CDATA ""
	color (black | white | red | green | blue | yellow | magenta | cyan | gray | lgray | dkred | dkgreen | dkblue | olive | purple | drab) "black"
>
