GraphML core language definitions including GraphML attributes and GraphML parseinfo. Get access to the xlink attribute groups for the attributes xlink:href and xlink:type of locator.type. Redefinition of file graphml-structure.xsd.

Extends the attribute group key.extra.attrib (which takes part in the attribute list of <key>) by adding the attribute yfiles.type which is defined below.

Custom yfiles specific attribute that allows to specify an additional data type. Redefinition of file graphml-structure.xsd. Extends the attribute group key.extra.attrib (which takes part in the attribute list of <key>) by adding the attribute group key.attributes.attrib which is defined below. Redefinition of file graphml-structure.xsd.

Extends the attribute group node.extra.attrib (which takes part in the attribute list of <node>) by adding a yfiles specific attribute for the folder type.

The foldertype for group/folder nodes. Redefinition of file graphml-structure.xsd. Extends the attribute group graph.extra.attrib (which takes part in the attribute list of <graph>) by adding the attribute group graph.parseinfo.attrib which is defined below. Extension mechanism for the content of <data> and <default>. The complex type data-extension.type is empty per default. Users may redefine this type in order to add content to the complex types data.type and default.type which are extensions of data-extension.type. This document defines the GraphML language including GraphML attributes and GraphML parseinfo. Redefinition of file graphml-structure.xsd. Extends the attribute group node.extra.attrib (which takes part in the attribute list of <node>) by adding the attribute group node.parseinfo.attrib which is defined below. The schema corresponding to this document defines the structural layer of the Graph Markup Language (GraphML). Although a DTD is provided, this schema is, together with its extensions http://graphml.graphdrawing.org/xmlns/1.0/graphml-attributes.xsd and http://graphml.graphdrawing.org/xmlns/1.0/graphml-parseinfo.xsd, the only normative reference. The attribute groups <element_name>.extra.attrib may be used for adding user defined attributes to the elements <element_name>. The attribute group common.extra.attrib may be used for adding user defined attributes to all elements. Complex type definitions for the GraphML structural layer elements: <data>, <default>, <key>, <graphml>, <graph>, <node>, <port>, <edge>, <hyperedge>, <endpoint> and <locator>. The names of the complex types are constructed corresponding to the pattern element_name.type. (The only remaining GraphML structural layer element <desc> is of simple type xs:string.) Complex type for the <data> element. data.type is mixed, that is, <data> may contain #PCDATA. Content type: extension of data-extension.type which is empty per default. refers to the id attribute of a <key>. identifies this <data>. user defined extra attributes for <data> elements Complex type for the <default> element. default.type is mixed, that is, data may contain #PCDATA. Content type: extension of data-extension.type which is empty per default. user defined extra attributes for <default> elements Simple type for the for attribute of <key>. key.for.type is a restriction of xs:NMTOKEN Allowed values: all, graphml, graph, node, edge, hyperedge, port and endpoint. Complex type for the <key> element. identifies this <key>. describes the domain of definition for the corresponding graph attribute. user defined extra attributes for <key> elements. Complex type for the <graphml> element. user defined extra attributes for <graphml> elements. Simple type for the edgedefault attribute of <graph>. graph.edgedefault.type is a restriction of xs:NMTOKEN Allowed values: directed, undirected. Complex type for the <graph> element. user defined extra attributes for <graph> elements. identifies this graph . describes whether edges of this graph are considered as directed or undirected per default (unless specified by the attribute directed of <edge>). Complex type for the <node> element. user defined extra attributes for <node elements. identifies this node. Complex type for the <port> element. user defined extra attributes for <port> elements. identifies this port, within the node it is contained in. Complex type for the <edge> element. user defined extra attributes for <edge> elements. identifies this edge . overwrites the edgedefault attribute of <graph> . points to the id attribute of the source <node>. points to the id attribute of the target <node>. points to the name attribute of the source <port>. points to the name attribute of the target <port>. Complex type for the <hyperedge> element. user defined extra attributes for <hyperedge> elements. identifies this <hyperedge> . Simple type for the type attribute of <endpoint>. endpoint.type.type is a restriction of xs:NMTOKEN Allowed values: in, out, undir. Complex type for the <endpoint> element. user defined extra attributes for <endpoint> elements. identifies this <endpoint> . points to the name of the port, to which this endpoint is connected . points to the id of the node, to which this endpoint is connected. defines the direction on this endpoint (undirected per default). Complex type for the <locator> element. Content type: (empty) user defined extra attributes for <locator> elements. points to the resource of this locator. type of the hyperlink (fixed as simple). Description: Provides human-readable descriptions for the GraphML element containing this <desc> as its first child. Occurence: <key>, <graphml>, <graph>, <node>, <port>, <edge>, <hyperedge>, and <endpoint>. Description: Graphs and nodes are declared by the elements <graph> and <node>, respectively. The optional <locator>-child of these elements point to their definition. (If there is no <locator>-child the graphs/nodes are defined by their content). Occurence: <graph>, and <node>. Description: In GraphML there may be data-functions attached to graphs, nodes, ports, edges, hyperedges and endpoint and to the whole collection of graphs described by the content of <graphml>. These functions are declared by <key> elements (children of <graphml>) and defined by <data> elements. Occurence: <graphml>, <graph>, <node>, <port>, <edge>, <hyperedge>, and <endpoint>. Ensures: uniqueness of the key attributes of <data> children of this <data> element. Description: In GraphML there may be data-functions attached to graphs, nodes, ports, edges, hyperedges and endpoint and to the whole collection of graphs described by the content of <graphml>. These functions are declared by <key> elements (children of <graphml>) and defined by <data> elements. Occurence: <graphml>. Description: In GraphML there may be data-functions attached to graphs, nodes, ports, edges, hyperedges and endpoint and to the whole collection of graphs described by the content of <graphml>. These functions are declared by <key> elements (children of <graphml>) and defined by <data> elements. The (optional) <default> child of <key> gives the default value for the corresponding function. Occurence: <key>. Description: <graphml> is the root element of each GraphML document. Occurence: root. Ensures: uniqueness of the key attributes of <data> children of this <graphml> element. Ensures: existence and uniqueness of the id attributes of each <key> element in this document. Ensures: uniqueness of the id attributes of each <graph> element in this document. Ensures: for the key attribute of each <data> in this document, the existence of an id attribute of <key> which matches the value of it. Description: Describes one graph in this document. Occurence: <graphml>, <node>, <edge>, <hyperedge>. Ensures: uniqueness of the key attributes of <data> children of this <graph> element. Ensures: existence and uniqueness of the id attributes of each <node> element in this graph. Ensures: uniqueness of the id attributes of each <edge> element in this graph. Ensures: uniqueness of the id attributes of each <hyperedge> element in this graph. Ensures: uniqueness of the id attributes of each <endpoint> element in this graph. Ensures: for the source attribute of each <edge> in this graph, the existence of an id attribute of <node> which matches the value of it. Ensures: for the target attribute of each <edge> in this graph, the existence of an id attribute of <node> which matches the value of it. Ensures: for the node attribute of each <endpoint> in this graph, the existence of an id attribute of <node> which matches the value of it. Description: Describes one node in the <graph> containing this <node>. Occurence: <graph>. Ensures: existence and uniqueness of the name attributes of each <port> element within this <node>. Ensures: uniqueness of the key attributes of <data> children of this <node> element. Description: Nodes may be structured by ports; thus edges are not only attached to a node but to a certain port in this node. Occurence: <node>, <port>. Ensures: uniqueness of the key attributes of <data> children of this <port> element. Description: Describes an edge in the <graph> which contains this <edge>. Occurence: <graph>. Ensures: uniqueness of the key attributes of <data> children of this <edge> element. Description: While edges describe relations between two nodes, a hyperedge describes a relation between an arbitrary number of nodes. Occurence: <graph>. Ensures: uniqueness of the key attributes of <data> children of this <hyperedge> element. Description: The list of <endpoints> within a hyperedge points to the nodes contained in this hyperedge. Occurence: <hyperedge>. Simple type for the attr.name attribute of <key>. key.name.type is final, that is, it may not be extended or restricted. key.name.type is a restriction of xs:NMTOKEN Allowed values: (no restriction) Simple type for the attr.type attribute of <key>. key.type.type is final, that is, it may not be extended or restricted. key.type.type is a restriction of xs:NMTOKEN Allowed values: boolean, int, long, float, double, string, complex. Definition of the attribute group key.attributes.attrib. This group consists of the two optional attributes - attr.name (gives the name for the data function) - attr.type (declares the range of values for the data function) Simple type for the parse.order attribute of <graph>. graph.order.type is final, that is, it may not be extended or restricted. graph.order.type is a restriction of xs:NMTOKEN Allowed values: free, nodesfirst, adjacencylist. Simple type for the parse.nodes attribute of <graph>. graph.nodes.type is final, that is, it may not be extended or restricted. graph.nodes.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Simple type for the parse.edges attribute of <graph>. graph.edges.type is final, that is, it may not be extended or restricted. graph.edges.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Simple type for the parse.maxindegree attribute of <graph>. graph.maxindegree.type is final, that is, it may not be extended or restricted. graph.maxindegree.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Simple type for the parse.maxoutdegree attribute of <graph>. graph.maxoutdegree.type is final, that is, it may not be extended or restricted. graph.maxoutdegree.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Simple type for the parse.nodeids attribute of <graph>. graph.nodeids.type is final, that is, it may not be extended or restricted. graph.nodeids.type is a restriction of xs:string Allowed values: (no restriction). Simple type for the parse.edgeids attribute of <graph>. graph.edgeids.type is final, that is, it may not be extended or restricted. graph.edgeids.type is a restriction of xs:string Allowed values: (no restriction). Definition of the attribute group graph.parseinfo.attrib. This group consists of the seven attributes:
  • parse.nodeids
  • (fixed to 'canonical' meaning that the id attribute of <node> follows the pattern 'n[number]),
  • parse.edgeids
  • (fixed to 'canonical' meaning that the id attribute of <edge> follows the pattern 'e[number]),
  • parse.order
  • (required; one of the values 'nodesfirst', 'adjacencylist' or 'free'),
  • parse.nodes
  • (required; number of nodes in this graph),
  • parse.edges
  • (required; number of edges in this graph),
  • parse.maxindegree
  • (optional; maximal indegree of a node in this graph),
  • parse.maxoutdegree
  • (optional; maximal outdegree of a node in this graph)
Simple type for the parse.indegree attribute of <node>. node.indegree.type is final, that is, it may not be extended or restricted. node.indegree.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Simple type for the parse.outdegree attribute of <node>. node.outdegree.type is final, that is, it may not be extended or restricted. node.outdegree.type is a restriction of xs:nonNegativeInteger Allowed values: (no restriction). Definition of the attribute group node.parseinfo.attrib. This group consists of two attributes - parse.indegree (optional; indegree of this node), - parse.outdegree (optional; outdegree of this node). The valid folder types for a folder/group node.

Valid values are

  • folder: for folder nodes
  • group: for group nodes
  • leaf: for leaf nodes (this is the implied value)