Flying Logic Document Format
Flying Logic documents are XML-formatted files. The schema for release 3 documents can be downloaded here. Following are some supporting tables explaining more about the schema.
The table below gives information about each XML element that can be found in a Flying Logic document. The elements are listed in the order they generally appear in a document. The
attributes
and attribute
elements are common children of many elements, so those elements and their children are documented at the end of this table. Because the words “attributes” and “attribute” are used as element names in a Flying Logic document, those words will be shown in a fixed-width font
when referring to the element names and not as an XML attribute value.Element | Description |
flyingLogic | The root element. Attributes are majorversion (required, “3” for Flying Logic 2.X), minorversion and uuid . Can contain domains , symbols , displaySettings , canvasSettings , inspectorSettings , printSettings , documentInfo and decisionGraph elements. During XSLT export will also contain an exportDocumentInfo element. |
domains | The custom domains defined in the document. Can contain domain and alteredBuiltinDomain elements. |
domain | A custom domain. Contains entityclass and attributes elements. |
entityclass | Either a custom entity class in a domain or a reference to an entity class as an entity attribute . For a custom entity class, contain an attributes element. For a reference, has required XML attributes name and uuid . |
alteredBulltinDomain | Appears when a built-in domain is hidden. Required attributes are domainName and entityClass (the guid of one entity class in the domain). Contains an attributes element. |
symbols | The custom symbols defined in this document. Can contain symbol elements. |
symbol | Either a custom symbol or a reference to a symbol as an entity or group attribute . Required attributes are generator and idCode . A custom symbol definition will contain either additional elements or text depending on the format of the custom symbol, and can have a clip element. Bitmap image symbols contain a base-64 encoded dump of a PNG file as text. |
clip | A clip rectangle for a symbol. If missing, the default is the whole “image.” Required attributes are x , y , width and height . |
data | Appears in an SVG symbol. Contains a CDATA with the XML text from an SVG file. |
displaySettings | The visual elements and layout of the graph. All the attributes are optional: addEntityAsSuccessor , annotationToBrowse , bias , confidenceVisible , edgeNotesVisible , edgeWeightsVisible , entityIdVisible , noteNumbersVisible , orientation , and projectManagementVisible . |
canvasSettings | The scroll position and zoom level of the graph. Optional attributes are horizScroll , vertScroll and zoom . |
chartSettings | The column visibility and with settings for chart view. All the attributes are optional: classVisible , classWidth , completionVisible , effortVisible , finishDateVisible , resourceVisible , resourceWidth , startDateVisible , and titleWidth . |
inspectorSettings | This element has the state of the sidebar (inspector panel) and contains inspector elements. The attributes are visibility and width . |
inspector | State information about an inspector. The title attribute matches the internal name of one inspector. The optional attributes are visibility and height . Only the Domain, Text and User-Defined Attributes inspectors have a height. |
printSettings | Saved printing settings for the document. Optional attributes are footerLeft , footerMiddle , footerRight , headerLeft , headerMiddle , headerRight , paperMargins , paperName , paperOrientation , paperSize , saveInk and showselhalo . (Yes, showselhalo is all lowercase.) |
documentInfo | Has attributes for some of the values settable the Document inspector: author , comments , keywords and title . |
decisionGraph | The actual graph. Contains entityOperator , defaultJunctorOperator and logicGraph elements. |
entityOperator | The current entity operator for the graph. The class attribute is the name of a vertex operator. See notes about vertex operators at after this table. |
defaultJunctorOperator | The current default junctor operator for newly created junctors. The class attribute is the name of a vertex operator. See notes about vertex operators at after this table. |
calendars | The calendars defined in the document. Can be missing if project management has never been enabled for the document. Contains one or more indexed element elements that themselves contain a workdays element. See com.flyinglogic.app.project.Workweek in table below for details. |
resources | The resources defined in the document. Can be missing if no resources are defined. Contains one or more indexed element elements that themselves contain a resource element. See com.flyinglogic.app.project.Resource in table below for details. |
logicGraph | The organization of the graph. Contains a operatorFamily and graph element. |
operatorFamily | The key-value family of the graph. Has one required attribute class with a required value of com.flyinglogic.decisiongraph . DecisionGraphOperatorFamily . |
graph | The elements of the graph. Contains attributes , vertices and edges elements. |
vertices | Contains vertex elements representing entities, junctors and groups. |
vertex | An entity, junctor or group. Has a required attribute of eid , an unique integer assigned to each graph element. Entities and junctors have optional attributes of inEdgeOrder and outEdgeOrder , which are space-delimited list of eid values for edges connected to the element. Groups have a grouped attribute, a space-delimited list of eid values for child vertices, and an optional collapsed attribute which has a value of true is the group is collapsed. Contains an attributes element. During XSLT export can also contain an exportAttributes element. |
edges | Contains edge elements. |
edge | An edge. Has three required attributes: eid , an unique integer assigned to each graph element; and source and target , the eid of the connected vertices. During XSLT export can also contain an exportAttributes element. |
attributes | Contains attribute elements. |
attribute | An attribute is a key-value pair with an associated data type for the value. There are two required attributes, key and class . Each known class has its own format for its contents. See the table of recognized classes below. |
extendedDocumentInfo | This element only appears during XSLT export. Has attributes title (the document file name as a title), screenWidth and screenHeight (visible dimensions of graph) and hoistKey (eid of hoisted group if graph hoisted). |
exportAttributes | This element only appears during XSLT export if the flags XSLT_INCLUDE_FRAMES or XSLT_INCLUDE_EDGE_SPLINES are set in the exportDocument call. Contains exportAttribute elements. |
exportAttribute | A key-value pair with a key attribute and value of either text content or child elements. If XSLT_INCLUDE_FRAMES flag is set and a graph element is visible. it will have exportAttribute elements with values for x , y , width and height . If XSLT_INCLUDE_EDGE_SPLINES is set, a visible edge will have an exportAttribute with a key of path and contains a bezierList element. |
bezierList | Has attributes of head and tail that indicate what the edge is connected to: source , target , annotation , weight , entityhoistcap or junctorhoistcap . Contains one or more bezier elements. |
bezier | Has attributes giving the control points x1 , y1 , x2 , y2 , x3 , y3 , x4 and y4 . |
The contents of an
attribute
element varies by the value of the class
attribute. The first table below lists all the know keys, the class for that key and the allowed parent element of the attributes element it appears within. The second table describes the contents for each recognized class. Operators have more details after these two tables.Value of key | Value of class | Parent elements (notes) |
user.identifier | java.lang.String
java.lang.Integer
java.lang.Double
java.lang.Boolean | graph
vertex
edge
(user defined attribute where identifier is the string appearing in the UI or key to use with the user array in scripts) |
title | java.lang.String | vertex (entity and group only) |
confidence | com.arciem.FuzzyBoolean | edge
vertex (entity only) |
type | java.lang.String | vertex (either “entity” or “junctor”) |
typeid | java.lang.Integer | vertex (entity only) |
completion | java.lang.Double | vertex (entity only) |
effortTime | com.flyinglogic.app.project.FLTimeInterval | vertex (entity only) |
effort | java.lang.Double | entityClass
vertex (entity only) (1.0 equals one day) Deprecated. Do not use in 3.0 or later documents. |
startDate | com.flyinglogic.app.project.FLDate | vertex (entity only) |
endDate | com.flyinglogic.app.project.FLDate | vertex (entity only) |
projectStartDate | com.flyinglogic.app.project.FLDate | graph (calculated with finish-to-start scheduling) |
projectEndDate | com.flyinglogic.app.project.FLDate | graph (calculated with start-to-finish scheduling) |
resAssignment | java.lang.String | vertex (entity only) |
startTime | com.flyinglogic.app.project.FLTimeInterval | vertex (entity only, always calculated for now) |
endTime | com.flyinglogic.app.project.FLTimeInterval | vertex (entity only, always calculated for now) |
utilization | java.lang.Double | vertex (entity only, informational only) |
noteHTML | com.arciem.CDATAElement | edge
vertex
(styled annotation as XHTML text) |
note | java.lang.String | edge
vertex
(unformatted version of noteHTML) |
noteNumber | java.lang.Integer | edge
vertex |
entityClass | com.flyinglogic.logicgraph.entityclass.EntityClass | vertex (entity only) |
symbol | com.arciem.symbol.Symbol | entityClass
vertex (entity and group only) |
weight | java.lang.Double | edge |
backEdge | java.lang.Boolean | edge |
forwardOperator | operator
(for edge always
com.flyinglogic.logicgraph.operator.MultiplyEdgeOperator ) | edge
vertex (entity and junctor only) |
color | com.arciem.graphics.ColorRGB | entityClass
vertex (group only) |
name | java.lang.String | domain
entityClass |
uuid | java.util.UUID | entityClass |
builtin | java.lang.Boolean | domain
entityClass |
hidden | java.lang.Boolean | domain
entityClass |
edgeWeight | java.lang.Double | entityClass |
showname | java.lang.Boolean | entityClass |
Value of class | Description of attribute contents |
java.lang.String | Text is a string. |
java.lang.Integer | Text is an integer. |
java.lang.Double | Text is a real. |
java.lang.Boolean | Text is either true or false. |
java.util.UUID | Text is a text-encoded globally unique identifier (GUID); |
com.arciem.CDATAElement | A CDATA node containing XML or XHTML. |
com.arciem.FuzzyBoolean | A fuzzyBoolean element with a required attribute of true with a real value normally between 0.0 and 1.0. |
com.flyinglogic.app.project.FLDate | A date element with a required attribute value of a ISO-8601 date and time in UTC. The time should always be 00:00:00 in this version of Flying Logic. |
com.arciem.symbol.Symbol | A symbol element (see above). Can have just an idCode of “none”, indicating the default symbol for an entity class is being hidden. |
com.flyinglogic.logicgraph.entityclass.EntityClass | An entityClass element (see above). |
com.arciem.graphics.ColorRGB | A colorRGB element with three attributes red , green and blue as real values between 0.0 and 1.0. |
com.flyinglogic.app.project.Workweek | A workdays element. Has three required attributes of rid (resource ID), days (a comma-delimited days of the week as lower-case three-letter abbreviations) and hours (must be 1.0 to 23.0). Can contain event elements that act as exceptions to the work schedule. |
com.flyinglogic.app.project.Resource | a resource element. Has three required attributes: rid (resource ID), name , and cid (calendar ID). Can contain abbr (abbreviation, can be empty) and utilization (value between 0.0 and 1.0, but not 0.0) attributes. |
com.flyinglogic.app.project.FLTimeInterval | an interval element. Contains an ISO-8601 time value; e.g., PT8H0M0S represents a time interval of 8 hours |
Each kind of vertex and edge operator has a unique contained element that has no attributes or contents. The table below lists the single element contained in each operator by class.
Operator class | Contained element |
com.flyinglogic.logicgraph.operator.FuzzyOrVertexOperator | fuzzyOr |
com.flyinglogic.logicgraph.operator.FuzzyAndOperator | fuzzyAnd |
com.flyinglogic.logicgraph.operator.FuzzyXorVertexOperator | fuzzyXor |
com.flyinglogic.logicgraph.operator.AverageVertexOperator | average |
com.flyinglogic.logicgraph.operator.ComplementVertexOperator | comp |
com.flyinglogic.logicgraph.operator.DistributorVertexOperator | dist |
com.flyinglogic.logicgraph.operator.MaxVertexOperator | max |
com.flyinglogic.logicgraph.operator.MinVertexOperator | min |
com.flyinglogic.logicgraph.operator.MultiplyVertexOperator | multiply |
com.flyinglogic.logicgraph.operator.NegateVertexOperator | neg |
com.flyinglogic.logicgraph.operator.ProductVertexOperator | product |
com.flyinglogic.logicgraph.operator.ProportionVertexOperator | proportion |
com.flyinglogic.logicgraph.operator.ReciprocalVertexOperator | reciprocal |
com.flyinglogic.logicgraph.operator.SumVertexOperator | sum |
com.flyinglogic.logicgraph.operator.SumProbabilitiesVertexOperator | sump |
com.flyinglogic.logicgraph.operator.MultiplyEdgeOperator | multiply |
Last modified 3mo ago