1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
|
<!-- Graph Specification dtd -->
<!-- Centrum voor Wiskunde en Informatica (CWI) -->
<!--
Copyright Stichting Mathematisch Centrum 2000
Permission to use and distribute this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice, author statement and this permission,
warranties and liability notice appear in all copies of this software
and related documentation.
Warranties
Stichting Mathematisch Centrum makes no warranties, express or implied, with
regard to this software. In particular, but without limitation, SMC makes
no warranty of fitness for a particular use, no warranty of freedom from
infringement of any patent or copyright, nor any warranty as to accuracy.
Accordingly, SMC assumes no obligation to furnish assistance of any kind
whatsoever or to furnish additional information or documentation.
Liability
In no event shall Stichting Mathematisch Centrum be liable for any damages
arising out of or in connection with the use or performance of this
software.
Amsterdam, 21 June, 2000
Version 1.1
-->
<!-- These entities are just to make the description simpler -->
<!ENTITY % common-elements "label|data|dataref|properties">
<!-- These entities are the basis of the user's extension mechanism -->
<!ENTITY % rootExtensions "">
<!ENTITY % nodeExtensions "">
<!ENTITY % edgeExtensions "">
<!ENTITY % graphExtensions "">
<!ENTITY % editExtensions "">
<!ENTITY % admissibleProperties "">
<!ENTITY % admissibleGraphProperties "">
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- A file consists of a graph definition and, optionally, -->
<!-- addinitional definitions and edit nodes -->
<!-- The real 'content' might be preceeded by optional data -->
<!ELEMENT GraphXML ((%common-elements;
%rootExtensions;
|style)*,graph*,(edit|edit-bundle)*)>
<!--
Note that, according to the official W3C specification, the definition
of the xlink namespace on the root level should be enough for the whole
document (children should inherit namespaces). However, some xml processors
(like IE5.0) does not know that feature yet, so the same attribute
specification is repeated for all children nodes which use it.
-->
<!ATTLIST GraphXML
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
>
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- The definition part -->
<!-- ========================================================================= -->
<!-- A graph consists of an optional label, references to icons, URL-s to -->
<!-- external data, locally stored data and, finally, nodes and edges -->
<!ELEMENT graph ((%common-elements;
%graphExtensions;
|style|icon|size)*,(node|edge)*)>
<!ATTLIST graph
vendor CDATA #IMPLIED
version CDATA #IMPLIED
id ID #IMPLIED
class CDATA #IMPLIED
preferredlayout CDATA #IMPLIED
>
<!-- An icon to representing a full graph -->
<!ELEMENT icon EMPTY>
<!ATTLIST icon
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
xlink:type CDATA #FIXED "simple"
xlink:role CDATA #FIXED "Icon image for the full graph"
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "parsed"
xlink:actuate (user|auto) #FIXED "auto"
xlink:href CDATA #REQUIRED
>
<!-- ========================================================================= -->
<!-- Editing of graphs -->
<!-- ========================================================================= -->
<!ELEMENT edit ((%common-elements;
%editExtensions;)*,
(node|edge)*)>
<!ATTLIST edit
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
action (replace|remove) #REQUIRED
xlink:type CDATA #FIXED "simple"
xlink:role CDATA #FIXED "Reference to graph"
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "new"
xlink:actuate (user|auto) #FIXED "user"
xlink:href CDATA #IMPLIED
class CDATA #IMPLIED
>
<!ELEMENT edit-bundle (edit*)>
<!ATTLIST edit-bundle
class CDATA #IMPLIED
>
<!-- ========================================================================= -->
<!-- Nodes and edges -->
<!-- ========================================================================= -->
<!-- A node may include element information; it has a unique identifier -->
<!ELEMENT node (%common-elements;
%nodeExtensions;
|style|position|size|transform|subgraph-style)*>
<!ATTLIST node
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
name CDATA #REQUIRED
isMetanode (true|false) "false"
xlink:type CDATA #FIXED "simple"
xlink:role CDATA #FIXED "Reference to graph"
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "new"
xlink:actuate (user|auto) #FIXED "user"
xlink:href CDATA #IMPLIED
class CDATA #IMPLIED
>
<!-- An edge may include element information; it may have an identifier, and -->
<!-- it has to give its source and target -->
<!ELEMENT edge (%common-elements;
%edgeExtensions;
|style|path)*>
<!ATTLIST edge
name CDATA #IMPLIED
source CDATA #REQUIRED
target CDATA #REQUIRED
class CDATA #IMPLIED
isDirected (true|false) #IMPLIED
>
<!-- ========================================================================= -->
<!-- Properties are placeholders for key-value pairs -->
<!ELEMENT properties EMPTY>
<!ATTLIST properties
class CDATA #IMPLIED
%admissibleProperties;
>
<!-- Graph-specific-properties are placeholders for key-value pairs, -->
<!-- within the context of the current (innermost nested) graph -->
<!ELEMENT graph-specific-properties EMPTY>
<!ATTLIST graph-specific-properties
class CDATA #IMPLIED
%admissibleGraphProperties;
>
<!ELEMENT label (#PCDATA)>
<!ATTLIST label
class CDATA #IMPLIED
>
<!ELEMENT data (#PCDATA)>
<!ATTLIST data
class CDATA #IMPLIED
>
<!ELEMENT dataref (ref*)>
<!ATTLIST dataref
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
xlink:type CDATA #FIXED "extended"
xlink:role CDATA #FIXED "Reference to external application data"
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "new"
xlink:actuate (user|auto) #FIXED "user"
class CDATA #IMPLIED
>
<!-- links are like the html urls -->
<!ELEMENT ref EMPTY>
<!ATTLIST ref
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
xlink:type CDATA #FIXED "locator"
xlink:role CDATA #IMPLIED
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "new"
xlink:actuate (user|auto) #FIXED "user"
xlink:href CDATA #REQUIRED
class CDATA #IMPLIED
>
<!-- position of a node -->
<!ELEMENT position EMPTY>
<!ATTLIST position
x CDATA "0.0"
y CDATA "0.0"
z CDATA "0.0"
class CDATA #IMPLIED
>
<!-- size of a node or a graph -->
<!ELEMENT size EMPTY>
<!ATTLIST size
width CDATA #REQUIRED
height CDATA #REQUIRED
depth CDATA "0.0"
class CDATA #IMPLIED
>
<!-- the path of an edge is a sequence of positions -->
<!ELEMENT path (position)*>
<!ATTLIST path
type (polyline|spline|arc) "polyline"
class CDATA #IMPLIED
>
<!ELEMENT transform EMPTY>
<!ATTLIST transform
matrix CDATA "1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0"
class CDATA #IMPLIED
>
<!-- ========================================================================= -->
<!--
In all specifications, colour can be:
name: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow
#rrggbb
#rrggbbaa
-->
<!ELEMENT style (line|fill|implementation)*>
<!ELEMENT subgraph-style (line|fill|implementation)*>
<!ELEMENT line EMPTY>
<!-- linestyle can be: none, solid, dashed, dash-dotted, dotted, or #bbbb -->
<!ATTLIST line
tag (edge|node) "edge"
class CDATA #IMPLIED
color CDATA #IMPLIED
colour CDATA #IMPLIED
colour_start CDATA #IMPLIED
colour_end CDATA #IMPLIED
color_start CDATA #IMPLIED
color_end CDATA #IMPLIED
linestyle CDATA #IMPLIED
linewidth CDATA #IMPLIED
>
<!ELEMENT fill EMPTY>
<!ATTLIST fill
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
tag (edge|node) "node"
class CDATA #IMPLIED
color CDATA #IMPLIED
colour CDATA #IMPLIED
fillstyle (solid|none|background) #IMPLIED
xlink:type CDATA #FIXED "simple"
xlink:role CDATA #FIXED "Fill image or pattern"
xlink:title CDATA #IMPLIED
xlink:show (new|parsed|replace) #FIXED "parsed"
xlink:actuate (user|auto) #FIXED "user"
xlink:href CDATA #IMPLIED
imagefill (resize|duplicate|none) #IMPLIED
>
<!ELEMENT implementation EMPTY>
<!ATTLIST implementation
tag (edge|node) #REQUIRED
class CDATA #IMPLIED
scriptname CDATA #IMPLIED
>
|