Annotation of Amaya/amaya/SVG.S, revision 1.18
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.16 quint 44: direction_ = ltr_, rtl_, inherit;
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.1 vatton 49: x = text;
50: y = text;
1.5 cvs 51: width_ = text;
1.1 vatton 52: height_ = text;
1.11 cvs 53: RealLang = Yes_;
1.1 vatton 54: Charset = text)
1.14 quint 55: = LIST OF (GraphicsElement) + (XMLcomment, XMLPI, CDATA,
56: Unknown_namespace);
1.1 vatton 57:
1.8 cvs 58: desc = TEXT;
59:
60: title = TEXT;
61:
62: metadata = TEXT;
63:
1.1 vatton 64: g
1.7 cvs 65: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
66: externalResourcesRequired;
67: fill; stroke; stroke_width;
1.5 cvs 68: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 69: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 70: transform = text)
71: = LIST OF (GraphicsElement);
72:
73: defs
1.7 cvs 74: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
75: externalResourcesRequired;
76: fill; stroke; stroke_width;
1.5 cvs 77: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 78: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 79: transform;
80: { graphicsElementEvents })
81: = LIST OF (GraphicsElement);
82:
1.14 quint 83: symbol_ { not in SVG Tiny }
84: (ATTR externalResourcesRequired;
85: fill; stroke; stroke_width;
86: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 87: direction_; text_anchor; text_decoration; unicode_bidi;
1.14 quint 88: viewBox;
89: preserveAspectRatio = text;
90: { graphicsElementEvents })
91: = LIST OF (GraphicsElement);
92:
1.8 cvs 93: use_ { not in SVG Tiny }
94: (ATTR xlink_href = text;
95: requiredFeatures; requiredExtensions; systemLanguage;
96: externalResourcesRequired;
97: fill; stroke; stroke_width;
98: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 99: direction_; text_anchor; text_decoration; unicode_bidi;
1.8 cvs 100: transform;
101: { graphicsElementEvents }
102: x;
103: y;
104: width_;
105: height_)
106: = AGGREGATE
107: desc; title; metadata;
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;
123: PICTURE;
124: SVG_Image = SVG;
1.1 vatton 125: END;
126:
1.8 cvs 127: { Conditional Processing }
128:
129: switch
130: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
131: externalResourcesRequired;
132: { PresentationAttributes-All }
133: fill; stroke; stroke_width;
134: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 135: direction_; text_anchor; text_decoration; unicode_bidi;
1.8 cvs 136: transform;
137: { graphicsElementEvents })
138: = LIST OF (CASE OF
139: GraphicsElement; foreignObject;
140: END);
141:
142: { Styling }
143:
144: style__ { not in SVG Tiny }
145: (ATTR type = text;
146: media = text;
147: title_ = text)
148: = TEXT;
149:
150: { Shapes }
151:
1.1 vatton 152: rect
1.7 cvs 153: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
154: externalResourcesRequired;
155: fill; stroke; stroke_width;
156: transform;
1.1 vatton 157: x;
158: y;
159: width_;
160: height_;
161: rx = text;
1.7 cvs 162: ry = text)
1.1 vatton 163: = AGGREGATE
164: desc; title; metadata;
165: GRAPHICS;
166: END;
167:
168: circle
1.7 cvs 169: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
170: externalResourcesRequired;
171: fill; stroke; stroke_width;
172: transform;
1.1 vatton 173: cx = text;
174: cy = text;
1.7 cvs 175: r = text)
1.1 vatton 176: = AGGREGATE
177: desc; title; metadata;
178: GRAPHICS;
179: END;
180:
1.8 cvs 181: line_
1.7 cvs 182: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
183: externalResourcesRequired;
184: fill; stroke; stroke_width;
185: transform;
1.8 cvs 186: x1 = text;
187: y1 = text;
188: x2 = text;
189: y2 = text)
1.1 vatton 190: = AGGREGATE
191: desc; title; metadata;
192: GRAPHICS;
193: END;
194:
1.8 cvs 195: ellipse
1.7 cvs 196: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
197: externalResourcesRequired;
198: fill; stroke; stroke_width;
199: transform;
1.8 cvs 200: cx;
201: cy;
202: rx;
203: ry)
1.1 vatton 204: = AGGREGATE
205: desc; title; metadata;
206: GRAPHICS;
207: END;
208:
209: polyline
1.7 cvs 210: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
211: externalResourcesRequired;
212: fill; stroke; stroke_width;
1.1 vatton 213: transform;
1.7 cvs 214: points = text)
1.1 vatton 215: = AGGREGATE
216: desc; title; metadata;
217: GRAPHICS;
218: END;
219:
220: polygon
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)
1.1 vatton 226: = AGGREGATE
227: desc; title; metadata;
228: GRAPHICS;
229: END;
230:
1.8 cvs 231: path
232: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
233: externalResourcesRequired;
234: fill; stroke; stroke_width;
235: transform;
236: d = text;
237: pathLength = text)
238: = AGGREGATE
239: desc; title; metadata;
240: GRAPHICS;
241: END;
242:
243: { Text }
244:
1.1 vatton 245: text_
1.7 cvs 246: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
247: externalResourcesRequired;
248: fill; stroke; stroke_width;
249: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 250: direction_; text_anchor; text_decoration; unicode_bidi;
1.5 cvs 251: transform;
1.1 vatton 252: x;
1.7 cvs 253: y;
254: dx = text;
255: dy = text)
1.1 vatton 256: = LIST OF (TextComponent);
257:
1.8 cvs 258: tspan { not in SVG Tiny }
1.7 cvs 259: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
260: externalResourcesRequired;
261: fill; stroke; stroke_width;
262: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 263: direction_; text_anchor; text_decoration; unicode_bidi;
1.5 cvs 264: x;
1.1 vatton 265: y;
1.7 cvs 266: dx;
267: dy)
1.8 cvs 268: = LIST OF (SpanElement = CASE OF
269: TEXT;
270: tspan;
271: desc;
272: title;
273: metadata;
274: END);
275:
1.1 vatton 276: { tref }
277: { textPath }
278: { altGlyph }
1.8 cvs 279:
280: { Filters }
281:
282: { filter }
283: { feBlend }
284: { feFlood }
285: { feColorMatrix }
286: { feComponentTransfer }
287: { feComposite }
288: { feConvolveMatrix }
289: { feDiffuseLighting }
290: { feDisplacementMap }
291: { feGaussianBlur }
292: { feImage }
293: { feMerge }
294: { feMorphology }
295: { feOffset }
296: { feSpecularLighting }
297: { feTile }
298: { feTurbulence }
299:
1.14 quint 300: { Interactivity }
301:
302: { cursor }
303:
304: { Linking }
305:
306: a
307: (ATTR xlink_href;
308: requiredFeatures; requiredExtensions; systemLanguage;
309: externalResourcesRequired;
310: fill; stroke; stroke_width;
311: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 312: direction_; text_anchor; text_decoration; unicode_bidi;
1.14 quint 313: transform;
314: { graphicsElementEvents }
315: target_ = text)
316: = LIST OF (CASE OF
317: GraphicsElement; TextComponent;
318: END);
319:
1.8 cvs 320: { Scripting }
321:
1.12 vatton 322: script_ { not in SVG Tiny }
1.8 cvs 323: (ATTR externalResourcesRequired;
324: type)
325: = TEXT;
326:
327: { Animation }
328:
329: { animate }
330: { set }
331: { animateMotion }
332: { animateTransform }
333: { animateColor }
334: { mpath }
335:
336: { Fonts }
337:
1.1 vatton 338: { font }
1.8 cvs 339: { font-face }
1.1 vatton 340: { glyph }
341: { missing-glyph }
342: { hkern }
343: { vkern }
344:
1.8 cvs 345: { Extensibility }
346:
347: foreignObject { not in SVG Tiny }
348: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
349: externalResourcesRequired;
1.7 cvs 350: fill; stroke; stroke_width;
1.5 cvs 351: font_family; font_size; font_style; font_variant; font_weight;
1.16 quint 352: direction_; text_anchor; text_decoration; unicode_bidi;
1.1 vatton 353: transform;
354: x;
1.8 cvs 355: y;
1.1 vatton 356: width_;
357: height_)
1.8 cvs 358: = BEGIN CASE OF
359: HTML; MathML;
1.1 vatton 360: END;
1.8 cvs 361: END;
362:
363: { Clipping }
1.1 vatton 364:
1.18 ! quint 365: clipPath
! 366: (ATTR requiredFeatures; requiredExtensions; systemLanguage;
! 367: externalResourcesRequired;
! 368: fill; stroke; stroke_width;
! 369: font_family; font_size; font_style; font_variant; font_weight;
! 370: direction_; text_anchor; text_decoration; unicode_bidi;
! 371: transform;
! 372: clipPathUnits = userSpaceOnUse, objectBoundingBox;)
! 373: = BEGIN
! 374: descTitleMetadata = AGGREGATE desc; title; metadata; END;
! 375: clipPathContent = LIST OF (CASE OF path; text_; rect; circle;
! 376: ellipse; line; polyline; polygon; use_; END);
! 377: END;
1.8 cvs 378:
379: { Masking }
380:
1.1 vatton 381: { mask }
1.8 cvs 382:
383: { Markers }
384:
385: { marker }
386:
387: { Gradients }
388:
1.1 vatton 389: { linearGradient }
390: { radialGradient }
391: { stop }
1.8 cvs 392:
393: { Patterns }
394:
1.1 vatton 395: { pattern }
1.8 cvs 396:
397: { Views }
1.1 vatton 398:
399: { view }
400:
1.8 cvs 401: { The following elements from SVG 1.0 does not appear in WD-SVG11-20011030 }
1.1 vatton 402:
1.8 cvs 403: { altGlyphDef }
404: { altGlyphItem }
405: { glyphRef }
1.1 vatton 406: { color-profile }
407: { font-face-src }
408: { font-face-uri }
409: { font-face-format }
410: { font-face-name }
411: { definition-src }
412: { cursor }
413:
1.8 cvs 414: { The following elements are not defined in the SVG DTD }
1.1 vatton 415:
416: GraphicsElement
417: = CASE OF
1.18 ! quint 418: desc; title; metadata; defs;
1.1 vatton 419: path; text_; rect; circle; ellipse; line_; polyline; polygon;
1.3 cvs 420: use_; image; SVG; g; switch; a;
1.18 ! quint 421: script_; style__; symbol_; clipPath;
1.3 cvs 422: XLink;
1.1 vatton 423: END;
424:
425: TextComponent
426: = CASE OF
427: tspan; { must be the first option, to allow the Return key
428: to create tspan elements }
429: TEXT;
430: desc;
431: title;
432: metadata;
433: END;
434:
1.10 cvs 435: DOCTYPE = LIST OF (DOCTYPE_line = TEXT);
1.9 cvs 436:
1.1 vatton 437: XMLcomment = LIST OF (XMLcomment_line = TEXT);
438:
439: XMLPI = LIST OF (XMLPI_line = TEXT);
440:
1.13 cvs 441: CDATA = LIST OF (CDATA_line = TEXT);
442:
1.2 cvs 443: Unknown_namespace = TEXT;
1.6 cvs 444:
1.1 vatton 445: EXCEPT
446:
447: SVG: IsDraw, MoveResize, NoMove;
448: g: NoMove, NoResize, HighlightChildren, NoShowBox,
449: NoCreate;
450: defs: NoMove, NoResize, NoShowBox, NoCreate;
451: rect: MoveResize, HighlightChildren, NoShowBox, NoCreate;
452: circle: MoveResize, HighlightChildren, NoShowBox, NoCreate;
453: ellipse: MoveResize, HighlightChildren, NoShowBox, NoCreate;
454: line_: MoveResize, HighlightChildren, NoShowBox, NoCreate;
455: polyline: MoveResize, HighlightChildren, NoShowBox, NoCreate;
456: polygon: MoveResize, HighlightChildren, NoShowBox, NoCreate;
457: path: MoveResize, HighlightChildren, NoShowBox, NoCreate;
458: text_: MoveResize, NoResize, NoShowBox, ReturnCreateWithin,
459: NoCreate;
460: tspan: NoShowBox;
461: use_: NoMove, NoResize, HighlightChildren, NoShowBox,
462: NoCreate;
463: image: MoveResize, HighlightChildren, NoShowBox;
464: symbol_: NoMove, NoResize, HighlightChildren,NoShowBox,
465: NoCreate;
466: a: NoMove, NoResize, HighlightChildren, NoShowBox,
467: NoCreate;
1.12 vatton 468: script_: NoMove, NoResize, NoShowBox, NoCreate;
1.1 vatton 469: style__: NoMove, NoResize, NoShowBox, NoCreate;
1.17 vatton 470: switch: NoMove, NoResize, NoShowBox, NoCreate, HighlightChildren;
1.1 vatton 471: foreignObject: MoveResize, HighlightChildren, NoCreate;
1.4 cvs 472: SVG_Image: Hidden, SelectParent;
1.1 vatton 473: GRAPHICS: SelectParent;
474: PICTURE: NoMove, NoResize, SelectParent;
475: TEXT: NoMove, NoResize;
1.2 cvs 476: Unknown_namespace: NoCreate;
1.18 ! quint 477: descTitleMetadata: Hidden;
! 478: clipPathContent: Hidden;
! 479: XMLcomment_line: Hidden;
! 480: XMLPI_line: Hidden;
! 481: DOCTYPE: NoCut;
! 482: DOCTYPE_line: Hidden, NoCut;
! 483: CDATA_line: Hidden;
1.1 vatton 484:
485: id: CssId;
486: class: CssClass;
487: PseudoClass: Invisible, CssPseudoClass;
1.2 cvs 488: Unknown_attribute: Invisible;
1.1 vatton 489: Highlight: Invisible;
490: Ghost_restruct: Invisible;
491: Namespace: Invisible;
492: IntEmptyShape: Invisible;
1.11 cvs 493: RealLang: Invisible;
494: Charset: Invisible;
1.1 vatton 495:
496: END
Webmaster