<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<!-- Header --> | |
<xs:schema | |
targetNamespace="http://graphml.graphdrawing.org/xmlns/graphml" | |
xmlns="http://graphml.graphdrawing.org/xmlns/graphml" | |
xmlns:g="http://graphml.graphdrawing.org/xmlns/graphml" | |
xmlns:xlink="http://www.w3.org/1999/xlink" | |
xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
xmlns:y="http://www.yworks.com/xml/graphml" | |
attributeFormDefault="unqualified" | |
elementFormDefault="qualified" > | |
<xs:annotation> | |
<xs:documentation> | |
GraphML core language definitions including GraphML attributes and GraphML parseinfo. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:import namespace="http://www.yworks.com/xml/graphml" schemaLocation="yfeatures.xsd"/> | |
<!--<xs:include schemaLocation="graphml-parseinfo.xsd"/>--> | |
<!--<xs:include schemaLocation="graphml-parseinfo.xsd"/>--> | |
<!-- Redefinition of the elements in the graphml-structure schema --> | |
<xs:redefine schemaLocation="graphml-structure.xsd"> | |
<xs:attributeGroup name="key.extra.attrib"> | |
<xs:annotation> | |
<xs:documentation> | |
Redefinition of file graphml-structure.xsd. | |
<p>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. | |
</p> | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attributeGroup ref="key.extra.attrib"/> | |
<xs:attributeGroup ref="key.attributes.attrib"/> | |
<xs:attribute name="yfiles.type" type="xs:string" use="optional"> | |
<xs:annotation> | |
<xs:documentation> | |
Custom yfiles specific attribute that allows to specify an additional data type. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:attributeGroup> | |
<xs:attributeGroup name="graph.extra.attrib"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attributeGroup ref="graph.extra.attrib"/> | |
<xs:attributeGroup ref="graph.parseinfo.attrib"/> | |
</xs:attributeGroup> | |
<!-- Definition of the different grouping types --> | |
<!-- The grouping type is stored as attribute at the node element --> | |
<xs:attributeGroup name="node.extra.attrib"> | |
<xs:annotation> | |
<xs:documentation> | |
Redefinition of file graphml-structure.xsd. | |
<p>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. | |
</p> | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attributeGroup ref="node.extra.attrib"/> | |
<xs:attributeGroup ref="node.parseinfo.attrib"/> | |
<xs:attribute name="yfiles.foldertype" type="yfiles.foldertype.type" use="optional"> | |
<xs:annotation> | |
<xs:documentation> | |
The foldertype for group/folder nodes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:attributeGroup> | |
<!-- Definition of the different node and edge types --> | |
<xs:complexType name="data-extension.type"> | |
<xs:annotation> | |
<xs:documentation> | |
Redefinition of file graphml-structure.xsd. | |
<p>Extends the type data-extension.type to allow specifically the content below (i.e. text only or | |
all defined edge and node relaizers, resource blocks or postprocessors) | |
</p> | |
</xs:documentation> | |
</xs:annotation> | |
<xs:complexContent mixed="true"> | |
<xs:extension base="data-extension.type"> | |
<xs:choice maxOccurs="1" minOccurs="0"> | |
<xs:element ref="y:ShapeNode"/> | |
<xs:element ref="y:ImageNode"/> | |
<xs:element ref="y:GroupNode"/> | |
<xs:element ref="y:GenericNode"/> | |
<xs:element ref="y:GenericGroupNode"/> | |
<xs:element ref="y:ProxyShapeNode"/> | |
<xs:element ref="y:ProxyAutoBoundsNode"/> | |
<xs:element ref="y:PolyLineEdge"/> | |
<xs:element ref="y:ArcEdge"/> | |
<xs:element ref="y:BezierEdge"/> | |
<xs:element ref="y:SplineEdge"/> | |
<xs:element ref="y:QuadCurveEdge"/> | |
<xs:element ref="y:GenericEdge"/> | |
<xs:element ref="y:Postprocessors"/> | |
<xs:element ref="y:Resources"/> | |
</xs:choice> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
</xs:redefine> | |
<!-- Type of Grouping --> | |
<xs:simpleType name="yfiles.foldertype.type"> | |
<xs:annotation> | |
<xs:documentation> | |
The valid folder types for a folder/group node. | |
<p>Valid values are | |
<ul> | |
<li> | |
<b>folder</b>: for folder nodes</li> | |
<li> | |
<b>group</b>: for group nodes</li> | |
<li> | |
<b>leaf</b>: for leaf nodes (this is the implied value)</li> | |
</ul> | |
</p> | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="folder"/> | |
<xs:enumeration value="group"/> | |
<xs:enumeration value="leaf"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<!-- Copied from graphml.xsd --> | |
<!--types as in graphml-attributes.xsd --> | |
<xs:simpleType name="key.name.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/(Dokumentation der Attributes Erweiterung; entsprechende Stelle.html)" | |
xml:lang="en"> | |
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) | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"/> | |
</xs:simpleType> | |
<xs:simpleType name="key.type.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/(Dokumentation der Attributes Erweiterung; entsprechende Stelle.html)" | |
xml:lang="en"> | |
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. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="boolean"/> | |
<xs:enumeration value="int"/> | |
<xs:enumeration value="long"/> | |
<xs:enumeration value="float"/> | |
<xs:enumeration value="double"/> | |
<xs:enumeration value="string"/> | |
<xs:enumeration value="complex"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:attributeGroup name="key.attributes.attrib"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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) | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="attr.name" type="key.name.type" use="optional"/> | |
<xs:attribute name="attr.type" type="key.type.type" use="optional"/> | |
</xs:attributeGroup> | |
<!--types as in graphml-parseinfo.xsd --> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
Simple type definitions for the new graph attributes. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:simpleType name="graph.order.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="free"/> | |
<xs:enumeration value="nodesfirst"/> | |
<xs:enumeration value="adjacencylist"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="graph.nodes.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:simpleType name="graph.edges.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:simpleType name="graph.maxindegree.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:simpleType name="graph.maxoutdegree.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:simpleType name="graph.nodeids.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="canonical"/> | |
<xs:enumeration value="free"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="graph.edgeids.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="canonical"/> | |
<xs:enumeration value="free"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:attributeGroup name="graph.parseinfo.attrib"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
Definition of the attribute group graph.parseinfo.attrib. | |
This group consists of the seven attributes: | |
<ul> | |
<li><code>parse.nodeids</code></li> (fixed to 'canonical' meaning that the id attribute | |
of <node> follows the pattern 'n[number]), | |
<li><code>parse.edgeids</code></li> (fixed to 'canonical' meaning that the id attribute | |
of <edge> follows the pattern 'e[number]), | |
<li><code>parse.order</code></li> (required; one of the values 'nodesfirst', | |
'adjacencylist' or 'free'), | |
<li><code>parse.nodes</code></li> (required; number of nodes in this graph), | |
<li><code>parse.edges</code></li> (required; number of edges in this graph), | |
<li><code>parse.maxindegree</code></li> (optional; maximal indegree of a node in this graph), | |
<li><code>parse.maxoutdegree</code></li> (optional; maximal outdegree of a node in this graph) | |
</ul> | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="parse.nodeids" type="graph.nodeids.type"/> | |
<xs:attribute name="parse.edgeids" type="graph.edgeids.type"/> | |
<xs:attribute name="parse.order" type="graph.order.type"/> | |
<xs:attribute name="parse.nodes" type="graph.nodes.type"/> | |
<xs:attribute name="parse.edges" type="graph.edges.type"/> | |
<xs:attribute name="parse.maxindegree" type="graph.maxindegree.type" use="optional"/> | |
<xs:attribute name="parse.maxoutdegree" type="graph.maxoutdegree.type" use="optional"/> | |
</xs:attributeGroup> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
Simple type definitions for the new node attributes. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:simpleType name="node.indegree.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:simpleType name="node.outdegree.type" final="#all"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:nonNegativeInteger"/> | |
</xs:simpleType> | |
<xs:attributeGroup name="node.parseinfo.attrib"> | |
<xs:annotation> | |
<xs:documentation | |
source="http://graphml.graphdrawing.org/" | |
xml:lang="en"> | |
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). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="parse.indegree" type="node.indegree.type" use="optional"/> | |
<xs:attribute name="parse.outdegree" type="node.outdegree.type" use="optional"/> | |
</xs:attributeGroup> | |
</xs:schema> |