Checklist XML File

Overview

Checklist XML file defines all the checklists, their items, triggers and relations. The file is written in the XML format.

There is no simple editor to create your own checklist file. You will have to learn the XML syntax and create the XML file with checklists on your own. The following text describes the checklist XML file content.

Note that the validity of the checklist file can be verified against `ChecklistSchema.xsd` file. Here you can also find the precise XML file definition.

For triggers, you must be also familiar with g:Conditions.

Basic XML structure

The checklist XML file contains the root element checklistSet that contains three sections:

  • meta - see Meta tag explanation,

  • properties - to define custom airplane FS SimVar properties,

  • checklist - (repeated) to define checklist(s).

Example of brief content of checklist XML file:

<?xml version="1.0" encoding="utf-8" ?>
<checklistSet
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://chlaot.org/checklists.xsd"
  xmlns:g="http://chlaot.org/global.xsd"
  xsi:noNamespaceSchemaLocation="file://./Xsds/ChecklistSchema.xsd"
  firstChecklistId="batteryOn">
  <meta>
    ...
  </meta>
  <properties title="FBW Properties">
    ...
  </properties>
  <checklist id="beforeStart" callSpeech="Before Start-up">
    ...
  </checklist>
  <checklist id="beforeTaxi" callSpeech="Before Taxi">
    ...
  </checklist>
  ...
</checklistSet>

Futhrermore, every checklist consists of:

  • some xml attributes describing its settings and behavior,

  • items - element containing

    • item - representing one checklist item to check, consisting of:

      • call - the callout (or label) of the item, like "Landing Gear", and

      • confirmation - the callout of the confirmation, like "Down, three green".

  • variables - element containing custom variables to be set for checklist evaluation (TODO link)

  • trigger - containing the trigger on which the reading of the checklist should be automatically invoked.

The example of checklist XML file with checklist:

<?xml version="1.0" encoding="utf-8" ?>
<checklistSet ...>
  ...    
  <checklist id="inTaxi" callSpeech="In Taxi">
    <items>
      <item>
        <call type="speech" value="Packs"/>
        <confirmation type="speech" value="On"/>
      </item>
      <item>
        <call type="speech" value="A P U Bleed"/>
        <confirmation type="speech" value="Off"/>
      </item>
      ...
    </items>
    <variables>
      <g:randomVariable name="delay" minimum="3" maximum="8" isInteger="true"/>
    </variables>
    <trigger>
      <g:and>
        <g:property name="engine1Running" direction="above" expression="0" />
        <g:property name="engine2Running" direction="above" expression="0" />
        <g:for seconds="{delay}">
          <g:property name="gs" direction="above" expression="15"/>
        </g:for>
      </g:and>
    </trigger>
  </checklist>
  ...
</checklistSet>

XML Element explanation

ChecklistSet

This is the root element in XML. It has one xml attribute:

  • firstChecklistId - refers to the Id of the first checklist ready after the App run. Optional, if not defined, the first checklist defined in the file will be used.

Meta

The description of the meta tag is explained here.

Properties

In this section, you can define your own custom properties used by your plane, which should be then linked to the checklist trigger condition. The format is defined here.

Note that some properties are already defined by default (see link above). Use this section only if your plane is using some custom property, like L:A32NX_PARK_BRAKE_LEVER_POS.

Example:

...
<properties title="FBW Properties">
  <g:property name="fbwParkingBrake" simVar="L:A32NX_PARK_BRAKE_LEVER_POS"/>
</properties>
...

Checklist

The checklist xml-element has following xml attributes:

Name
Domain
Description

id

Text

Mandatory. Defines the "id" of the checklist used for referencing later. Also, if "callSpeech" is not defined, us used as the checklist call speech (see below).

callSpeech

Text

Optional. Used as a callout of checklist name. Can be used, if the "id" is shortened. E.g., id=lnup, callSpeech=line up. If not used, "id" is taken.

nextChecklistIds

Text;Text;...

Optional. Used to define, which checklist(s) follow(s) after this one. Multiple can be selected, the the first one is default (e.g., after approach, there can be landing or go-around). If not defined, the following checklist in the XML file is taken. If not defined and is the last, the first checklist is taken as the next one.

The elements in this element are:

  • <items> - containing several:

    • <item> - containing a pair of:

      • <call> - used to define checklist item label of type g:Speech.

      • <confirmation> - used to define checklist item confirmation of type g:Speech.

  • <variables> - containing several:

  • <trigger> - Optional. Defining automated checklist trigger. Once the checklist is the current one and the trigger is true, the checklist will be automatically started. If present, contains a single g:condition.

  • <customEntrySpeech> - Optional, of type g:Speech. Custom speech used at the beginning of the checklist.

  • <customExitSpeech> - Optional, of type g:Speech. Custom speech used at the end of the checklist.

  • <customPausedAlertSpeech> - Optional, of type g:Speech. Custom speech used as a remined after predefined interval if the checklist was paused.

Examples

An example of an empty checklist file follows:

<?xml version="1.0" encoding="utf-8" ?>
<checklistSet
 xmlns="http://chlaot.org/checklists.xsd"
  xmlns:g="http://chlaot.org/global.xsd"
  xsi:noNamespaceSchemaLocation="file://./Xsds/ChecklistSchema.xsd"
  firstChecklistId="batteryOn">
  
</checklistSet>

Checklist file contains of an expected content:

<?xml version="1.0" encoding="utf-8" ?>
<checklistSet
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://chlaot.org/checklists.xsd"
  xmlns:g="http://chlaot.org/global.xsd"
  xsi:noNamespaceSchemaLocation="file://./Xsds/ChecklistSchema.xsd"
  firstChecklistId="beforeStart">
  <meta>
    <g:label>Shortened Demo C172 checklist</g:label>
    <g:author>Marek Vajgl</g:author>
    <g:description>Shortened demo checklists C172 default plane</g:description>
  </meta>
  <properties title="My Joy Settings">
    <g:property name="joyBtnA" simVar="L:JOY_BTN_A_STATE"/>
  </properties>
  <checklist id="beforeStart" callSpeech="Before Start-up">
    <items>
      <item>
        <call type="speech" value="Parking Brake"/>
        <confirmation type="speech" value="Set"/>
      </item>
      <item>
        <call type="speech" value="Avionics"/>
        <confirmation type="speech" value="Off"/>
      </item>
    </items>
    <trigger>
      <g:property name="beaconLight" direction="passingUp" expression="0.5"/>
    </trigger>
  </checklist>
  <checklist id="beforeTaxi" callSpeech="Before Taxi">
    <items>
      <item>
        <call type="speech" value="Alternator Switch"/>
        <confirmation type="speech" value="On"/>
      </item>
      <item>
        <call type="speech" value="Voltmeter"/>
        <confirmation type="speech" value="28 volts at least"/>
      </item>
    </items>
    <variables>
      <g:randomVariable name="delay" minimum="3" maximum="8" isInteger="true"/>
    </variables>
    <trigger>
      <g:and>
        <g:property name="pushbackTugConnected" direction="below" expression="1" />
        <g:property name="engine1Running" direction="above" expression="0"/>
        <g:for seconds="{delay}">
          <g:property name="parkingBrakeSet" direction="below" expression="1"/>
        </g:for>
      </g:and>
    </trigger>
  </checklist>
  <checklist id="beforeTakeoff" callSpeech="Before Take Off">
    <items>
      <item>
        <call type="speech" value="Mixture"/>
        <confirmation type="speech" value="Set"/>
      </item>
      <item>
        <call type="speech" value="Lights"/>
        <confirmation type="speech" value="Checked"/>
      </item>
      <item>
        <call type="speech" value="Transponder"/>
        <confirmation type="speech" value="On"/>
      </item>
    </items>
  </checklist>
</checklistSet>

Last updated