Flying Logic Document Format
Last updated
Last updated
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.
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.
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.
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
.
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
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