What are the mandatory elements of an ICAO flightplan? I need to write a software parser for ICAO flightplans, and in particular I need to parse FPL messages. 

What are the mandatory elements included in a flightplan document? For example the image below illustrates a typical flightplan form:



Also the above form contains special sequences such as &lt;=. What is the signification of this sequence? Does it correspond to a newline in the generated flightplan text format?

A corresponding textual representation of a flightplan is also shown below:

(FPL-REU974-IS
-B77L/H-SDE1E2E3GFHIJ4J5M1RWXYZ/LB1D1
-LFPG1845
-N0490F310 OKASI UL612 MILPA UM730 TOP UL50 ELB UL12 VELAD UM728 NERAR UP3
RCA/N0489F350 UR611 TIKAT UG300 MAV UM665G ITLOX UM665 UVESO/N0486F370 DCT DENLI
UR780 MIDRI UR780G UVENA
-FMEE1036 FIMP
-PBN/A1D1L1S1 NAV/RNP10 DOF/121114 REG/FOLRA EET/LSAS0039 LFFF0039 LIMM0048 LIRR0111
LMMM0218 HLLL0237 HECC0343 HSSS0425 HAAA0545 HKNA0700 HCSM0701 FSSS0745 FMMM0900
SEL/CGFR ORGN/RUKOUU PER/C SRC/RQP RMK/ADSB ACARS EQUIPPED TCAS EQUIPPED)


So basically I need to write a program capable of parsing the previous textual format and validating it against any errors and or missing elements.
About the special characters at the beginning or in the body of the form: They are:

Formatting characters inserted when sending the FPL with a teletype interface on the AFTN network. e.g. &lt; is a carriage return, = is a line feed

Routing indication, e.g. FF is the priority level for a message of type FPL.


These characters are not part of the flight plan data of course.

Parser assumptions

All fields from 7 to 18 are mandatory and included in a Filled Flight Plan message (FPL). Being mandatory doesn't prevent some field to be filled with some dummy value, e.g: Field 18 may contain &quot;0&quot; to indicate no information is provided.

Field 19 can have survival items and remarks left blank. Field 19 is not part of the FPL message, but of the SPL message. The latter is transmitted to other ATS units by the ATS unit having registered the flight plan only in specific situations, e.g. when the contact has been lost with the aircraft (ALERFA).


ATS consistency
While they are mandatory, some fields are used only in specific conditions, in particular the ones related to navigation capabilities.

Example: Not all approaches or routes are PBN required. Not mentioning some navigation capabilities may not be a problem if the capability is not required by an ATS unit to provide the desired routing, but if you use a RNAV approach, the flight plan will be rejected.

For more information on the combinations that are consistent, see the interactive Eurocontrol Flight Plan Guide for IFPS (Integrated Initial Flight Plan Processing System). Example:


When PBN is specified in the item 18 of a flight plan, it indicates the Performance Based Navigation (PBN) levels and/or the Required
Navigation Performance (RNP) levels that can be met. It can only be
present if the aircraft is PBN approved which shall be notified by the
letter R in the equipment of that flight plan.



**Filling instructions**
The content of the ICAO flight plan is detailed in appendix 2 of ICAO Doc 4444 (PANS-ATM) and a filled sample is provided (page 361), but filling instructions are also available separately, e.g.:

ICAO Flightplan Form Basics
Flight Plan Filling at SKYbrary (Eurocontrol)

Note that FAA and ICAO flight plan forms have been different in the past, and while FAA is pushing for the adoption of the ICAO form, it seems the FAA form is still used for US domestic flights.