Annotation of Amaya/amaya/SVG.S, revision 1.10

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: 
1.10    ! cvs       419:    DOCTYPE = LIST OF (DOCTYPE_line = TEXT);    
1.9       cvs       420:        
1.1       vatton    421:    XMLcomment = LIST OF (XMLcomment_line = TEXT);
                    422: 
                    423:    XMLPI = LIST OF (XMLPI_line = TEXT);
                    424: 
1.2       cvs       425:    Unknown_namespace = TEXT;
1.6       cvs       426: 
1.1       vatton    427: EXCEPT
                    428: 
                    429:    SVG:                 IsDraw, MoveResize, NoMove;
                    430:    g:                   NoMove, NoResize, HighlightChildren, NoShowBox,
                    431:                         NoCreate;
                    432:    defs:                NoMove, NoResize, NoShowBox, NoCreate;
                    433:    rect:                MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    434:    circle:              MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    435:    ellipse:             MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    436:    line_:               MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    437:    polyline:            MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    438:    polygon:             MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    439:    path:               MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    440:    text_:               MoveResize, NoResize, NoShowBox, ReturnCreateWithin,
                    441:                        NoCreate;
                    442:    tspan:              NoShowBox; 
                    443:    use_:               NoMove, NoResize, HighlightChildren, NoShowBox,
                    444:                        NoCreate;
                    445:    image:              MoveResize, HighlightChildren, NoShowBox;
                    446:    symbol_:            NoMove, NoResize,  HighlightChildren,NoShowBox,
                    447:                         NoCreate;
                    448:    a:                  NoMove, NoResize, HighlightChildren, NoShowBox,
                    449:                         NoCreate;
                    450:    script:             NoMove, NoResize, NoShowBox, NoCreate;
                    451:    style__:             NoMove, NoResize, NoShowBox, NoCreate;
1.4       cvs       452:    switch:              NoMove, NoResize, NoShowBox, NoCreate;
1.1       vatton    453:    foreignObject:       MoveResize, HighlightChildren, NoCreate;
1.4       cvs       454:    SVG_Image:           Hidden, SelectParent;
1.1       vatton    455:    GRAPHICS:           SelectParent;
                    456:    PICTURE:             NoMove, NoResize, SelectParent;
                    457:    TEXT:                NoMove, NoResize;
1.2       cvs       458:    Unknown_namespace:   NoCreate;
1.1       vatton    459: 
                    460:    id:                  CssId;
                    461:    class:               CssClass;
                    462:    PseudoClass:                Invisible, CssPseudoClass;
1.2       cvs       463:    Unknown_attribute:   Invisible;
1.1       vatton    464:    Highlight:          Invisible; 
                    465:    Ghost_restruct:      Invisible;
                    466:    Namespace:          Invisible;
                    467:    IntEmptyShape:       Invisible;
1.10    ! cvs       468:    XMLcomment_line:     Hidden;
        !           469:    XMLPI_line:          Hidden;
        !           470:    DOCTYPE_line:        Hidden;
1.1       vatton    471: 
                    472: END
                    473: 
                    474: 
                    475: 

Webmaster