Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/IO/NML/GraphMLSchema1.0rc.xsd @ 3757

Last change on this file since 3757 was 2769, checked in by mkommend, 14 years ago

added unused files for netron (ticket #867)

File size: 33.4 KB
Line 
1<?xml version="1.0"?>
2<!--======================================================-->
3<!--      end of file: graphml-structure.xsd              -->
4<!--======================================================-->
5<xs:schema targetNamespace="http://graphml.graphdrawing.org/xmlns/1.0rc" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://graphml.graphdrawing.org/xmlns/1.0rc" xmlns:g="http://graphml.graphdrawing.org/xmlns/1.0rc" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink">
6  <xs:annotation>
7    <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
8     The schema corresponding to this document defines the structural
9     layer of the Graph Markup Language (GraphML).
10     Although a DTD is provided, this schema is, together with its extensions
11     http://graphml.graphdrawing.org/xmlns/1.0rc/graphml-attributes.xsd
12     and
13     http://graphml.graphdrawing.org/xmlns/1.0rc/graphml-parseinfo.xsd,
14     the only normative reference.
15    </xs:documentation>
16  </xs:annotation>
17  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd">
18    <xs:annotation>
19      <xs:documentation source="???" xml:lang="en">
20       Get access to the xlink attribute groups for the attributes
21       xlink:href and xlink:type of locator.type.
22    </xs:documentation>
23    </xs:annotation>
24  </xs:import>
25  <xs:annotation>
26    <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
27      The attribute groups &lt;element_name>.extra.attrib may be used
28      for adding user defined attributes to the elements
29      &lt;element_name>.
30      The attribute group common.extra.attrib may be used for adding
31      user defined attributes to all elements.
32    </xs:documentation>
33  </xs:annotation>
34  <xs:attributeGroup name="common.extra.attrib"/>
35  <xs:attributeGroup name="graphml.extra.attrib">
36    <xs:attributeGroup ref="common.extra.attrib"/>
37  </xs:attributeGroup>
38  <xs:attributeGroup name="data.extra.attrib">
39    <xs:attributeGroup ref="common.extra.attrib"/>
40  </xs:attributeGroup>
41  <xs:attributeGroup name="key.extra.attrib">
42    <xs:attributeGroup ref="common.extra.attrib"/>
43  </xs:attributeGroup>
44  <xs:attributeGroup name="default.extra.attrib">
45    <xs:attributeGroup ref="common.extra.attrib"/>
46  </xs:attributeGroup>
47  <xs:attributeGroup name="graph.extra.attrib">
48    <xs:attributeGroup ref="common.extra.attrib"/>
49  </xs:attributeGroup>
50  <xs:attributeGroup name="node.extra.attrib">
51    <xs:attributeGroup ref="common.extra.attrib"/>
52  </xs:attributeGroup>
53  <xs:attributeGroup name="edge.extra.attrib">
54    <xs:attributeGroup ref="common.extra.attrib"/>
55  </xs:attributeGroup>
56  <xs:attributeGroup name="port.extra.attrib">
57    <xs:attributeGroup ref="common.extra.attrib"/>
58  </xs:attributeGroup>
59  <xs:attributeGroup name="hyperedge.extra.attrib">
60    <xs:attributeGroup ref="common.extra.attrib"/>
61  </xs:attributeGroup>
62  <xs:attributeGroup name="endpoint.extra.attrib">
63    <xs:attributeGroup ref="common.extra.attrib"/>
64  </xs:attributeGroup>
65  <xs:attributeGroup name="locator.extra.attrib">
66    <xs:attributeGroup ref="common.extra.attrib"/>
67  </xs:attributeGroup>
68  <xs:annotation>
69    <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
70      Complex type definitions for the GraphML structural layer elements:
71      &lt;data>, &lt;default>, &lt;key>, &lt;graphml>, &lt;graph>,
72      &lt;node>, &lt;port>,
73      &lt;edge>, &lt;hyperedge>, &lt;endpoint> and &lt;locator>.
74      The names of the complex types are constructed corresponding
75      to the pattern element_name.type.
76      (The only remaining GraphML structural layer element
77      &lt;desc> is of simple type xs:string.)
78    </xs:documentation>
79  </xs:annotation>
80  <xs:complexType name="data-extension.type" mixed="true">
81    <xs:annotation>
82      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
83      Extension mechanism for the content of &lt;data> and &lt;default>.
84      The complex type data-extension.type is empty per default.
85      Users may redefine this type in order to add content to
86      the complex types data.type and default.type which are
87      extensions of data-extension.type.
88    </xs:documentation>
89    </xs:annotation>
90  </xs:complexType>
91  <xs:complexType name="data.type" final="#all" mixed="true">
92    <xs:annotation>
93      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
94      Complex type for the &lt;data> element.
95      data.type is mixed, that is, &lt;data> may contain #PCDATA.
96      Content type: extension of data-extension.type which is empty
97                    per default.
98    </xs:documentation>
99    </xs:annotation>
100    <xs:complexContent mixed="true">
101      <xs:extension base="data-extension.type">
102        <xs:attribute name="key" type="xs:NMTOKEN" use="required">
103          <xs:annotation>
104            <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">refers to the id attribute of a &lt;key>.
105          </xs:documentation>
106          </xs:annotation>
107        </xs:attribute>
108        <xs:attribute name="id" type="xs:NMTOKEN" use="optional">
109          <xs:annotation>
110            <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">identifies this &lt;data>.
111          </xs:documentation>
112          </xs:annotation>
113        </xs:attribute>
114        <xs:attributeGroup ref="data.extra.attrib">
115          <xs:annotation>
116            <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
117                 user defined extra attributes for &lt;data> elements
118          </xs:documentation>
119          </xs:annotation>
120        </xs:attributeGroup>
121      </xs:extension>
122    </xs:complexContent>
123  </xs:complexType>
124  <xs:complexType name="default.type" final="#all" mixed="true">
125    <xs:annotation>
126      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
127      Complex type for the &lt;default> element.
128      default.type is mixed, that is, data may contain #PCDATA.
129      Content type: extension of data-extension.type which is empty
130                    per default.
131    </xs:documentation>
132    </xs:annotation>
133    <xs:complexContent mixed="true">
134      <xs:extension base="data-extension.type">
135        <xs:attributeGroup ref="default.extra.attrib">
136          <xs:annotation>
137            <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
138                 user defined extra attributes for &lt;default> elements
139          </xs:documentation>
140          </xs:annotation>
141        </xs:attributeGroup>
142      </xs:extension>
143    </xs:complexContent>
144  </xs:complexType>
145  <xs:simpleType name="key.for.type" final="#all">
146    <xs:annotation>
147      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
148      Simple type for the for attribute of &lt;key>.
149      key.for.type is a restriction of xs:NMTOKEN
150      Allowed values: all, graph, node, edge, hyperedge, port and endpoint.
151    </xs:documentation>
152    </xs:annotation>
153    <xs:restriction base="xs:NMTOKEN">
154      <xs:enumeration value="all"/>
155      <xs:enumeration value="graph"/>
156      <xs:enumeration value="node"/>
157      <xs:enumeration value="edge"/>
158      <xs:enumeration value="hyperedge"/>
159      <xs:enumeration value="port"/>
160      <xs:enumeration value="endpoint"/>
161    </xs:restriction>
162  </xs:simpleType>
163  <xs:complexType name="key.type" final="#all">
164    <xs:annotation>
165      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
166      Complex type for the &lt;key> element.
167    </xs:documentation>
168    </xs:annotation>
169    <xs:sequence>
170      <xs:element ref="desc" minOccurs="0"/>
171      <xs:element ref="default" minOccurs="0"/>
172    </xs:sequence>
173    <xs:attribute name="id" type="xs:NMTOKEN" use="required">
174      <xs:annotation>
175        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">identifies this &lt;key>.
176          </xs:documentation>
177      </xs:annotation>
178    </xs:attribute>
179    <xs:attribute name="for" type="key.for.type" default="all">
180      <xs:annotation>
181        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
182                 describes the domain of definition for
183                 the corresponding graph attribute.
184          </xs:documentation>
185      </xs:annotation>
186    </xs:attribute>
187    <xs:attributeGroup ref="key.extra.attrib">
188      <xs:annotation>
189        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
190                  user defined extra attributes for &lt;key> elements.
191          </xs:documentation>
192      </xs:annotation>
193    </xs:attributeGroup>
194  </xs:complexType>
195  <xs:complexType name="graphml.type" final="#all">
196    <xs:annotation>
197      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
198      Complex type for the &lt;graphml> element.
199    </xs:documentation>
200    </xs:annotation>
201    <xs:sequence>
202      <xs:element ref="desc" minOccurs="0"/>
203      <xs:element ref="key" minOccurs="0" maxOccurs="unbounded"/>
204      <xs:sequence>
205        <xs:choice minOccurs="0" maxOccurs="unbounded">
206          <xs:element ref="graph"/>
207          <xs:element ref="data"/>
208        </xs:choice>
209      </xs:sequence>
210    </xs:sequence>
211    <xs:attributeGroup ref="graphml.extra.attrib">
212      <xs:annotation>
213        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
214                user defined extra attributes for &lt;graphml> elements.
215          </xs:documentation>
216      </xs:annotation>
217    </xs:attributeGroup>
218  </xs:complexType>
219  <xs:simpleType name="graph.edgedefault.type" final="#all">
220    <xs:annotation>
221      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
222      Simple type for the edgedefault attribute of &lt;graph>.
223      graph.edgedefault.type is a restriction of xs:NMTOKEN
224      Allowed values: directed, undirected.
225    </xs:documentation>
226    </xs:annotation>
227    <xs:restriction base="xs:NMTOKEN">
228      <xs:enumeration value="directed"/>
229      <xs:enumeration value="undirected"/>
230    </xs:restriction>
231  </xs:simpleType>
232  <xs:complexType name="graph.type" final="#all">
233    <xs:annotation>
234      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
235      Complex type for the &lt;graph> element.
236    </xs:documentation>
237    </xs:annotation>
238    <xs:sequence>
239      <xs:element ref="desc" minOccurs="0"/>
240      <xs:choice>
241        <xs:sequence>
242          <xs:choice minOccurs="0" maxOccurs="unbounded">
243            <xs:element ref="data"/>
244            <xs:element ref="node"/>
245            <xs:element ref="edge"/>
246            <xs:element ref="hyperedge"/>
247          </xs:choice>
248        </xs:sequence>
249        <xs:element ref="locator"/>
250      </xs:choice>
251    </xs:sequence>
252    <xs:attributeGroup ref="graph.extra.attrib">
253      <xs:annotation>
254        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
255                user defined extra attributes for &lt;graph> elements.
256          </xs:documentation>
257      </xs:annotation>
258    </xs:attributeGroup>
259    <xs:attribute name="id" type="xs:NMTOKEN">
260      <xs:annotation>
261        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
262                  identifies this graph .
263          </xs:documentation>
264      </xs:annotation>
265    </xs:attribute>
266    <xs:attribute name="edgedefault" type="graph.edgedefault.type" use="required">
267      <xs:annotation>
268        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
269                        describes whether edges of this graph are considered
270                        as directed or undirected per default (unless
271                        specified by the attribute directed of &lt;edge>).
272          </xs:documentation>
273      </xs:annotation>
274    </xs:attribute>
275  </xs:complexType>
276  <xs:complexType name="node.type" final="#all">
277    <xs:annotation>
278      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
279      Complex type for the &lt;node> element.
280    </xs:documentation>
281    </xs:annotation>
282    <xs:sequence>
283      <xs:element ref="desc" minOccurs="0"/>
284      <xs:choice>
285        <xs:sequence>
286          <xs:choice minOccurs="0" maxOccurs="unbounded">
287            <xs:element ref="data"/>
288            <xs:element ref="port"/>
289          </xs:choice>
290          <xs:element ref="graph" minOccurs="0"/>
291        </xs:sequence>
292        <xs:element ref="locator"/>
293      </xs:choice>
294    </xs:sequence>
295    <xs:attributeGroup ref="node.extra.attrib">
296      <xs:annotation>
297        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
298                user defined extra attributes for &lt;node elements.
299          </xs:documentation>
300      </xs:annotation>
301    </xs:attributeGroup>
302    <xs:attribute name="id" type="xs:NMTOKEN" use="required">
303      <xs:annotation>
304        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
305                 identifies this node.
306          </xs:documentation>
307      </xs:annotation>
308    </xs:attribute>
309  </xs:complexType>
310  <xs:complexType name="port.type" final="#all">
311    <xs:annotation>
312      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
313      Complex type for the &lt;port> element.
314    </xs:documentation>
315    </xs:annotation>
316    <xs:sequence>
317      <xs:element ref="desc" minOccurs="0"/>
318      <xs:choice minOccurs="0" maxOccurs="unbounded">
319        <xs:element ref="data"/>
320        <xs:element ref="port"/>
321      </xs:choice>
322    </xs:sequence>
323    <xs:attributeGroup ref="port.extra.attrib">
324      <xs:annotation>
325        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
326                 user defined extra attributes for &lt;port> elements.
327          </xs:documentation>
328      </xs:annotation>
329    </xs:attributeGroup>
330    <xs:attribute name="name" type="xs:NMTOKEN" use="required">
331      <xs:annotation>
332        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
333                   identifies this port, within the node it is contained in.
334          </xs:documentation>
335      </xs:annotation>
336    </xs:attribute>
337  </xs:complexType>
338  <xs:complexType name="edge.type" final="#all">
339    <xs:annotation>
340      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
341      Complex type for the &lt;edge> element.
342    </xs:documentation>
343    </xs:annotation>
344    <xs:sequence>
345      <xs:element ref="desc" minOccurs="0"/>
346      <xs:element ref="data" minOccurs="0" maxOccurs="unbounded"/>
347      <xs:element ref="graph" minOccurs="0"/>
348    </xs:sequence>
349    <xs:attributeGroup ref="edge.extra.attrib">
350      <xs:annotation>
351        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
352                 user defined extra attributes for &lt;edge> elements.
353          </xs:documentation>
354      </xs:annotation>
355    </xs:attributeGroup>
356    <xs:attribute name="id" type="xs:NMTOKEN">
357      <xs:annotation>
358        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
359                identifies this edge .
360          </xs:documentation>
361      </xs:annotation>
362    </xs:attribute>
363    <xs:attribute name="directed" type="xs:boolean">
364      <xs:annotation>
365        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
366                overwrites the edgedefault attribute of &lt;graph> .
367          </xs:documentation>
368      </xs:annotation>
369    </xs:attribute>
370    <xs:attribute name="source" type="xs:NMTOKEN" use="required">
371      <xs:annotation>
372        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
373                  points to the id attribute of the source &lt;node>.
374          </xs:documentation>
375      </xs:annotation>
376    </xs:attribute>
377    <xs:attribute name="target" type="xs:NMTOKEN" use="required">
378      <xs:annotation>
379        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
380                   points to the id attribute of the target &lt;node>.
381          </xs:documentation>
382      </xs:annotation>
383    </xs:attribute>
384    <xs:attribute name="sourceport" type="xs:NMTOKEN">
385      <xs:annotation>
386        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
387                 points to the name attribute of the source &lt;port>.
388          </xs:documentation>
389      </xs:annotation>
390    </xs:attribute>
391    <xs:attribute name="targetport" type="xs:NMTOKEN">
392      <xs:annotation>
393        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
394                    points to the name attribute of the target &lt;port>.
395          </xs:documentation>
396      </xs:annotation>
397    </xs:attribute>
398  </xs:complexType>
399  <xs:complexType name="hyperedge.type" final="#all">
400    <xs:annotation>
401      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
402      Complex type for the &lt;hyperedge> element.
403    </xs:documentation>
404    </xs:annotation>
405    <xs:sequence>
406      <xs:element ref="desc" minOccurs="0"/>
407      <xs:choice minOccurs="0" maxOccurs="unbounded">
408        <xs:element ref="data"/>
409        <xs:element ref="endpoint"/>
410      </xs:choice>
411      <xs:element ref="graph" minOccurs="0"/>
412    </xs:sequence>
413    <xs:attributeGroup ref="hyperedge.extra.attrib">
414      <xs:annotation>
415        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
416               user defined extra attributes for &lt;hyperedge> elements.
417          </xs:documentation>
418      </xs:annotation>
419    </xs:attributeGroup>
420    <xs:attribute name="id" type="xs:NMTOKEN">
421      <xs:annotation>
422        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
423                  identifies this &lt;hyperedge> .
424          </xs:documentation>
425      </xs:annotation>
426    </xs:attribute>
427  </xs:complexType>
428  <xs:simpleType name="endpoint.type.type" final="#all">
429    <xs:annotation>
430      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
431      Simple type for the type attribute of &lt;endpoint>.
432      endpoint.type.type is a restriction of xs:NMTOKEN
433      Allowed values: in, out, undir.
434    </xs:documentation>
435    </xs:annotation>
436    <xs:restriction base="xs:NMTOKEN">
437      <xs:enumeration value="in"/>
438      <xs:enumeration value="out"/>
439      <xs:enumeration value="undir"/>
440    </xs:restriction>
441  </xs:simpleType>
442  <xs:complexType name="endpoint.type" final="#all">
443    <xs:annotation>
444      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
445      Complex type for the &lt;endpoint> element.
446    </xs:documentation>
447    </xs:annotation>
448    <xs:sequence>
449      <xs:element ref="desc" minOccurs="0"/>
450    </xs:sequence>
451    <xs:attributeGroup ref="endpoint.extra.attrib">
452      <xs:annotation>
453        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
454                 user defined extra attributes for &lt;endpoint> elements.
455          </xs:documentation>
456      </xs:annotation>
457    </xs:attributeGroup>
458    <xs:attribute name="id" type="xs:NMTOKEN">
459      <xs:annotation>
460        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
461                  identifies this &lt;endpoint> .
462          </xs:documentation>
463      </xs:annotation>
464    </xs:attribute>
465    <xs:attribute name="port" type="xs:NMTOKEN">
466      <xs:annotation>
467        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
468                points to the name of the port, to which this endpoint is
469                 connected .
470          </xs:documentation>
471      </xs:annotation>
472    </xs:attribute>
473    <xs:attribute name="node" type="xs:NMTOKEN" use="required">
474      <xs:annotation>
475        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
476            points to the id of the node, to which this endpoint is connected.
477          </xs:documentation>
478      </xs:annotation>
479    </xs:attribute>
480    <xs:attribute name="type" type="endpoint.type.type" default="undir">
481      <xs:annotation>
482        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
483               defines the direction on this endpoint (undirected per default).
484          </xs:documentation>
485      </xs:annotation>
486    </xs:attribute>
487  </xs:complexType>
488  <xs:complexType name="locator.type" final="#all">
489    <xs:annotation>
490      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
491      Complex type for the &lt;locator> element.
492      Content type: (empty)
493    </xs:documentation>
494    </xs:annotation>
495    <xs:attributeGroup ref="locator.extra.attrib">
496      <xs:annotation>
497        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
498               user defined extra attributes for &lt;locator> elements.
499          </xs:documentation>
500      </xs:annotation>
501    </xs:attributeGroup>
502    <xs:attribute ref="xlink:href" use="required">
503      <xs:annotation>
504        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
505                points to the resource of this locator.
506          </xs:documentation>
507      </xs:annotation>
508    </xs:attribute>
509    <xs:attribute ref="xlink:type" fixed="simple">
510      <xs:annotation>
511        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
512               type of the hyperlink (fixed as simple).
513          </xs:documentation>
514      </xs:annotation>
515    </xs:attribute>
516  </xs:complexType>
517  <!--========================================================-->
518  <xs:element name="desc" type="xs:string" block="#all">
519    <xs:annotation>
520      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
521           Description: Provides human-readable descriptions for the GraphML
522                        element containing this &lt;desc> as its first child.
523           Occurence:   &lt;key>, &lt;graphml>, &lt;graph>,
524                        &lt;node>, &lt;port>, &lt;edge>, &lt;hyperedge>, and
525                        &lt;endpoint>.
526      </xs:documentation>
527    </xs:annotation>
528  </xs:element>
529  <xs:element name="locator" type="locator.type" block="#all">
530    <xs:annotation>
531      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
532           Description: Graphs and nodes are declared by the elements
533                        &lt;graph> and &lt;node>, respectively. The optional
534                        &lt;locator>-child of these elements point to
535                        their definition. (If there is no &lt;locator>-child
536                        the graphs/nodes are defined by their content).
537           Occurence:   &lt;graph>, and &lt;node>.
538      </xs:documentation>
539    </xs:annotation>
540  </xs:element>
541  <xs:element name="data" type="data.type" block="#all">
542    <xs:annotation>
543      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
544           Description: In GraphML there may be data-functions attached
545                        to graphs, nodes, ports, edges, hyperedges and
546                        endpoint and to the whole collection of
547                        graphs described by the content of &lt;graphml>.
548                        These functions are declared by &lt;key> elements
549                        (children of &lt;graphml>) and defined by &lt;data>
550                        elements.
551           Occurence: &lt;graphml>, &lt;graph>, &lt;node>, &lt;port>,
552                      &lt;edge>, &lt;hyperedge>, and &lt;endpoint>.
553      </xs:documentation>
554    </xs:annotation>
555    <xs:unique name="data_data_key_unique">
556      <xs:annotation>
557        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">       
558        Ensures: uniqueness of the key attributes of &lt;data> children
559                 of this &lt;data> element.
560      </xs:documentation>
561      </xs:annotation>
562      <xs:selector xpath="./g:data"/>
563      <xs:field xpath="@key"/>
564    </xs:unique>
565  </xs:element>
566  <xs:element name="key" type="key.type" block="#all">
567    <xs:annotation>
568      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
569           Description: In GraphML there may be data-functions attached
570                        to graphs, nodes, ports, edges, hyperedges and
571                        endpoint and to the whole collection of
572                        graphs described by the content of &lt;graphml>.
573                        These functions are declared by &lt;key> elements
574                        (children of &lt;graphml>) and defined by &lt;data>
575                        elements.
576           Occurence: &lt;graphml>.
577      </xs:documentation>
578    </xs:annotation>
579  </xs:element>
580  <xs:element name="default" type="default.type" block="#all">
581    <xs:annotation>
582      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
583           Description: In GraphML there may be data-functions attached
584                        to graphs, nodes, ports, edges, hyperedges and
585                        endpoint and to the whole collection of
586                        graphs described by the content of &lt;graphml>.
587                        These functions are declared by &lt;key> elements
588                        (children of &lt;graphml>) and defined by &lt;data>
589                        elements.
590                        The (optional) &lt;default> child of &lt;key> gives
591                        the default value for the corresponding function.
592           Occurence: &lt;key>.
593      </xs:documentation>
594    </xs:annotation>
595  </xs:element>
596  <xs:element name="graphml" type="graphml.type" block="#all">
597    <xs:annotation>
598      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
599           Description: &lt;graphml> is the root element of each GraphML
600                      document.
601           Occurence: root.
602      </xs:documentation>
603    </xs:annotation>
604    <xs:unique name="graphml_data_key_unique">
605      <xs:annotation>
606        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
607        Ensures: uniqueness of the key attributes of &lt;data> children
608                 of this &lt;graphml> element.
609      </xs:documentation>
610      </xs:annotation>
611      <xs:selector xpath="./g:data"/>
612      <xs:field xpath="@key"/>
613    </xs:unique>
614    <xs:key name="key_id_key">
615      <xs:annotation>
616        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
617        Ensures: existence and uniqueness of the id attributes of
618                 each &lt;key> element in this document.
619      </xs:documentation>
620      </xs:annotation>
621      <xs:selector xpath=".//g:key"/>
622      <xs:field xpath="@id"/>
623    </xs:key>
624    <xs:unique name="graph_id_unique">
625      <xs:annotation>
626        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
627        Ensures: uniqueness of the id attributes of
628                 each &lt;graph> element in this document.
629      </xs:documentation>
630      </xs:annotation>
631      <xs:selector xpath=".//g:graph"/>
632      <xs:field xpath="@id"/>
633    </xs:unique>
634    <xs:keyref name="data_key_ref" refer="key_id_key">
635      <xs:annotation>
636        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
637        Ensures: for the key attribute of each &lt;data> in this document,
638                 the existence of an id attribute of
639                 &lt;key> which matches the value of it.
640      </xs:documentation>
641      </xs:annotation>
642      <xs:selector xpath=".//g:data"/>
643      <xs:field xpath="@key"/>
644    </xs:keyref>
645  </xs:element>
646  <xs:element name="graph" type="graph.type" block="#all">
647    <xs:annotation>
648      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
649          Description: Describes one graph in this document.
650          Occurence: &lt;graphml>, &lt;node>, &lt;edge>, &lt;hyperedge>.
651      </xs:documentation>
652    </xs:annotation>
653    <xs:unique name="graph_data_key_unique">
654      <xs:annotation>
655        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
656        Ensures: uniqueness of the key attributes of &lt;data> children
657                 of this &lt;graph> element.
658      </xs:documentation>
659      </xs:annotation>
660      <xs:selector xpath="./g:data"/>
661      <xs:field xpath="@key"/>
662    </xs:unique>
663    <xs:key name="node_id_key">
664      <xs:annotation>
665        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
666        Ensures: existence and uniqueness of the id attributes of
667                 each &lt;node> element in this graph.
668      </xs:documentation>
669      </xs:annotation>
670      <xs:selector xpath=".//g:node"/>
671      <xs:field xpath="@id"/>
672    </xs:key>
673    <xs:unique name="edge_id_unique">
674      <xs:annotation>
675        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
676        Ensures: uniqueness of the id attributes of
677                 each &lt;edge> element in this graph.
678      </xs:documentation>
679      </xs:annotation>
680      <xs:selector xpath=".//g:edge"/>
681      <xs:field xpath="@id"/>
682    </xs:unique>
683    <xs:unique name="hyperedge_id_unique">
684      <xs:annotation>
685        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
686        Ensures: uniqueness of the id attributes of
687                 each &lt;hyperedge> element in this graph.
688      </xs:documentation>
689      </xs:annotation>
690      <xs:selector xpath=".//g:hyperedge"/>
691      <xs:field xpath="@id"/>
692    </xs:unique>
693    <xs:unique name="endpoint_id_unique">
694      <xs:annotation>
695        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
696        Ensures: uniqueness of the id attributes of
697                 each &lt;endpoint> element in this graph.
698      </xs:documentation>
699      </xs:annotation>
700      <xs:selector xpath=".//g:endpoint"/>
701      <xs:field xpath="@id"/>
702    </xs:unique>
703    <xs:keyref name="edge_source_ref" refer="node_id_key">
704      <xs:annotation>
705        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
706        Ensures: for the source attribute of each &lt;edge> in this graph,
707                 the existence of an id attribute of
708                 &lt;node> which matches the value of it.
709      </xs:documentation>
710      </xs:annotation>
711      <xs:selector xpath=".//g:edge"/>
712      <xs:field xpath="@source"/>
713    </xs:keyref>
714    <xs:keyref name="edge_target_ref" refer="node_id_key">
715      <xs:annotation>
716        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
717        Ensures: for the target attribute of each &lt;edge> in this graph,
718                 the existence of an id attribute of
719                 &lt;node> which matches the value of it.
720      </xs:documentation>
721      </xs:annotation>
722      <xs:selector xpath=".//g:edge"/>
723      <xs:field xpath="@target"/>
724    </xs:keyref>
725    <xs:keyref name="endpoint_node_ref" refer="node_id_key">
726      <xs:annotation>
727        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
728        Ensures: for the node attribute of each &lt;endpoint> in this graph,
729                 the existence of an id attribute of
730                 &lt;node> which matches the value of it.
731      </xs:documentation>
732      </xs:annotation>
733      <xs:selector xpath=".//g:endpoint"/>
734      <xs:field xpath="@node"/>
735    </xs:keyref>
736  </xs:element>
737  <xs:element name="node" type="node.type" block="#all">
738    <xs:annotation>
739      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
740           Description: Describes one node in the &lt;graph>
741                        containing this &lt;node>.
742           Occurence: &lt;graph>.
743      </xs:documentation>
744    </xs:annotation>
745    <xs:key name="port_name_key">
746      <xs:annotation>
747        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
748        Ensures: existence and uniqueness of the name attributes of
749                 each &lt;port> element within this &lt;node>.
750      </xs:documentation>
751      </xs:annotation>
752      <xs:selector xpath=".//g:port"/>
753      <xs:field xpath="@name"/>
754    </xs:key>
755    <xs:unique name="node_data_key_unique">
756      <xs:annotation>
757        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
758        Ensures: uniqueness of the key attributes of &lt;data> children
759                 of this &lt;node> element.
760      </xs:documentation>
761      </xs:annotation>
762      <xs:selector xpath="./g:data"/>
763      <xs:field xpath="@key"/>
764    </xs:unique>
765  </xs:element>
766  <xs:element name="port" type="port.type" block="#all">
767    <xs:annotation>
768      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
769           Description: Nodes may be structured by ports; thus edges
770                        are not only attached to a node but to a certain
771                        port in this node.
772           Occurence: &lt;node>, &lt;port>.
773      </xs:documentation>
774    </xs:annotation>
775    <xs:unique name="port_data_key_unique">
776      <xs:annotation>
777        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
778        Ensures: uniqueness of the key attributes of &lt;data> children
779                 of this &lt;port> element.
780      </xs:documentation>
781      </xs:annotation>
782      <xs:selector xpath="./g:data"/>
783      <xs:field xpath="@key"/>
784    </xs:unique>
785  </xs:element>
786  <xs:element name="edge" type="edge.type" block="#all">
787    <xs:annotation>
788      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
789           Description: Describes an edge in the &lt;graph> which contains this
790                        &lt;edge>.
791           Occurence: &lt;graph>.
792      </xs:documentation>
793    </xs:annotation>
794    <xs:unique name="edge_data_key_unique">
795      <xs:annotation>
796        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
797        Ensures: uniqueness of the key attributes of &lt;data> children
798                 of this &lt;edge> element.
799      </xs:documentation>
800      </xs:annotation>
801      <xs:selector xpath="./g:data"/>
802      <xs:field xpath="@key"/>
803    </xs:unique>
804  </xs:element>
805  <xs:element name="hyperedge" type="hyperedge.type" block="#all">
806    <xs:annotation>
807      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
808           Description: While edges describe relations between two nodes,
809                        a hyperedge describes a relation between an arbitrary
810                        number of nodes.
811           Occurence: &lt;graph>.
812      </xs:documentation>
813    </xs:annotation>
814    <xs:unique name="hyperedge_data_key_unique">
815      <xs:annotation>
816        <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
817        Ensures: uniqueness of the key attributes of &lt;data> children
818                 of this &lt;hyperedge> element.
819      </xs:documentation>
820      </xs:annotation>
821      <xs:selector xpath="./g:data"/>
822      <xs:field xpath="@key"/>
823    </xs:unique>
824  </xs:element>
825  <xs:element name="endpoint" type="endpoint.type" block="#all">
826    <xs:annotation>
827      <xs:documentation source="http://graphml.graphdrawing.org/" xml:lang="en">
828           Description: The list of &lt;endpoints> within a hyperedge
829                        points to the nodes contained in this hyperedge.
830           Occurence: &lt;hyperedge>.
831      </xs:documentation>
832    </xs:annotation>
833  </xs:element>
834</xs:schema>
Note: See TracBrowser for help on using the repository browser.