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