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