An XML Polar Data Format


Purpose of XML-Files

The eXtensible Markup Language (XML) is being used by many programs for almost all kind of data handling. In contrast to several other file formats, its main advantages are

I have also defined an XML schema to represent polars of airfoils, which can be used to describe the aerodynamic characteristics of airfoils. It would be very helpful, if such a format would be implemented by most programs which handle airfoil polars.

Before the birth of XML, I have used my older PEF format for the same purpose. To play with various polar formats, I have written the PolarBrowser application.


V 2.1

This utility program for Windows 9x/NT/2000/XP has been developed from PEFbrowser. It can read, display, print and convert various airfoil polar file formats. It reads XML, PEF, POL and DRG files, writes XML, PEF, POL and EPP files and can be used to sort and combine different polar sets. The program has been written in VisualBasic 6.0. The program can now also handle UNIX style PEF files, with lines terminated by a line feed character (ASCII 10) only, not the DOS/Windows CR/LF (ASCII 10/13) pair.
Download the following three Microsoft Installer files and then run the .msi file to install.

polarbrowser.msi (1696 kB)

File Format

PEF see the PEF-format page
POL XFoil 5.4 polars
DRG UIUC and Princeton experiments
EPP Eppler input file (export only, to plot polars with Eppler's airfoil program)


Modell-Windkanal University of Stuttgart (of local interest only)


Extensible Markup Language described below (should be used as a standard format)

Structure of an XML-File

Any  XML file is made up from tags similar to a HTML file. Tags are enclosed in pointed parentheses (<tag>). Each XML file must begin with a header tag:

<?xml version="1.0"?>

In contrast to HTML the names of the remaining tags are not prescribed, but can be defined by the user. To be useful for data transfer, the names of the tags must be known to and data receiver. Therefore an XML scheme can be set up, which describes the tag names and their content.

Defining an XML-Schema

As tags can be nested, it is possible to create an object oriented  representation of structured data quite well. For example several polars for one airfoil configuration (e.g. smooth surface, no flap deflection), but having different Reynolds numbers can be grouped together in a <configuration>.

My XML airfoil schema is named "polar-schema" of course and is stored in an XML file "polar-schema.xsd". It describes the types of elements and their allowed contents. A complete structured description of the schema and all its elements can be found here. All tags are written in lower case.


The XML file can be used to store data for one airfoil or wing or entire aircraft. It must have a version attribute which should read "1.0" and it may contain a <comment>.


The Polar-Exchange-File packages polars by configuration. A configuration is intended to represent a geometrical configuration, e.g. a flap setting. For a standard airfoil without flaps, the XML file would contain one configuration only. All configurations are stored inside a <configurations> collection. The configurations element may have a <name> element which should identify the global object (e.g. "NACA 0010" or "Airbus A 340-600") without details about the individual configurations.


Each <configuration> has a name, which should identify the actual geometry more closely (e.g. "25% flap, 10 deg deflection"). If desired a <copyright> element may be used to describe any restrictions usage of this configuration data set.


All polars for one configuration are contained inside a <polars> collection.


Each polar starts with a definition of the variables used. The order of these variables defines the sequence of the data values. This means the first data value for each data point is assigned to the first variable and so on. Later, when the <datapoints> of this polar are read, the values of each data point are assigned to the corresponding variables. Thus sequence and number of variables can be varied and extended later if necessary. Each polar also has its parameters <machnumber> and <reynoldsnumber> as well as a name which describes its origin (e.g. "Wind Tunnel Test summer 1969").

Defining an XML-File based on the Polar-Schema

Now the schema looks quite complicated, but you shouldn't be too much impressed. Working the schema from bottom to top, we can find the structure shown below. We can see, that a polar XML file packages the data items that make up the polar at different levels. If we were only interested in the number of polars of an airfoil, we don't have to dive down to the actual lift and drag values.

The example below should shed a light on the structure of an airfoil-XML file. As the XML file is nicely and hierarchically structured, it is quite easy to write a simple XML parser for these airfoil files.

Example of an XML Polar-File

<?xml version="1.0"?>
<polar-exchange-file version="1.0" 
 <!-- the previous lines describe the location of the schema document which defines the
      default "name space". These are used for validating the contents of the file.
      First the prefix "xsi" is defined to refer the elements defined in the
      "" schema. This standard schema is usually
      embedded in all parsers, so no location must be given.
      Then the default namespace is defined to be "".
      Finally the string assigned to "xsi:schemaLocation" links this namespace to the file
      "airfoil-schema.xsd". This is a location where the parser can find the schema
      description file. If it is in a different directory as the airfoil file, it would
      maybe read "./schemas/airfoil-schema.xsd".
      It could also be an URL like ""
      if you prefer to access the document via the internet.
<comment>The 'PEF-Browser' application, a polar file converter is available
in the software section at:</comment>

 <name>AQUILA airfoil</name>

 <name>Balsa airfoil model</name>


  <name>first test run</name>

... some lines omitted ...

... some lines omitted ...
... some lines omitted ...

Last modification of this page: 21.05.18

[Back to Home Page] Suggestions? Corrections? Remarks? e-mail: Martin Hepperle.

Due to the increasing amount of SPAM mail, I have to change this e-Mail address regularly. You will always find the latest version in the footer of all my pages.

It might take some time until you receive an answer and in some cases you may even receive no answer at all. I apologize for this, but my spare time is limited. If you have not lost patience, you might want to send me a copy of your e-mail after a month or so.
This is a privately owned, non-profit page of purely educational purpose. Any statements may be incorrect and unsuitable for practical usage. I cannot take any responsibility for actions you perform based on data, assumptions, calculations etc. taken from this web page.

1996-2018 Martin Hepperle
You may use the data given in this document for your personal use. If you use this document for a publication, you have to cite the source. A publication of a recompilation of the given material is not allowed, if the resulting product is sold for more than the production costs.

This document may accidentally refer to trade names and trademarks, which are owned by national or international companies, but which are unknown by me. Their rights are fully recognized and these companies are kindly asked to inform me if they do not wish their names to be used at all or to be used in a different way.

This document is part of a frame set and can be found by navigating from the entry point at the Web site

Impressum       Datenschutz