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