DTD Definition for a Flight Plan

(Not for real use)

Hello!
07/11/2000: New version:
  • I've had to change the order of the group elements. Now is more easy to create an XML Flight Plan.
06/10/2000: First public beta version:
  • I've created this DTD file to share with all the people who are writing a Flight Planner.
  • The Idea is to use a common format for every flight planner and every flight simulator.
  • The actual DTD is a beta 0.1 version. Please send me all your comments.

    Download a ZIP file with the DTD and a sample flight plan

<?xml version="1.0" encoding="UTF-8"?>
<!-- ========================================================== -->
<!--                    Flight Plan DTD                         -->
<!-- Version 0.2 (Beta)                                         -->
<!-- URL: http://avsim.com/hangar/utils/nav/FlightPlan.dtd      -->
<!--                                                            -->
<!-- (c) Ignacio Hernandez-Ros 2000                             -->
<!--                                                            -->
<!-- THIS DTD is copyright of Ignacio Hernandez-Ros             -->
<!-- All rights reserved.                                       -->
<!--                                                            -->
<!-- You can use this file without modifications                -->
<!-- You are not allowed to modify this file or use a           -->
<!-- modified version of this file. Send your comments to       -->
<!-- the author (or to the future mailing list not created jet) -->
<!--                                                            -->
<!-- eMail: (ihr@mail.ddnet.es)                                 -->
<!-- (Set tabstop to 4)                                         -->
<!-- ========================================================== -->

<!-- ========================================================== -->
<!-- I'd like to maintain this simple                           -->
<!-- A flight plan is a collection of points                    -->
<!-- The connection element between poits could be a            -->
<!-- line or arc                                                -->
<!-- note that the connection element is optional               -->
<!-- Use GROUP elements to define SID and STARS                 -->
<!-- ========================================================== -->
<!ELEMENT FLIGHTPLAN (
		PLANE?, DEPARTURE, DESTINATION, ALTERNATE?,
		(	GROUP? |
			(
				(LINE|ARC)?,
				(AIRPORT|RUNWAY|VOR|NDB|GPS|OTHER)
			)
		)*
	)
>

<!-- ========================================================== -->
<!-- These elements only have atributes (see examples) PLANE    -->
<!-- and ALTERNATE are optional                                 -->
<!-- ========================================================== -->
<!ELEMENT PLANE EMPTY>
<!ELEMENT DEPARTURE EMPTY>
<!ELEMENT DESTINATION EMPTY>
<!ELEMENT ALTERNATE EMPTY>

<!-- ========================================================== -->
<!-- NAVIGATIONAL Aids, They only have atributes                -->
<!-- ========================================================== -->
<!ELEMENT AIRPORT EMPTY>
<!ELEMENT RUNWAY EMPTY>
<!ELEMENT VOR EMPTY>
<!ELEMENT NDB EMPTY>
<!ELEMENT GPS EMPTY>
<!ELEMENT OTHER EMPTY>

<!-- ========================================================== -->
<!-- GROUP is a list of points                                  -->
<!-- ========================================================== -->
<!ELEMENT GROUP (	
		GROUP? |
		(
			(LINE|ARC)?,
			(AIRPORT|RUNWAY|VOR|NDB|GPS|OTHER)
		)
	)*
>

<!-- ========================================================== -->
<!-- Connection elements                                        -->
<!-- ========================================================== -->
<!ELEMENT LINE EMPTY>
<!ELEMENT ARC EMPTY>


<!-- ========================================================== -->
<!-- Attribute definitions                                      -->
<!-- AUTHOR of the XML file, not the DTD (which is mine :-)     -->
<!-- FLIGHTPLANNERTOOL	(nav23,...)                             -->
<!-- DESIREDFLSIM is the target flight simulator application,   -->
<!-- but flight plans sould not be flight simulator             -->
<!-- application dependent                                      -->
<!-- ========================================================== -->
<!ATTLIST FLIGHTPLAN
	TITLE				CDATA #IMPLIED
 	DESCRIPTION			CDATA #IMPLIED
	DATE				CDATA #IMPLIED
	AUTHOR				CDATA #IMPLIED
	FLIGHTPLANNERTOOL   CDATA #IMPLIED
	DESIREDFLSIM		CDATA #IMPLIED
>   

<!-- ========================================================== -->
<!-- The PLANE element could have this attributes               -->
<!--  (all of them are optional)                                -->
<!--	CRUISEALTITUDE in feets                                 -->
<!--	FUEL attributes in gallons/houre                        -->
<!--	SPEEDUNITS are ground speed in knots or mach, default   -->
<!--    is mach                                                 -->
<!--	RATE attributes are in feets/minute                     -->
<!-- ========================================================== -->
<!ATTLIST PLANE
	NAME			CDATA #IMPLIED
	CRUISEALTITUDE	CDATA #IMPLIED
	DESCENTFUEL		CDATA #IMPLIED
	CLIMBFUEL		CDATA #IMPLIED
	CRUISEFUEL		CDATA #IMPLIED
	SPEEDUNITS		(knots|mach) "knots"
	CRUISESPEED		CDATA #IMPLIED
	CLIMBSPEED		CDATA #IMPLIED
	DESCENTSPEED	CDATA #IMPLIED
	CLIMBRATE		CDATA #IMPLIED
	DESCENTRATE		CDATA #IMPLIED
>

<!-- ========================================================== -->
<!-- DEPARTURE atributes                                        -->
<!-- ========================================================== -->
<!ATTLIST DEPARTURE
	TYPE			(AIRPORT|RUNWAY|VOR|NDB|GPS|OTHER) #REQUIRED
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!-- ========================================================== -->
<!-- DESTINATION atributes                                      -->
<!-- ========================================================== -->
<!ATTLIST DESTINATION
	TYPE			(AIRPORT|RUNWAY|VOR|NDB|GPS|OTHER) #REQUIRED
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!-- ========================================================== -->
<!-- ALTERNATE atributes                                        -->
<!-- ========================================================== -->
<!ATTLIST ALTERNATE
	TYPE			(AIRPORT|RUNWAY|VOR|NDB|GPS|OTHER) #REQUIRED
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!-- ========================================================== -->
<!-- Every point in the flight plan                             -->
<!-- ========================================================== -->
<!ATTLIST AIRPORT
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #REQUIRED
>

<!ATTLIST RUNWAY
	NAME			CDATA #REQUIRED
	ORIENTATION		CDATA #REQUIRED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #REQUIRED
>

<!ATTLIST VOR
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	FREQUENCY		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!ATTLIST NDB
	ICAO			CDATA #REQUIRED
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	FREQUENCY		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!ATTLIST GPS
	NAME			CDATA #REQUIRED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!ATTLIST OTHER
	NAME			CDATA #IMPLIED
	LATITUDE		CDATA #REQUIRED
	LONGITUDE		CDATA #REQUIRED
	ALTITUDE		CDATA #IMPLIED
>

<!-- ========================================================== -->
<!-- An ARC is used to define DME arcs for example              -->
<!-- ========================================================== -->
<!ATTLIST ARC
	NAME			CDATA #IMPLIED
	CENTERLAT		CDATA #REQUIRED
	CENTERLON		CDATA #REQUIRED
	DIRECTION		(CLOCKWISE|UNCLOCKWISE) #REQUIRED
	DEGREES			CDATA #REQUIRED
>

<!-- ========================================================== -->
<!-- A line connects two points                                 -->
<!-- ========================================================== -->
<!ATTLIST LINE NAME	CDATA #IMPLIED>

<!-- ========================================================== -->
<!-- A group encamsupates a list of points                      -->
<!-- ========================================================== -->
<!ATTLIST GROUP
	NAME	CDATA				#IMPLIED
	TYPE	(SID|STAR|OTHER)	#IMPLIED
>