yFiles GML Compatibility and Extensions

The following table shows a list of all GML features, sections and attributes, that are handled by the y.io.GMLIOHandler class.

Basic GML contents

GML toplevel

itemtypedescriptionparsedwritten
.Creatorattribute [String]The name of the creator of the file-X
.versionattribute [Double]The version of the creator-X
.graphsection (single)The actual graph dataXX

.graph level

itemtypedescriptionparsedwritten
.graph.labelattribute [String]The textual name of the graph-X
.graph.directedattribute [Integer / Boolean]Predicate, whether edges are directed-X
.graph.nodesection (multiple)A simple nodeXX
.graph.edgesection (multiple)A simple edgeXX
.graph.defaultnodesizeattribute [String]May be set to 'labelsize', the parser will automatically assign a node size for nodes, whose width or height is not setX-
.graph.defaultnodeinsetshorizontalattribute [Integer]Used in conjunction with defaultnodesize = 'labelsize'; determines horizontal insets between label and nodeborder X-
.graph.defaultnodeinsetsverticalattribute [Integer]Used in conjunction with defaultnodesize = 'labelsize'; determines vertical insets between label and nodeborder X-
.graph.defaultnodeminwidthattribute [Integer]Used in conjunction with defaultnodesize = 'labelsize'; determines minimal width of automatically assigned widths X-
.graph.defaultnodeminheightattribute [Integer]Used in conjunction with defaultnodesize = 'labelsize'; determines minimal height of automatically assigned heights X-

.graph.node level

itemtypedescriptionparsedwritten
.graph.node.idattribute [Integer]The unique node idXX
.graph.node.labelattribute [String]The textual name of the node (label)XX
.graph.node.graphicssection (single)The graphical representation of the nodeXX

.graph.node.graphics level

itemtypedescriptionparsedwritten
.graph.node.graphics.xattribute [Double]The x-coordinate of the center of the nodeXX
.graph.node.graphics.yattribute [Double]The y-coordinate of the center of the nodeXX
.graph.node.graphics.wattribute [Double]The width of the nodeXX
.graph.node.graphics.hattribute [Double]The height of the nodeXX
.graph.node.graphics.typeattribute [String] The name of the shapetype
This is one of:
ValueDescription
ellipse, oval, circle
rectangle
triangle
parallelogram
hexagon
diamond
octagon
roundrectangle
rectangle3d
trapezoid
trapezoid2
XX
.graph.node.graphics.imageattribute [String]The URL of the image used for image nodesXX
.graph.node.graphics.widthattribute [Double]The stroke width used for the nodeXX
.graph.node.graphics.fillattribute [Color]The fill color of the nodeXX
.graph.node.graphics.outlineattribute [Color]The stroke color used for the nodeXX
.graph.node.graphics.hasFillattribute [Integer / Boolean]Whether or not the node has a fill colorXX
.graph.node.graphics.hasOutlineattribute [Integer / Boolean]Whether of not the node has an outlineXX

.graph.node.LabelGraphics level

itemtypedescriptionparsedwritten
.graph.node.LabelGraphics.typeattribute [String]The content type of the label, either "text" for textual labels or "index_label" for automatic numeric labelsXX
.graph.node.LabelGraphics.colorattribute [Color]The text color of the labelXX
.graph.node.LabelGraphics.fillattribute [Color]The background color of the labelXX
.graph.node.LabelGraphics.colorattribute [Color]The text color of the labelXX
.graph.node.LabelGraphics.alignmentattribute [String]The alignment of multi-line label, either "center", "left" or "right".XX
.graph.node.LabelGraphics.anchorattribute [String]The anchor type of the label, that determines the postition of the label relative to its node. Positions within the node are "c", "t", "tl", "tr", "l", "r", "bl", "b", br". Positions around the node are "n", "ne", "e", "se", "s", "sw", "w", "nw".
XX
.graph.node.LabelGraphics.xattribute [Double]The absolute x-coordinate of the label. This value will only be written if the label position does not correspond to a predefined label anchor. Also, this value will only be read if no label anchor is specified.XX
.graph.node.LabelGraphics.yattribute [Double]The absolute y-coordinate of the label. This value will only be written if the label position does not correspond to a predefined label anchor. Also, this value will only be read if no label anchor is specified.XX
.graph.node.LabelGraphics.fontSizeattribute [Integer]The size of the label fontXX
.graph.node.LabelGraphics.fontStyleattribute [String]The style of the label font, either "plain", "italic" or "bold".XX
.graph.node.LabelGraphics.fontNameattribute [String]The logical name of the label font, either "Dialog", "DialogInput", "Monospaced", "Serif", "SansSerif", or "Symbol".XX

.graph.edge level

itemtypedescriptionparsedwritten
.graph.edge.sourceattribute [Integer]The id of the source node (.graph.node.id)XX
.graph.edge.targetattribute [Integer]The id of the target node (.graph.node.id)XX
.graph.edge.labelattribute [String]The textual name of the edge (label)XX
.graph.edge.graphicssection (single)The graphical representation of the edgeXX
.graph.edge.edgeAnchorsection (single)The port definitionsXX

.graph.edge.graphics level

itemtypedescriptionparsedwritten
.graph.edge.graphics.typeattribute [String]The name of the linetype-X
.graph.edge.graphics.widthattribute [Double]The stroke width used for the lineXX
.graph.edge.graphics.fillattribute [String]The color of the lineXX
.graph.edge.graphics.arrowattribute [String]"last" or "first" depending on whether there are arrows at the sourceport and the targetportXX
.graph.edge.graphics.linesection (single)The positions of the ports and bends of the edgeXX

.graph.edge.graphics.line level

itemtypedescriptionparsedwritten
.graph.edge.graphics.line.pointsection (multiple)A single bend or portXX

.graph.edge.graphics.line.point level

itemtypedescriptionparsedwritten
.graph.edge.graphics.line.point.xattribute [Double]The x-coordinate of the pointXX
.graph.edge.graphics.line.point.yattribute [Double]The y-coordinate of the pointXX

.graph.edge.edgeAnchor level

itemtypedescriptionparsedwritten
.graph.edge.LabelGraphics.typeattribute [String]The content type of the label, either "text" for textual labels or "index_label" for automatic numeric labelsXX
.graph.edge.LabelGraphics.colorattribute [Color]The text color of the labelXX
.graph.edge.LabelGraphics.fillattribute [Color]The background color of the labelXX
.graph.edge.LabelGraphics.outlineattribute [Color]The border color of the labelXX
.graph.edge.LabelGraphics.alignmentattribute [String]The alignment of multi-line label, either "center", "left" or "right".XX
.graph.edge.LabelGraphics.modelattribute [String] The model of the label, that determines how to interpret the position of a label. Known models are "center_slider", "side_slider", "six_pos", "three_pos", "two_pos", "free" and "centered". For each model certain label positions can be assigned (see below) X X
.graph.edge.LabelGraphics.positionattribute [String] The symbolic position of the label, that determines the actual position of the label. Known positions are "center" "tcentr", "scentr", "shead", "head" "thead", "stail", "tail" and "ttail". Depicted below is a list of the available edge label models together with their
Model CENTERED Model TWO_POS
Model THREE_CENTER Model SIX_POS
.graph.edge.LabelGraphics.xattribute [Double] The absolute x-coordinate of the label. This value must be used to specify the position of the label for the label model types "center_slider", "side_slider" and "free".
.graph.edge.LabelGraphics.yattribute [Double] The absolute y-coordinate of the label. This value must be used to specify the position of the label for the label model types "center_slider", "side_slider" and "free".
Model CENTER_SLIDER Model SIDE_SLIDER
Model FREE
.graph.edge.LabelGraphics.fontSizeattribute [Integer]The size of the label fontXX
.graph.edge.LabelGraphics.fontStyleattribute [String]The style of the label font, either "plain", "italic" or "bold".XX
.graph.edge.LabelGraphics.fontNameattribute [String]The logical name of the label font, either "Dialog", "DialogInput", "Monospaced", "Serif", "SansSerif", or "Symbol".XX
.graph.edge.edgeAnchor.xSourceattribute [Double]the position of the source port x coordinate relative to half its width measured from the center of the nodeXX
.graph.edge.edgeAnchor.ySourceattribute [Double]the position of the source port y coordinate relative to half its height measured from the center of the nodeXX
.graph.edge.edgeAnchor.xTargetattribute [Double]the position of the target port x coordinate relative to half its width measured from the center of the nodeXX
.graph.edge.edgeAnchor.yTargetattribute [Double]the position of the target port x coordinate relative to half its height measured from the center of the nodeXX

Hierarchy Extension

.graph level

itemtypedescriptionparsedwritten
.graph.hierarchicattribute [Integer / Boolean]Predicate, whether the graph may contain subfolders and/or group nodes-X
.graph.interedgesection (multiple)An interedge definitionXX

.graph.node level

itemtypedescriptionparsedwritten
.graph.node.graphUrlattribute [String]Definition of an inner graph, referenced by an URLX-
.graph.node.graphsection (single)Inline definition of an inner graphXX
.graph.node.isGroupattribute [Integer / Boolean]Whether or not the node is a group node that can be referenced by other node using the gid attributeXX
.graph.node.gidattribute [Integer]The id of the group node this node belongs toXX
.graph.node.graphsection (single)Inline definition of an inner graphXX

.graph.edge level

itemtypedescriptionparsedwritten
.graph.edge.idattribute [Integer]A (scope) unique edge idXX

.graph.interedge level

itemtypedescriptionparsedwritten
.graph.interedge.sourcePathattribute [String]The relative path of node ids (.graph.node.id), separated by ':' to the real source nodeXX
.graph.interedge.targetPathattribute [String]The relative path of node ids (.graph.node.id), separated by ':' to the real target nodeXX
.graph.interedge.representativeattribute [Integer]The id of the representing edge in this graph (.graph.edge.id)XX
attribute [String]
This is a key value pair, where the value is a quoted String
attribute [Integer]
This is a key value pair, where the value is an unquoted signed Integer
attribute [Double]
This is a key value pair, where the value is an unquoted signed real number in double precision
attribute [Integer / Boolean]
This is a key value pair, where the value is an unquoted signed Integer, the parser treats only nonnegative values as true
attribute [String / Color]
This is a key value pair, where the value is an a quoted String, in the form #RRGGBB, where each of the pairs is a hexadecimal value in the range of 00 to FF