| <?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> |