Annotation of Amaya/amaya/SVG.S, revision 1.28
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.21 quint 28: { Document Structure }
1.8 cvs 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.16 quint 44: direction_ = ltr_, rtl_, inherit;
1.21 quint 45: text_anchor = start, middle, end__, inherit;
1.6 cvs 46: text_decoration = text;
1.14 quint 47: unicode_bidi = normal_, embed_, bidi_override, inherit;
1.5 cvs 48: viewBox = text;
1.19 quint 49: version = text;
1.1 vatton 50: x = text;
1.27 cheyroul 51: y = text;
1.5 cvs 52: width_ = text;
1.1 vatton 53: height_ = text;
1.27 cheyroul 54: opacity = text;
1.11 cvs 55: RealLang = Yes_;
1.1 vatton 56: Charset = text)
1.14 quint 57: = LIST OF (GraphicsElement) + (XMLcomment, XMLPI, CDATA,
58: Unknown_namespace);
1.1 vatton 59:
60: g
1.7 cvs 61: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
62: externalResourcesRequired;
63: fill; stroke; stroke_width;
1.27 cheyroul 64: opacity;
1.5 cvs 65: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 66: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 67: transform = text)
68: = LIST OF (GraphicsElement);
69:
70: defs
1.7 cvs 71: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
72: externalResourcesRequired;
73: fill; stroke; stroke_width;
1.5 cvs 74: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 75: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 76: transform;
77: { graphicsElementEvents })
78: = LIST OF (GraphicsElement);
79:
1.21 quint 80: desc = TEXT;
81:
82: title = TEXT;
83:
1.14 quint 84: symbol_ { not in SVG Tiny }
85: (ATTR externalResourcesRequired;
86: fill; stroke; stroke_width;
87: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 88: direction_; text_anchor; text_decoration; unicode_bidi;
1.14 quint 89: viewBox;
90: preserveAspectRatio = text;
91: { graphicsElementEvents })
92: = LIST OF (GraphicsElement);
93:
1.8 cvs 94: use_ { not in SVG Tiny }
95: (ATTR xlink_href = text;
96: requiredFeatures; requiredExtensions; systemLanguage;
97: externalResourcesRequired;
1.27 cheyroul 98: opacity; fill; stroke; stroke_width;
1.8 cvs 99: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 100: direction_; text_anchor; text_decoration; unicode_bidi;
1.8 cvs 101: transform;
102: { graphicsElementEvents }
103: x;
104: y;
105: width_;
106: height_)
107: = AGGREGATE
108: desc; title; metadata;
1.21 quint 109: LIST OF (Anim);
1.8 cvs 110: END;
111:
112: { Images }
113:
114: image
115: (ATTR xlink_href;
116: requiredFeatures; requiredExtensions; systemLanguage;
1.7 cvs 117: externalResourcesRequired;
1.8 cvs 118: transform;
1.28 ! cheyroul 119: opacity;
1.8 cvs 120: x;
121: y;
122: width_;
1.28 ! cheyroul 123: height_)
1.1 vatton 124: = AGGREGATE
1.8 cvs 125: desc; ? title; ? metadata;
1.21 quint 126: LIST OF (Anim);
1.8 cvs 127: PICTURE;
128: SVG_Image = SVG;
1.1 vatton 129: END;
130:
1.8 cvs 131: { Conditional Processing }
132:
133: switch
134: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
135: externalResourcesRequired;
136: { PresentationAttributes-All }
137: fill; stroke; stroke_width;
138: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 139: direction_; text_anchor; text_decoration; unicode_bidi;
1.8 cvs 140: transform;
141: { graphicsElementEvents })
142: = LIST OF (CASE OF
143: GraphicsElement; foreignObject;
144: END);
145:
146: { Styling }
147:
148: style__ { not in SVG Tiny }
149: (ATTR type = text;
150: media = text;
151: title_ = text)
152: = TEXT;
153:
1.21 quint 154: { Paths }
155:
156: path
157: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
158: externalResourcesRequired;
1.27 cheyroul 159: opacity; fill; stroke; stroke_width;
1.21 quint 160: transform;
161: d = text;
162: pathLength = text)
163: = AGGREGATE
164: desc; title; metadata;
165: LIST OF (Anim);
166: GRAPHICS;
167: END;
168:
169: { Basic Shapes }
1.8 cvs 170:
1.1 vatton 171: rect
1.7 cvs 172: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
173: externalResourcesRequired;
174: fill; stroke; stroke_width;
175: transform;
1.1 vatton 176: x;
177: y;
178: width_;
179: height_;
1.27 cheyroul 180: opacity;
1.1 vatton 181: rx = text;
1.7 cvs 182: ry = text)
1.1 vatton 183: = AGGREGATE
184: desc; title; metadata;
1.21 quint 185: LIST OF (Anim);
1.1 vatton 186: GRAPHICS;
187: END;
188:
189: circle
1.7 cvs 190: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
191: externalResourcesRequired;
192: fill; stroke; stroke_width;
193: transform;
1.1 vatton 194: cx = text;
195: cy = text;
1.27 cheyroul 196: r = text;
197: opacity)
1.1 vatton 198: = AGGREGATE
199: desc; title; metadata;
1.21 quint 200: LIST OF (Anim);
1.1 vatton 201: GRAPHICS;
202: END;
203:
1.21 quint 204: ellipse
1.7 cvs 205: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
206: externalResourcesRequired;
207: fill; stroke; stroke_width;
208: transform;
1.21 quint 209: cx;
210: cy;
211: rx;
1.27 cheyroul 212: ry;
213: opacity)
1.1 vatton 214: = AGGREGATE
215: desc; title; metadata;
1.21 quint 216: LIST OF (Anim);
1.1 vatton 217: GRAPHICS;
218: END;
219:
1.21 quint 220: line_
1.7 cvs 221: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
222: externalResourcesRequired;
223: fill; stroke; stroke_width;
224: transform;
1.21 quint 225: x1 = text;
226: y1 = text;
227: x2 = text;
1.27 cheyroul 228: y2 = text;
229: opacity)
1.1 vatton 230: = AGGREGATE
231: desc; title; metadata;
1.21 quint 232: LIST OF (Anim);
1.1 vatton 233: GRAPHICS;
234: END;
235:
236: polyline
1.7 cvs 237: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
238: externalResourcesRequired;
239: fill; stroke; stroke_width;
1.1 vatton 240: transform;
1.27 cheyroul 241: points = text;
242: opacity)
1.1 vatton 243: = AGGREGATE
244: desc; title; metadata;
1.21 quint 245: LIST OF (Anim);
1.1 vatton 246: GRAPHICS;
247: END;
248:
249: polygon
1.7 cvs 250: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
251: externalResourcesRequired;
252: fill; stroke; stroke_width;
1.1 vatton 253: transform;
1.27 cheyroul 254: points;
255: opacity)
1.1 vatton 256: = AGGREGATE
257: desc; title; metadata;
1.21 quint 258: LIST OF (Anim);
1.8 cvs 259: GRAPHICS;
260: END;
261:
262: { Text }
263:
1.1 vatton 264: text_
1.7 cvs 265: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
266: externalResourcesRequired;
267: fill; stroke; stroke_width;
268: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 269: direction_; text_anchor; text_decoration; unicode_bidi;
1.5 cvs 270: transform;
1.20 vatton 271: writing_mode = lr_tb, rl_tb, tb_rl, lr, rl, tb, inherit;
1.1 vatton 272: x;
1.7 cvs 273: y;
274: dx = text;
1.27 cheyroul 275: dy = text;
276: opacity)
1.23 quint 277: = LIST OF (CASE OF
278: TEXT; desc; title; metadata;
279: tspan; tref; a;
280: animate; set_; animateMotion; animateColor; animateTransform;
281: END);
1.1 vatton 282:
1.8 cvs 283: tspan { not in SVG Tiny }
1.7 cvs 284: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
285: externalResourcesRequired;
286: fill; stroke; stroke_width;
287: font_family; font_size; font_style; font_variant; font_weight;
1.24 quint 288: baseline_shift = text;
1.16 quint 289: direction_; text_anchor; text_decoration; unicode_bidi;
1.20 vatton 290: writing_mode;
1.5 cvs 291: x;
1.1 vatton 292: y;
1.7 cvs 293: dx;
1.27 cheyroul 294: dy;
295: opacity)
1.8 cvs 296: = LIST OF (SpanElement = CASE OF
297: TEXT;
1.21 quint 298: desc; title; metadata;
1.23 quint 299: tspan; tref;
1.21 quint 300: a;
1.23 quint 301: animate; set_; animateColor;
1.8 cvs 302: END);
1.23 quint 303: tref
304: (ATTR xlink_href;
305: requiredFeatures; requiredExtensions; systemLanguage;
306: externalResourcesRequired;
307: fill; stroke; stroke_width;
308: font_family; font_size; font_style; font_variant; font_weight;
1.24 quint 309: baseline_shift;
1.23 quint 310: direction_; text_anchor; text_decoration; unicode_bidi;
311: writing_mode;
312: x;
313: y;
314: dx;
1.27 cheyroul 315: dy;
316: opacity)
1.23 quint 317: = LIST OF (CASE OF
318: desc; title; metadata;
319: animate; set_; animateColor;
320: END);
321:
1.1 vatton 322: { textPath }
323: { altGlyph }
1.21 quint 324: { altGlyphDef }
325: { altGlyphItem }
326: { glyphRef }
327:
328: { Marker Symbols }
329:
330: { marker }
331:
332: { Color }
333:
334: { color-profile }
335:
336: { Gradients and Patterns }
337:
338: { linearGradient }
339: { radialGradient }
340: { stop }
341: { pattern }
342:
343: { Clipping, Masking and Compositing }
344:
345: clipPath
346: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
347: externalResourcesRequired;
348: fill; stroke; stroke_width;
349: font_family; font_size; font_style; font_variant; font_weight;
350: direction_; text_anchor; text_decoration; unicode_bidi;
351: transform;
352: clipPathUnits = userSpaceOnUse, objectBoundingBox;)
353: = AGGREGATE
354: desc; title; metadata;
355: LIST OF
356: (CASE OF
357: path; text_; rect; circle; ellipse; line_; polyline; polygon;
1.23 quint 358: use_; animate; set_; animateMotion; animateColor;
1.21 quint 359: animateTransform;
360: END);
361: END;
362:
363: { mask }
1.8 cvs 364:
1.21 quint 365: { Filter Effects }
1.8 cvs 366:
367: { filter }
1.21 quint 368: { feDistantLight }
369: { fePointLight }
370: { feSpotLight }
1.8 cvs 371: { feBlend }
372: { feColorMatrix }
373: { feComponentTransfer }
1.21 quint 374: { feFuncR }
375: { feFuncG }
376: { feFuncB }
377: { feFuncA }
1.8 cvs 378: { feComposite }
379: { feConvolveMatrix }
380: { feDiffuseLighting }
381: { feDisplacementMap }
1.21 quint 382: { feFlood }
1.8 cvs 383: { feGaussianBlur }
384: { feImage }
385: { feMerge }
1.21 quint 386: { feMergeNode }
1.8 cvs 387: { feMorphology }
388: { feOffset }
389: { feSpecularLighting }
390: { feTile }
391: { feTurbulence }
392:
1.14 quint 393: { Interactivity }
394:
395: { cursor }
396:
397: { Linking }
398:
399: a
400: (ATTR xlink_href;
401: requiredFeatures; requiredExtensions; systemLanguage;
402: externalResourcesRequired;
403: fill; stroke; stroke_width;
404: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 405: direction_; text_anchor; text_decoration; unicode_bidi;
1.14 quint 406: transform;
407: { graphicsElementEvents }
408: target_ = text)
409: = LIST OF (CASE OF
1.23 quint 410: TEXT;
411: GraphicsElement;
412: END);
1.21 quint 413: { view }
1.14 quint 414:
1.8 cvs 415: { Scripting }
416:
1.12 vatton 417: script_ { not in SVG Tiny }
1.8 cvs 418: (ATTR externalResourcesRequired;
419: type)
420: = TEXT;
421:
422: { Animation }
423:
1.21 quint 424: animate
425: (ATTR requiredFeatures; requiredExtensions; systemLanguage; {testAttrs}
426: externalResourcesRequired;
427: onbegin = text; {animationEvents}
428: onend = text;
429: onrepeat = text;
430: {animElementAttrs - see XLink.S}
431: xlink_href;
1.22 quint 432: attributeName_ = text; {animAttributeAttrs}
1.21 quint 433: attributeType = text;
434: begin_ = text; {animTimingAttrs}
435: dur = text;
436: end_ = text;
1.22 quint 437: min_ = text;
438: max_ = text;
1.21 quint 439: restart = always, never, whenNotActive;
440: repeatCount = text;
441: repeatDur = text;
1.22 quint 442: fill_ = remove_, freeze;
1.21 quint 443: calcMode = discrete, linear, paced, spline; {animValueAttrs}
444: values = text;
445: keyTimes = text;
446: keySplines = text;
447: from = text;
1.22 quint 448: to_ = text;
1.21 quint 449: by = text;
450: additive = replace, sum; {animAdditionAttrs}
451: accumulate = none_, sum;)
452: = AGGREGATE
453: desc; title; metadata;
454: END;
455:
1.22 quint 456: set_
1.21 quint 457: (ATTR requiredFeatures; requiredExtensions; systemLanguage; {testAttrs}
458: externalResourcesRequired;
459: onbegin; onend; onrepeat; {animationEvents}
460: xlink_href; {animElementAttrs - see XLink.S}
1.22 quint 461: attributeName_; attributeType; {animAttributeAttrs}
462: begin_; dur; end_; min_; max_; restart; repeatCount; repeatDur; fill_;
1.21 quint 463: {animTimingAttrs}
1.22 quint 464: to_;)
1.21 quint 465: = AGGREGATE
466: desc; title; metadata;
467: END;
1.8 cvs 468:
1.21 quint 469: animateMotion
470: (ATTR requiredFeatures; requiredExtensions; systemLanguage; {testAttrs}
471: externalResourcesRequired;
472: onbegin; onend; onrepeat; {animationEvents}
473: xlink_href; {animElementAttrs - see XLink.S}
1.22 quint 474: attributeName_; attributeType; {animAttributeAttrs}
475: begin_; dur; end_; min_; max_; restart; repeatCount; repeatDur; fill_;
1.21 quint 476: {animTimingAttrs}
1.22 quint 477: calcMode; values; keyTimes; keySplines; from; to_; by;
1.21 quint 478: additive; accumulate; {animAdditionAttrs}
479: path_ = text;
480: keyPoints = text;
481: rotate = text;
482: origin = text;)
483: = AGGREGATE
484: desc; title; metadata; ? mpath;
485: END;
486:
487: mpath
488: (ATTR
489: xlink_href; {xlinkRefAttrs - see XLink.S}
490: externalResourcesRequired;)
491: = AGGREGATE
492: desc; title; metadata;
493: END;
494:
495: animateColor
496: (ATTR requiredFeatures; requiredExtensions; systemLanguage; {testAttrs}
497: externalResourcesRequired;
498: onbegin; onend; onrepeat; {animationEvents}
499: xlink_href; {animElementAttrs - see XLink.S}
1.22 quint 500: attributeName_; attributeType; {animAttributeAttrs}
501: begin_; dur; end_; min_; max_; restart; repeatCount; repeatDur; fill_;
1.21 quint 502: {animTimingAttrs}
1.22 quint 503: calcMode; values; keyTimes; keySplines; from; to_; by;
1.21 quint 504: {animValueAttrs}
505: additive; accumulate;) {animAdditionAttrs}
506: = AGGREGATE
507: desc; title; metadata;
508: END;
509:
510: animateTransform
511: (ATTR requiredFeatures; requiredExtensions; systemLanguage; {testAttrs}
512: externalResourcesRequired;
513: onbegin; onend; onrepeat; {animationEvents}
514: xlink_href; {animElementAttrs - see XLink.S}
1.22 quint 515: attributeName_; attributeType; {animAttributeAttrs}
516: begin_; dur; end_; min_; max_; restart; repeatCount; repeatDur; fill_;
1.21 quint 517: {animTimingAttrs}
1.22 quint 518: calcMode; values; keyTimes; keySplines; from; to_; by;
1.21 quint 519: {animValueAttrs}
520: additive; accumulate; {animAdditionAttrs}
521: type_ = translate, scale, rotate_, skewX, skewY;)
522: = AGGREGATE
523: desc; title; metadata;
524: END;
525:
1.23 quint 526: Anim = CASE OF animate; set_; animateMotion; animateColor; animateTransform;
1.21 quint 527: END;
1.8 cvs 528: { Fonts }
529:
1.1 vatton 530: { font }
531: { glyph }
532: { missing-glyph }
533: { hkern }
534: { vkern }
1.21 quint 535: { font-face }
536: { font-face-src }
537: { font-face-uri }
538: { font-face-format }
539: { font-face-name }
540: { definition-src }
541: { cursor }
542:
543: { Metadata }
544:
545: metadata = TEXT;
1.1 vatton 546:
1.8 cvs 547: { Extensibility }
548:
549: foreignObject { not in SVG Tiny }
550: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
551: externalResourcesRequired;
1.27 cheyroul 552: opacity; fill; stroke; stroke_width;
1.5 cvs 553: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 554: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 555: transform;
556: x;
1.8 cvs 557: y;
1.1 vatton 558: width_;
559: height_)
1.8 cvs 560: = BEGIN CASE OF
561: HTML; MathML;
1.1 vatton 562: END;
1.8 cvs 563: END;
564:
565: { The following elements are not defined in the SVG DTD }
1.1 vatton 566:
1.25 pierre 567:
568: Timeline_cross
569: (ATTR x;
570: y;
1.27 cheyroul 571: opacity;
1.25 pierre 572: width_;
573: height_)
1.26 pierre 574: = PICTURE;
1.25 pierre 575:
1.1 vatton 576: GraphicsElement
577: = CASE OF
1.18 quint 578: desc; title; metadata; defs;
1.1 vatton 579: path; text_; rect; circle; ellipse; line_; polyline; polygon;
1.25 pierre 580: use_; image; Timeline_cross; SVG; g; switch; a;
581: script_; style__; symbol_; clipPath; Anim;
1.23 quint 582: animate; set_; animateMotion; animateColor; animateTransform;
1.3 cvs 583: XLink;
1.1 vatton 584: END;
585:
1.10 cvs 586: DOCTYPE = LIST OF (DOCTYPE_line = TEXT);
1.9 cvs 587:
1.1 vatton 588: XMLcomment = LIST OF (XMLcomment_line = TEXT);
589:
590: XMLPI = LIST OF (XMLPI_line = TEXT);
591:
1.13 cvs 592: CDATA = LIST OF (CDATA_line = TEXT);
593:
1.2 cvs 594: Unknown_namespace = TEXT;
1.6 cvs 595:
1.1 vatton 596: EXCEPT
597:
598: SVG: IsDraw, MoveResize, NoMove;
599: g: NoMove, NoResize, HighlightChildren, NoShowBox,
600: NoCreate;
601: defs: NoMove, NoResize, NoShowBox, NoCreate;
602: rect: MoveResize, HighlightChildren, NoShowBox, NoCreate;
603: circle: MoveResize, HighlightChildren, NoShowBox, NoCreate;
604: ellipse: MoveResize, HighlightChildren, NoShowBox, NoCreate;
605: line_: MoveResize, HighlightChildren, NoShowBox, NoCreate;
606: polyline: MoveResize, HighlightChildren, NoShowBox, NoCreate;
607: polygon: MoveResize, HighlightChildren, NoShowBox, NoCreate;
608: path: MoveResize, HighlightChildren, NoShowBox, NoCreate;
609: text_: MoveResize, NoResize, NoShowBox, ReturnCreateWithin,
610: NoCreate;
611: tspan: NoShowBox;
612: use_: NoMove, NoResize, HighlightChildren, NoShowBox,
613: NoCreate;
614: image: MoveResize, HighlightChildren, NoShowBox;
615: symbol_: NoMove, NoResize, HighlightChildren,NoShowBox,
616: NoCreate;
617: a: NoMove, NoResize, HighlightChildren, NoShowBox,
618: NoCreate;
1.12 vatton 619: script_: NoMove, NoResize, NoShowBox, NoCreate;
1.1 vatton 620: style__: NoMove, NoResize, NoShowBox, NoCreate;
1.17 vatton 621: switch: NoMove, NoResize, NoShowBox, NoCreate, HighlightChildren;
1.1 vatton 622: foreignObject: MoveResize, HighlightChildren, NoCreate;
1.4 cvs 623: SVG_Image: Hidden, SelectParent;
1.1 vatton 624: GRAPHICS: SelectParent;
625: PICTURE: NoMove, NoResize, SelectParent;
626: TEXT: NoMove, NoResize;
1.2 cvs 627: Unknown_namespace: NoCreate;
1.21 quint 628: DOCTYPE: NoCut;
629: DOCTYPE_line: Hidden, NoCut;
1.18 quint 630: XMLcomment_line: Hidden;
631: XMLPI_line: Hidden;
632: CDATA_line: Hidden;
1.1 vatton 633:
634: id: CssId;
635: class: CssClass;
636: PseudoClass: Invisible, CssPseudoClass;
1.2 cvs 637: Unknown_attribute: Invisible;
1.1 vatton 638: Highlight: Invisible;
639: Ghost_restruct: Invisible;
640: Namespace: Invisible;
641: IntEmptyShape: Invisible;
1.11 cvs 642: RealLang: Invisible;
643: Charset: Invisible;
1.25 pierre 644: Timeline_cross: MoveResize, NoResize, HighlightChildren, NoShowBox, NoCut;
1.1 vatton 645:
646: END
Webmaster