Annotation of Amaya/amaya/SVG.S, revision 1.8
1.1 vatton 1:
2: { Thot structure schema for Scalable Vector Graphics }
3:
4: STRUCTURE SVG;
5:
6: DEFPRES SVGP;
7:
8: ATTR
9:
10: { global attributes for all SVG elements }
11: id = text;
12: class = text;
13: PseudoClass = Text;
14: style_ = text;
15: xml_space = xml_space_default, xml_space_preserve;
1.3 cvs 16: { xml_base = Text; }
17:
1.1 vatton 18: { global attributes for internal processing }
1.2 cvs 19: Unknown_attribute = text;
1.1 vatton 20: Ghost_restruct = text;
21: Highlight = Yes_; { to show the SVG element corresponding to the
22: current selection in the source view }
23: Namespace = text; { for children of element foreignObject }
24: IntEmptyShape = yes_, no_;
25:
26: STRUCT
27:
1.8 ! cvs 28: { Structure Module }
! 29:
1.1 vatton 30: SVG
1.7 cvs 31: (ATTR requiredFeatures = text;
32: requiredExtensions = text;
33: systemLanguage = text;
34: externalResourcesRequired = false, true;
35: fill = text;
36: stroke = text;
37: stroke_width = text;
38: font_family = text;
1.5 cvs 39: font_size = text;
40: font_style = normal_, italic, oblique_, inherit;
41: font_variant = normal_, small_caps, inherit;
42: font_weight = normal_, bold_, bolder, lighter, w100, w200, w300,
43: w400, w500, w600, w700, w800, w900, inherit;
1.6 cvs 44: text_decoration = text;
1.5 cvs 45: viewBox = text;
1.1 vatton 46: x = text;
47: y = text;
1.5 cvs 48: width_ = text;
1.1 vatton 49: height_ = text;
50: Charset = text)
1.2 cvs 51: = LIST OF (GraphicsElement) + (XMLcomment, XMLPI, Unknown_namespace);
1.1 vatton 52:
1.8 ! cvs 53: desc = TEXT;
! 54:
! 55: title = TEXT;
! 56:
! 57: metadata = TEXT;
! 58:
1.1 vatton 59: g
1.7 cvs 60: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
61: externalResourcesRequired;
62: fill; stroke; stroke_width;
1.5 cvs 63: font_family; font_size; font_style; font_variant; font_weight;
1.6 cvs 64: text_decoration;
1.1 vatton 65: transform = text)
66: = LIST OF (GraphicsElement);
67:
68: defs
1.7 cvs 69: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
70: externalResourcesRequired;
71: fill; stroke; stroke_width;
1.5 cvs 72: font_family; font_size; font_style; font_variant; font_weight;
1.6 cvs 73: text_decoration;
1.1 vatton 74: transform;
75: { graphicsElementEvents })
76: = LIST OF (GraphicsElement);
77:
1.8 ! cvs 78: use_ { not in SVG Tiny }
! 79: (ATTR xlink_href = text;
! 80: requiredFeatures; requiredExtensions; systemLanguage;
! 81: externalResourcesRequired;
! 82: fill; stroke; stroke_width;
! 83: font_family; font_size; font_style; font_variant; font_weight;
! 84: text_decoration;
! 85: transform;
! 86: { graphicsElementEvents }
! 87: x;
! 88: y;
! 89: width_;
! 90: height_)
! 91: = AGGREGATE
! 92: desc; title; metadata;
! 93: END;
! 94:
! 95: symbol_ { not in SVG Tiny }
! 96: (ATTR externalResourcesRequired;
! 97: fill; stroke; stroke_width;
! 98: font_family; font_size; font_style; font_variant; font_weight;
! 99: text_decoration;
! 100: viewBox;
! 101: preserveAspectRatio = text;
! 102: { graphicsElementEvents })
! 103: = LIST OF (GraphicsElement);
! 104:
! 105: { Images }
! 106:
! 107: image
! 108: (ATTR xlink_href;
! 109: requiredFeatures; requiredExtensions; systemLanguage;
1.7 cvs 110: externalResourcesRequired;
1.8 ! cvs 111: transform;
! 112: x;
! 113: y;
! 114: width_;
! 115: height_)
1.1 vatton 116: = AGGREGATE
1.8 ! cvs 117: desc; ? title; ? metadata;
! 118: PICTURE;
! 119: SVG_Image = SVG;
1.1 vatton 120: END;
121:
1.8 ! cvs 122: { Conditional Processing }
! 123:
! 124: switch
! 125: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
! 126: externalResourcesRequired;
! 127: { PresentationAttributes-All }
! 128: fill; stroke; stroke_width;
! 129: font_family; font_size; font_style; font_variant; font_weight;
! 130: text_decoration;
! 131: transform;
! 132: { graphicsElementEvents })
! 133: = LIST OF (CASE OF
! 134: GraphicsElement; foreignObject;
! 135: END);
! 136:
! 137: { Hyperlinking }
! 138:
! 139: a
! 140: (ATTR xlink_href;
! 141: requiredFeatures; requiredExtensions; systemLanguage;
! 142: externalResourcesRequired;
! 143: fill; stroke; stroke_width;
! 144: font_family; font_size; font_style; font_variant; font_weight;
! 145: text_decoration;
! 146: transform;
! 147: { graphicsElementEvents }
! 148: target_ = text)
! 149: = LIST OF (CASE OF
! 150: GraphicsElement; TextComponent;
! 151: END);
! 152:
! 153: { Styling }
! 154:
! 155: style__ { not in SVG Tiny }
! 156: (ATTR type = text;
! 157: media = text;
! 158: title_ = text)
! 159: = TEXT;
! 160:
! 161: { Shapes }
! 162:
1.1 vatton 163: rect
1.7 cvs 164: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
165: externalResourcesRequired;
166: fill; stroke; stroke_width;
167: transform;
1.1 vatton 168: x;
169: y;
170: width_;
171: height_;
172: rx = text;
1.7 cvs 173: ry = text)
1.1 vatton 174: = AGGREGATE
175: desc; title; metadata;
176: GRAPHICS;
177: END;
178:
179: circle
1.7 cvs 180: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
181: externalResourcesRequired;
182: fill; stroke; stroke_width;
183: transform;
1.1 vatton 184: cx = text;
185: cy = text;
1.7 cvs 186: r = text)
1.1 vatton 187: = AGGREGATE
188: desc; title; metadata;
189: GRAPHICS;
190: END;
191:
1.8 ! cvs 192: line_
1.7 cvs 193: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
194: externalResourcesRequired;
195: fill; stroke; stroke_width;
196: transform;
1.8 ! cvs 197: x1 = text;
! 198: y1 = text;
! 199: x2 = text;
! 200: y2 = text)
1.1 vatton 201: = AGGREGATE
202: desc; title; metadata;
203: GRAPHICS;
204: END;
205:
1.8 ! cvs 206: ellipse
1.7 cvs 207: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
208: externalResourcesRequired;
209: fill; stroke; stroke_width;
210: transform;
1.8 ! cvs 211: cx;
! 212: cy;
! 213: rx;
! 214: ry)
1.1 vatton 215: = AGGREGATE
216: desc; title; metadata;
217: GRAPHICS;
218: END;
219:
220: polyline
1.7 cvs 221: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
222: externalResourcesRequired;
223: fill; stroke; stroke_width;
1.1 vatton 224: transform;
1.7 cvs 225: points = text)
1.1 vatton 226: = AGGREGATE
227: desc; title; metadata;
228: GRAPHICS;
229: END;
230:
231: polygon
1.7 cvs 232: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
233: externalResourcesRequired;
234: fill; stroke; stroke_width;
1.1 vatton 235: transform;
1.7 cvs 236: points)
1.1 vatton 237: = AGGREGATE
238: desc; title; metadata;
239: GRAPHICS;
240: END;
241:
1.8 ! cvs 242: path
! 243: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
! 244: externalResourcesRequired;
! 245: fill; stroke; stroke_width;
! 246: transform;
! 247: d = text;
! 248: pathLength = text)
! 249: = AGGREGATE
! 250: desc; title; metadata;
! 251: GRAPHICS;
! 252: END;
! 253:
! 254: { Text }
! 255:
1.1 vatton 256: text_
1.7 cvs 257: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
258: externalResourcesRequired;
259: fill; stroke; stroke_width;
260: font_family; font_size; font_style; font_variant; font_weight;
1.6 cvs 261: text_decoration;
1.5 cvs 262: transform;
1.1 vatton 263: x;
1.7 cvs 264: y;
265: dx = text;
266: dy = text)
1.1 vatton 267: = LIST OF (TextComponent);
268:
1.8 ! cvs 269: tspan { not in SVG Tiny }
1.7 cvs 270: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
271: externalResourcesRequired;
272: fill; stroke; stroke_width;
273: font_family; font_size; font_style; font_variant; font_weight;
1.6 cvs 274: text_decoration;
1.5 cvs 275: x;
1.1 vatton 276: y;
1.7 cvs 277: dx;
278: dy)
1.8 ! cvs 279: = LIST OF (SpanElement = CASE OF
! 280: TEXT;
! 281: tspan;
! 282: desc;
! 283: title;
! 284: metadata;
! 285: END);
! 286:
1.1 vatton 287: { tref }
288: { textPath }
289: { altGlyph }
1.8 ! cvs 290:
! 291: { Filters }
! 292:
! 293: { filter }
! 294: { feBlend }
! 295: { feFlood }
! 296: { feColorMatrix }
! 297: { feComponentTransfer }
! 298: { feComposite }
! 299: { feConvolveMatrix }
! 300: { feDiffuseLighting }
! 301: { feDisplacementMap }
! 302: { feGaussianBlur }
! 303: { feImage }
! 304: { feMerge }
! 305: { feMorphology }
! 306: { feOffset }
! 307: { feSpecularLighting }
! 308: { feTile }
! 309: { feTurbulence }
! 310:
! 311: { Scripting }
! 312:
! 313: script { not in SVG Tiny }
! 314: (ATTR externalResourcesRequired;
! 315: type)
! 316: = TEXT;
! 317:
! 318: { Animation }
! 319:
! 320: { animate }
! 321: { set }
! 322: { animateMotion }
! 323: { animateTransform }
! 324: { animateColor }
! 325: { mpath }
! 326:
! 327: { Fonts }
! 328:
1.1 vatton 329: { font }
1.8 ! cvs 330: { font-face }
1.1 vatton 331: { glyph }
332: { missing-glyph }
333: { hkern }
334: { vkern }
335:
1.8 ! cvs 336: { Extensibility }
! 337:
! 338: foreignObject { not in SVG Tiny }
! 339: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
! 340: externalResourcesRequired;
1.7 cvs 341: fill; stroke; stroke_width;
1.5 cvs 342: font_family; font_size; font_style; font_variant; font_weight;
1.6 cvs 343: text_decoration;
1.1 vatton 344: transform;
345: x;
1.8 ! cvs 346: y;
1.1 vatton 347: width_;
348: height_)
1.8 ! cvs 349: = BEGIN CASE OF
! 350: HTML; MathML;
1.1 vatton 351: END;
1.8 ! cvs 352: END;
! 353:
! 354: { Clipping }
1.1 vatton 355:
356: { clipPath }
1.8 ! cvs 357:
! 358: { Masking }
! 359:
1.1 vatton 360: { mask }
1.8 ! cvs 361:
! 362: { Markers }
! 363:
! 364: { marker }
! 365:
! 366: { Gradients }
! 367:
1.1 vatton 368: { linearGradient }
369: { radialGradient }
370: { stop }
1.8 ! cvs 371:
! 372: { Patterns }
! 373:
1.1 vatton 374: { pattern }
375:
1.8 ! cvs 376: { Cursors }
! 377:
! 378: { cursor }
! 379:
! 380: { Views }
1.1 vatton 381:
382: { view }
383:
1.8 ! cvs 384: { The following elements from SVG 1.0 does not appear in WD-SVG11-20011030 }
1.1 vatton 385:
1.8 ! cvs 386: { altGlyphDef }
! 387: { altGlyphItem }
! 388: { glyphRef }
1.1 vatton 389: { color-profile }
390: { font-face-src }
391: { font-face-uri }
392: { font-face-format }
393: { font-face-name }
394: { definition-src }
395: { cursor }
396:
1.8 ! cvs 397: { The following elements are not defined in the SVG DTD }
1.1 vatton 398:
399: GraphicsElement
400: = CASE OF
1.3 cvs 401: desc; title; metadata;
402: defs;
1.1 vatton 403: path; text_; rect; circle; ellipse; line_; polyline; polygon;
1.3 cvs 404: use_; image; SVG; g; switch; a;
1.1 vatton 405: script; style__; symbol_;
1.3 cvs 406: XLink;
1.1 vatton 407: END;
408:
409: TextComponent
410: = CASE OF
411: tspan; { must be the first option, to allow the Return key
412: to create tspan elements }
413: TEXT;
414: desc;
415: title;
416: metadata;
417: END;
418:
419: XMLcomment = LIST OF (XMLcomment_line = TEXT);
420:
421: XMLPI = LIST OF (XMLPI_line = TEXT);
422:
1.2 cvs 423: Unknown_namespace = TEXT;
1.6 cvs 424:
1.1 vatton 425: EXCEPT
426:
427: SVG: IsDraw, MoveResize, NoMove;
428: g: NoMove, NoResize, HighlightChildren, NoShowBox,
429: NoCreate;
430: defs: NoMove, NoResize, NoShowBox, NoCreate;
431: rect: MoveResize, HighlightChildren, NoShowBox, NoCreate;
432: circle: MoveResize, HighlightChildren, NoShowBox, NoCreate;
433: ellipse: MoveResize, HighlightChildren, NoShowBox, NoCreate;
434: line_: MoveResize, HighlightChildren, NoShowBox, NoCreate;
435: polyline: MoveResize, HighlightChildren, NoShowBox, NoCreate;
436: polygon: MoveResize, HighlightChildren, NoShowBox, NoCreate;
437: path: MoveResize, HighlightChildren, NoShowBox, NoCreate;
438: text_: MoveResize, NoResize, NoShowBox, ReturnCreateWithin,
439: NoCreate;
440: tspan: NoShowBox;
441: use_: NoMove, NoResize, HighlightChildren, NoShowBox,
442: NoCreate;
443: image: MoveResize, HighlightChildren, NoShowBox;
444: symbol_: NoMove, NoResize, HighlightChildren,NoShowBox,
445: NoCreate;
446: a: NoMove, NoResize, HighlightChildren, NoShowBox,
447: NoCreate;
448: script: NoMove, NoResize, NoShowBox, NoCreate;
449: style__: NoMove, NoResize, NoShowBox, NoCreate;
1.4 cvs 450: switch: NoMove, NoResize, NoShowBox, NoCreate;
1.1 vatton 451: foreignObject: MoveResize, HighlightChildren, NoCreate;
1.4 cvs 452: SVG_Image: Hidden, SelectParent;
1.1 vatton 453: GRAPHICS: SelectParent;
454: PICTURE: NoMove, NoResize, SelectParent;
455: TEXT: NoMove, NoResize;
1.2 cvs 456: Unknown_namespace: NoCreate;
1.1 vatton 457:
458: id: CssId;
459: class: CssClass;
460: PseudoClass: Invisible, CssPseudoClass;
1.2 cvs 461: Unknown_attribute: Invisible;
1.1 vatton 462: Highlight: Invisible;
463: Ghost_restruct: Invisible;
464: Namespace: Invisible;
465: IntEmptyShape: Invisible;
466:
467: END
468:
469:
470:
Webmaster