The code-behind information that makes up a Wings Flight Plan is stored on the local file system in XML files with the extension .wflp (pronounced 'flip'. These are created whenever a new Flight Plan is first saved, and follow a schema with three key elements:

Flip file

A flip file contains the list of the source files for all the programs and display files comprising the flight plan. The flip file stores basic information for each source, including library, file, and member names as well as text, attribute and last modification timestamp. Other user defined attributes, called tags, are also recorded in the flip file. Here is an example:

 <flightplan >
    <sources >
        <source Type="Program" Library="CDEV" File="QRPGSRC"   Member="ACTACT"   Attribute ="RPG"
               Text="Account Activity" ChangeStamp="2010-03-01T12:35:10" Status="matched"
               Matches="CDEV/QDDSSRC/ACTACTFM" / >
        <source Type="Program"Library="CDEV" File="QRPGSRC"   Member="ADD1FEE"  Attribute ="RPGLE"
               Text="Fee Sched Maint" ChangeStamp="2002-11-12T09:34:35" Status="mixed"
               Matches="CDEV/QDDSSRC/ADD1FEEFM,COMN/QDDSSRC/PROMPTER" / >
        <source Type="Program"Library="CDEV" File="QRPGSRC"   Member="ADJAPPMN" Attribute ="RPGLE"
               Text="Adjustment/Appeal" ChangeStamp="2007-07-03T15:13:16" Status="mixed"
               Matches="CDEV/QDDSSRC/ADJAPPFM" Missing="PROMPTFM"/ >
        <source Type="Program"Library="XDEV" File="QRPGSRC"   Member="ADTR001"  Attribute ="RPG"
               Text="Select Notes" ChangeStamp="2004-04-04T14:47:00" Status="single"
               Missing="ADTD001" / >
        <source Type="Program"Library="XDEV" File="QRPGLESRC" Member="ADTR002"  Attribute ="RPGLE"
               Text="Work with Akai'" ChangeStamp="2005-05-04T11:35:20" Status="matched"
               Matches="CDEV/QDDSSRC/ADTD002,COMN/QDDSSRC/PROMPTER" / >     
        <source Type="DisplayFile" Library="CDEV" File="QDDSSRC" Member="ACTACTFM"  Attribute ="DSPF"
               Text="Account Activity" ChangeStamp="2010-03-01T09:30:10" Status="matched"
               Matches="CDEV/QRPGSRC/ACTACT"   / >
        <source Type="DisplayFile" Library="CDEV" File="QDDSSRC" Member="ADD1FEEFM" Attribute ="DSPF"
               Text="Appeals"ChangeStamp="2003-12-15T15:20:55" Status="matched"
               Matches="CDEV/QRPGSRC/ADD1FEE"  / >
        <source Type="DisplayFile" Library="CDEV" File="QDDSSRC" Member="ADD2FEEFM" Attribute ="DSPF"
               Text="Test Code" ChangeStamp="2002-11-12T08:34:35" Status="single" / >
        <source Type="DisplayFile" Library="CDEV" File="QDDSSRC" Member="ADJAPPFM"  Attribute ="DSPF"
               Text="Adjustment/Appeal" ChangeStamp="2007-06-01T14:13:16" Status="matched"
               Matches="CDEV/QRPGSRC/ADJAPPMN" / >
        <source Type="DisplayFile" Library="CDEV" File="QDDSSRC" Member="ADTD002"   Attribute ="DSPF"
               Text="Work with Akai" ChangeStamp="2004-04-04T13:48:00" Status="matched"
               Matches="XDEV/QRPGLESRC/ADTR002"  / >
        <source Type="DisplayFile" Library="COMN" File="QDDSSRC" Member="PROMPTER"  Attribute ="DSPF38"
               Text="Prompt User" ChangeStamp="2002-05-04T09:30:10" Status="matched"
               Matches="CDEV/QRPGSRC/ADD1FEE,XDEV/QRPGLESRC/ADTR002" / >
    </sources >
 </flightplan >
				

The key core elements of a flip file are:

  • <flightplan / >
  • <programs / >
  • <displayfiles / >
  • <source / >

<flightplan / >

The flightplan element contains the list of all the sources for programs and display files comprising the Flight Plan.

  <xs:element name="flightplan">
   <xs:complexType>
       <xs:element name="sources" type="sourcesType" />
   </xs:complexType>
 </xs:element>

The source type is defined as follows:

<xs:complexType name="sourcesType">
  <xs:element name="source" type="sourceType" minOccurs="0" maxOccurs="unbounded" />
<xs/complexType>		

<sources />

The sources element holds zero or more elements with source information for the programs and display files in the Flight Plan.

<source />

The source element keeps the tag values for an individual source. Tags are expressed as xml attributes, so the schema for the source element can be extended with additional user defined tags (usually done through the Define New Tag dialog). The source's attributes are categorized as follows:

  • Required
    • Mutable
    • Immutable
  • Optional
    • Always mutable

The source format is:

<xs:complexType name="sourceType">
     <xs:attribute name="Type"        type="xs:typeType" use="required" />
     <xs:attribute name="Library"     type="xs:string"   use="required" />
     <xs:attribute name="File"        type="xs:string"   use="required" />
     <xs:attribute name="Member"      type="xs:string"   use="required" />
     <xs:attribute name="Attribute"   type="xs:string"   use="required" />
     <xs:attribute name="Text"        type="xs:string"   use="required" />
     <xs:attribute name="ChangeStamp" type="xs:datetime" use="required"/>
     <xs:attribute name="Status"      type="statusType"  use="required" />
     <xs:attribute name="Matches"     type="xs:string"    />
     <xs:attribute name="Missing"     type="xs:string"     />
     <xs:anyAttribute/>
</xs:complexType>

<xs:simpleType name="typeType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Program"/>
    <xs:enumeration value="DisplayFile"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="statusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="Matched"/>
     <xs:enumeration value="Single"/>
     <xs:enumeration value="Mixed"/>
   </xs:restriction>
 </xs:simpleType>
</html>					 	

Tag Elements

The flip file contains elements that define of the tags used in the flight plans, if these are copied to another flip file, any custom tags in the current flight plan will be carried over:

  • <flightplantags />
  • <tag />
  • <enumeration />

<flightplantags />

The flightplantags file defines additional tags that can be assigned to the <source /> element of the flip file. These tags are expressed as elements and are defined by the user.

<xs:element name="flightplantags">
   <xs:complexType>
      <xs:element name="tag" type="tagType" minOccurs="0" maxOccurs="unbounded" />
   </xs:complexType>
</xs:complexType>				
					

<tag/>

The tag element defines the name and type of the tag; other optional attributes of a tag are an image location and sorting direction.

<xs:complexType name="tagType">
     <xs:attribute name="name"      type="xs:string"  use="required" />
     <xs:attribute name="type"      type="typeType"   use="required" />
     <xs:attribute name="image"     type="xs:string" />
     <xs:attribute name="sortorder" type="sortType " />
     <xs:attribute name="text"      type="xs:string" />
     <xs:attribute name="default"   type="xs:string" />
     <xs:element name="enum"        type="enumType" minOccurs="0" maxOccurs="unbounded" />
</xs:complexType>

<xs:simpleType  name="typeType">
     <xs:restriction base="xs:string">
       <xs:pattern value="String|Integer|Date|Boolean|Enumeration"/>
     </xs:restriction>
 </xs:simpleType>

<xs:simpleType  name="sortType">
     <xs:restriction base="xs:string">
       <xs:pattern value="Ascending|Descending "/>
     </xs:restriction>
 </xs:simpleType>

<enum />

The enum element defines the sets of values for a tag with an enumeration type. Each enum has a value (name), a sort index and an optional image.

 <xs:complexType name="enumType">
     <xs:attribute name="value"   type="xs:string"           use="required" />
     <xs:attribute name="index"   type="xs:positiveInteger"  use="required" />
     <xs:attribute name="image"   type="xs:string"/>
</xs:complexType>					
					

Groupings Elements

The flip file also contains elements that define the named groupings in the Flight Plan. Each grouping specifies how sources are to be organized by creating groups based on the values of tags. Each grouping element has a nested set of groups, each group states the tags names used to classify the sources and the tag value of the parent to which this group applies.

The elements that define the groupings are:

  • <flightplangroupings />
  • <grouping />
  • <group />

<flightplangroupings />

The flightplangroupings element holds the list of the groupings associated with a flight plan.

<xs:element name=" flightplangroupings ">
   <xs:complexType>
      <xs:element name="grouping" type="groupingType" minOccurs="0" maxOccurs="unbounded" />
   </xs:complexType>
</xs:complexType>				 
				 

<grouping />

Each grouping element has a name and a nested set of groups.

<xs:complexType name="groupingType">
  <xs:attribute name="name" type="xs:string" />
   <xs:element name="group" type="groupType" />
</xs:complexType>
				 	

<group />

Each group element states the tags names used to classify the sources and the tag value of the groups parent to which this group applies.

<xs:complexType name="groupType">
  <xs:attribute name="onvalue" type="xs:string" />
  <xs:attribute name="by"      type="xs:string" />
  <xs:attribute name="thenby"  type="xs:string" />
   <xs:element name="group"    type="groupType" minOccurs="0" maxOccurs="unbounded" />
</xs:complexType>