HaXml-1.19: examples/gxl-1.0.dtd
<!-- GXL (1.0)
Document Type Definition
(April 25, 2002)
copyright by
Andy Schuerr
Real-Time Systems Lab
Darmstadt University of Technology
Merckstr. 25, D-64283 Darmstadt, Germany
andy.schuerr@es.tu-darmstadt.de
Susan Elliott Sim
School of Information and Computer Science
444 Computer Science Bldg.
University of California, Irvine
ses@ics.uci.edu
Ric Holt
Department of Computer Science
University of Waterloo
Waterloo N2L 3G1, Canada
holt@plg.uwaterloo.ca
Andreas Winter
Institute for Software Technology
University of Koblenz-Landau
Universitaetsstrasse 1, D-56070 Koblenz, Germany
winter@uni-koblenz.de
-->
<!-- Extensions -->
<!ENTITY % gxl-extension "">
<!ENTITY % graph-extension "">
<!ENTITY % node-extension "">
<!ENTITY % edge-extension "">
<!ENTITY % rel-extension "">
<!ENTITY % value-extension "">
<!ENTITY % relend-extension "">
<!ENTITY % gxl-attr-extension "">
<!ENTITY % graph-attr-extension "">
<!ENTITY % node-attr-extension "">
<!ENTITY % edge-attr-extension "">
<!ENTITY % rel-attr-extension "">
<!ENTITY % relend-attr-extension "">
<!-- Attribute values -->
<!ENTITY % val "
locator |
bool |
int |
float |
string |
enum |
seq |
set |
bag |
tup
%value-extension;">
<!-- gxl -->
<!ELEMENT gxl (graph* %gxl-extension;) >
<!ATTLIST gxl
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
%gxl-attr-extension;
>
<!-- type -->
<!ELEMENT type EMPTY>
<!ATTLIST type
xlink:type (simple) #FIXED "simple"
xlink:href CDATA #REQUIRED
>
<!-- graph -->
<!ELEMENT graph (type? , attr* , ( node | edge | rel )* %graph-extension;) >
<!ATTLIST graph
id ID #REQUIRED
role NMTOKEN #IMPLIED
edgeids (true | false) "false"
hypergraph (true | false) "false"
edgemode (directed | undirected | defaultdirected | defaultundirected) "directed"
%graph-attr-extension;
>
<!-- node -->
<!ELEMENT node (type? , attr*, graph* %node-extension;) >
<!ATTLIST node
id ID #REQUIRED
%node-attr-extension;
>
<!-- edge -->
<!ELEMENT edge (type?, attr*, graph* %edge-extension;) >
<!ATTLIST edge
id ID #IMPLIED
from IDREF #REQUIRED
to IDREF #REQUIRED
fromorder CDATA #IMPLIED
toorder CDATA #IMPLIED
isdirected (true | false) #IMPLIED
%edge-attr-extension;
>
<!-- rel -->
<!ELEMENT rel (type? , attr*, graph*, relend* %rel-extension;) >
<!ATTLIST rel
id ID #IMPLIED
isdirected (true | false) #IMPLIED
%rel-attr-extension;
>
<!-- relend -->
<!ELEMENT relend (attr* %relend-extension;) >
<!ATTLIST relend
target IDREF #REQUIRED
role NMTOKEN #IMPLIED
direction (in | out | none) #IMPLIED
startorder CDATA #IMPLIED
endorder CDATA #IMPLIED
%relend-attr-extension;
>
<!-- attr -->
<!ELEMENT attr (attr*, (%val;))>
<!ATTLIST attr
id ID #IMPLIED
name NMTOKEN #REQUIRED
kind NMTOKEN #IMPLIED
>
<!-- locator -->
<!ELEMENT locator EMPTY>
<!ATTLIST locator
xlink:type (simple) #FIXED "simple"
xlink:href CDATA #REQUIRED
>
<!-- atomic values -->
<!ELEMENT bool (#PCDATA)>
<!ELEMENT int (#PCDATA)>
<!ELEMENT float (#PCDATA)>
<!ELEMENT string (#PCDATA)>
<!-- enumeration value -->
<!ELEMENT enum (#PCDATA)>
<!-- composite values -->
<!ELEMENT seq (%val;)*>
<!ELEMENT set (%val;)*>
<!ELEMENT bag (%val;)*>
<!ELEMENT tup (%val;)*>