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.
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 containingitem
- representing one checklist item to check, consisting of:call
- the callout (or label) of the item, like "Landing Gear", andconfirmation
- 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>
...
If you create duplicit property declaration, the checklist module will not start.
Checklist
The checklist xml-element has following xml attributes:
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:
<variables>
- containing several:<variable>
- defining custom checklist variables
<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