|  | <?xml version="1.0"?> | 
|  |  | 
|  | <xs:schema | 
|  | targetNamespace="http://graphml.graphdrawing.org/xmlns/graphml" | 
|  |  | 
|  | xmlns="http://graphml.graphdrawing.org/xmlns/graphml" | 
|  | xmlns:xs="http://www.w3.org/2001/XMLSchema" | 
|  |  | 
|  | elementFormDefault="qualified" | 
|  | attributeFormDefault="unqualified" | 
|  | > | 
|  |  | 
|  | <xs:annotation> | 
|  | <xs:documentation | 
|  | source="http://graphml.graphdrawing.org/" | 
|  | xml:lang="en"> | 
|  | This document defines the GraphML language including GraphML attributes and GraphML parseinfo. | 
|  | </xs:documentation> | 
|  | </xs:annotation> | 
|  | <xs:redefine schemaLocation="graphml-structure.xsd"> | 
|  | <xs:attributeGroup name="key.extra.attrib"> | 
|  | <xs:annotation> | 
|  | <xs:documentation | 
|  | source="http://graphml.graphdrawing.org/" | 
|  | xml:lang="en"> | 
|  | 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. | 
|  | </xs:documentation> | 
|  | </xs:annotation> | 
|  | <xs:attributeGroup ref="key.extra.attrib"/> | 
|  | <xs:attributeGroup ref="key.attributes.attrib"/> | 
|  | </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> | 
|  |  | 
|  |  | 
|  | <xs:attributeGroup name="node.extra.attrib"> | 
|  | <xs:annotation> | 
|  | <xs:documentation | 
|  | source="http://graphml.graphdrawing.org/" | 
|  | xml:lang="en"> | 
|  | 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. | 
|  | </xs:documentation> | 
|  | </xs:annotation> | 
|  | <xs:attributeGroup ref="node.extra.attrib"/> | 
|  | <xs:attributeGroup ref="node.parseinfo.attrib"/> | 
|  | </xs:attributeGroup> | 
|  |  | 
|  | </xs:redefine> | 
|  |  | 
|  |  | 
|  | <!--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> |