file handling name data type notes minimum length and no whitespace report_id str date datetime date airport str nonempty and no newlines aircraft_id str nonempty and no newlines aircraft_type str nonempty and no newlines pilot_percent_hours_on_type float range to pilot_total_hours int positive and nonzero midair bool narrative str multiline figure aircraft incident record pros and cons for each format and for each way of handling them we show all of them to help you make an informed decision on case-by-case basis binary formats are usually very fast to save and load and they can be very compact binary data doesn' need parsing since each data type is stored using its natural representation binary data is not human readable or editableand without knowing the format in detail it is not possible to create separate tools to work with binary data text formats are human readable and editableand this can make text files easier to process with separate tools or to change using text editor text formats can be tricky to parse and it is not always easy to give good error messages if text file' format is broken ( by careless editingxml formats are human readable and editablealthough they tend to be verbose and create large files like text formatsxml formats can be processed using separate tools parsing xml is straightforward (providing we use an xml parser rather than do it manually)and some parsers have good error reporting xml parsers can be slowso reading very large xml files can take lot more time than reading an equivalent binary or text file xml includes metadata such as the character encoding (either implicitly or explicitlythat is not often provided in text filesand this can make xml more portable than text files text formats are usually the most convenient for end-usersbut sometimes performance issues are such that binary format is the only reasonable choice howeverit is always useful to provide import/export for xml since this makes it possible to process the file format with third-party tools without preventing the most optimal text or binary format being used by the program for normal processing