parstabl.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:72k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef PARSTABL_H
  36. #define PARSTABL_H
  37. typedef struct
  38. {
  39.     SMIL2Element m_eElement;
  40.     const char*  m_pszString;
  41. } SMILElementTable;
  42. static const SMILElementTable g_ElementTable[] =
  43. {
  44.     {SMIL2ElemA,                "a"               },
  45.     {SMIL2ElemAnchor,           "anchor"          },
  46.     {SMIL2ElemAnimate,          "animate"         },
  47.     {SMIL2ElemAnimateColor,     "animateColor"    },
  48.     {SMIL2ElemAnimateMotion,    "animateMotion"   },
  49.     {SMIL2ElemAnimation,        "animation"       },
  50.     {SMIL2ElemArea,             "area"            },
  51.     {SMIL2ElemAudio,            "audio"           },
  52.     {SMIL2ElemBody,             "body"            },
  53.     {SMIL2ElemBrush,            "brush"           },
  54.     {SMIL2ElemCustomAttributes, "customAttributes"},
  55.     {SMIL2ElemCustomTest,       "customTest"      },
  56.     {SMIL2ElemExcl,             "excl"            },
  57.     {SMIL2ElemHead,             "head"            },
  58.     {SMIL2ElemImg,              "img"             },
  59.     {SMIL2ElemLayout,           "layout"          },
  60.     {SMIL2ElemMeta,             "meta"            },
  61.     {SMIL2ElemMetadata,         "metadata"        },
  62.     {SMIL2ElemPar,              "par"             },
  63.     {SMIL2ElemParam,            "param"           },
  64.     {SMIL2ElemPrefetch,         "prefetch"        },
  65.     {SMIL2ElemPriorityClass,    "priorityClass"   },
  66.     {SMIL2ElemRef,              "ref"             },
  67.     {SMIL2ElemRegPoint,         "regPoint"        },
  68.     {SMIL2ElemRegion,           "region"          },
  69.     {SMIL2ElemRootLayout,       "root-layout"     },
  70.     {SMIL2ElemSeq,              "seq"             },
  71.     {SMIL2ElemSet,              "set"             },
  72.     {SMIL2ElemSmil,             "smil"            },
  73.     {SMIL2ElemSwitch,           "switch"          },
  74.     {SMIL2ElemText,             "text"            },
  75.     {SMIL2ElemTextstream,       "textstream"      },
  76.     {SMIL2ElemTopLayout,        "topLayout"       },
  77.     {SMIL2ElemTransition,       "transition"      },
  78.     {SMIL2ElemVideo,            "video"           },
  79.     {NumSMIL2Elements,          NULL              }  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  80. };
  81. typedef struct
  82. {
  83.     SMIL2Attribute   m_eAttribute;
  84.     const char*      m_pszString;
  85.     XMLAttributeType m_eType;
  86. }  SMILAttributeTable;
  87. static const SMILAttributeTable g_AttributeTable[] =
  88. {
  89.     {SMIL2AttrAbstract,                  "abstract"                 , XMLAttrTypeCDATA},
  90.     {SMIL2AttrAccesskey,                 "accesskey"                , XMLAttrTypeCDATA},
  91.     {SMIL2AttrAccumulate,                "accumulate"               , XMLAttrTypeEnumerated},
  92.     {SMIL2AttrActuate,                   "actuate"                  , XMLAttrTypeEnumerated},
  93.     {SMIL2AttrAdditive,                  "additive"                 , XMLAttrTypeEnumerated},
  94.     {SMIL2AttrAlt,                       "alt"                      , XMLAttrTypeCDATA},
  95.     {SMIL2AttrAttributeName,             "attributeName"            , XMLAttrTypeCDATA},
  96.     {SMIL2AttrAttributeType,             "attributeType"            , XMLAttrTypeCDATA},
  97.     {SMIL2AttrAuthor,                    "author"                   , XMLAttrTypeCDATA},
  98.     {SMIL2AttrBackground_Color,          "background-color"         , XMLAttrTypeCDATA},
  99.     {SMIL2AttrBackgroundColor,           "backgroundColor"          , XMLAttrTypeCDATA},
  100.     {SMIL2AttrBandwidth,                 "bandwidth"                , XMLAttrTypeCDATA},
  101.     {SMIL2AttrBegin,                     "begin"                    , XMLAttrTypeCDATA},
  102.     {SMIL2AttrBorderColor,               "borderColor"              , XMLAttrTypeCDATA},
  103.     {SMIL2AttrBorderWidth,               "borderWidth"              , XMLAttrTypeCDATA},
  104.     {SMIL2AttrBottom,                    "bottom"                   , XMLAttrTypeCDATA},
  105.     {SMIL2AttrBy,                        "by"                       , XMLAttrTypeCDATA},
  106.     {SMIL2AttrCalcMode,                  "calcMode"                 , XMLAttrTypeEnumerated},
  107.     {SMIL2AttrClass,                     "class"                    , XMLAttrTypeCDATA},
  108.     {SMIL2AttrClip_Begin,                "clip-begin"               , XMLAttrTypeCDATA},
  109.     {SMIL2AttrClipBegin,                 "clipBegin"                , XMLAttrTypeCDATA},
  110.     {SMIL2AttrClip_End,                  "clip-end"                 , XMLAttrTypeCDATA},
  111.     {SMIL2AttrClipEnd,                   "clipEnd"                  , XMLAttrTypeCDATA},
  112.     {SMIL2AttrClose,                     "close"                    , XMLAttrTypeEnumerated},
  113.     {SMIL2AttrColor,                     "color"                    , XMLAttrTypeCDATA},
  114.     {SMIL2AttrContent,                   "content"                  , XMLAttrTypeCDATA},
  115.     {SMIL2AttrCoords,                    "coords"                   , XMLAttrTypeCDATA},
  116.     {SMIL2AttrCopyright,                 "copyright"                , XMLAttrTypeCDATA},
  117.     {SMIL2AttrCustomTest,                "customTest"               , XMLAttrTypeIDREF},
  118.     {SMIL2AttrDefaultState,              "defaultState"             , XMLAttrTypeEnumerated},
  119.     {SMIL2AttrDestinationLevel,          "destinationLevel"         , XMLAttrTypeCDATA},
  120.     {SMIL2AttrDestinationPlaystate,      "destinationPlaystate"     , XMLAttrTypeEnumerated},
  121.     {SMIL2AttrDirection,                 "direction"                , XMLAttrTypeEnumerated},
  122.     {SMIL2AttrDur,                       "dur"                      , XMLAttrTypeCDATA},
  123.     {SMIL2AttrEnd,                       "end"                      , XMLAttrTypeCDATA},
  124.     {SMIL2AttrEndProgress,               "endProgress"              , XMLAttrTypeCDATA},
  125.     {SMIL2AttrEndsync,                   "endsync"                  , XMLAttrTypeCDATA},
  126.     {SMIL2AttrErase,                     "erase"                    , XMLAttrTypeEnumerated},
  127.     {SMIL2AttrExternal,                  "external"                 , XMLAttrTypeEnumerated},
  128.     {SMIL2AttrFadeColor,                 "fadeColor"                , XMLAttrTypeCDATA},
  129.     {SMIL2AttrFill,                      "fill"                     , XMLAttrTypeEnumerated},
  130.     {SMIL2AttrFillDefault,               "fillDefault"              , XMLAttrTypeEnumerated},
  131.     {SMIL2AttrFit,                       "fit"                      , XMLAttrTypeEnumerated},
  132.     {SMIL2AttrFragment,                  "fragment"                 , XMLAttrTypeCDATA},
  133.     {SMIL2AttrFrom,                      "from"                     , XMLAttrTypeCDATA},
  134.     {SMIL2AttrHeight,                    "height"                   , XMLAttrTypeCDATA},
  135.     {SMIL2AttrHigher,                    "higher"                   , XMLAttrTypeEnumerated},
  136.     {SMIL2AttrHorzRepeat,                "horzRepeat"               , XMLAttrTypeCDATA},
  137.     {SMIL2AttrHref,                      "href"                     , XMLAttrTypeCDATA},
  138.     {SMIL2AttrId,                        "id"                       , XMLAttrTypeID},
  139.     {SMIL2AttrLeft,                      "left"                     , XMLAttrTypeCDATA},
  140.     {SMIL2AttrLongdesc,                  "longdesc"                 , XMLAttrTypeCDATA},
  141.     {SMIL2AttrLower,                     "lower"                    , XMLAttrTypeEnumerated},
  142.     {SMIL2AttrMax,                       "max"                      , XMLAttrTypeCDATA},
  143.     {SMIL2AttrMediaRepeat,               "mediaRepeat"              , XMLAttrTypeEnumerated},
  144.     {SMIL2AttrMediaSize,                 "mediaSize"                , XMLAttrTypeCDATA},
  145.     {SMIL2AttrMediaTime,                 "mediaTime"                , XMLAttrTypeCDATA},
  146.     {SMIL2AttrMin,                       "min"                      , XMLAttrTypeCDATA},
  147.     {SMIL2AttrName,                      "name"                     , XMLAttrTypeCDATA},
  148.     {SMIL2AttrNohref,                    "nohref"                   , XMLAttrTypeEnumerated},
  149.     {SMIL2AttrOpen,                      "open"                     , XMLAttrTypeEnumerated},
  150.     {SMIL2AttrOrigin,                    "origin"                   , XMLAttrTypeEnumerated},
  151.     {SMIL2AttrOverride,                  "override"                 , XMLAttrTypeEnumerated},
  152.     {SMIL2AttrPauseDisplay,              "pauseDisplay"             , XMLAttrTypeEnumerated},
  153.     {SMIL2AttrPeers,                     "peers"                    , XMLAttrTypeEnumerated},
  154.     {SMIL2AttrReadIndex,                 "readIndex"                , XMLAttrTypeCDATA},
  155.     {SMIL2AttrRegAlign,                  "regAlign"                 , XMLAttrTypeEnumerated},
  156.     {SMIL2AttrRegion,                    "region"                   , XMLAttrTypeCDATA},
  157.     {SMIL2AttrRegionName,                "regionName"               , XMLAttrTypeCDATA},
  158.     {SMIL2AttrRegPoint,                  "regPoint"                 , XMLAttrTypeCDATA},
  159.     {SMIL2AttrRepeat,                    "repeat"                   , XMLAttrTypeCDATA},
  160.     {SMIL2AttrRepeatCount,               "repeatCount"              , XMLAttrTypeCDATA},
  161.     {SMIL2AttrRepeatDur,                 "repeatDur"                , XMLAttrTypeCDATA},
  162.     {SMIL2AttrRestart,                   "restart"                  , XMLAttrTypeEnumerated},
  163.     {SMIL2AttrRestartDefault,            "restartDefault"           , XMLAttrTypeEnumerated},
  164.     {SMIL2AttrRight,                     "right"                    , XMLAttrTypeCDATA},
  165.     {SMIL2AttrSensitivity,               "sensitivity"              , XMLAttrTypeCDATA},
  166.     {SMIL2AttrShape,                     "shape"                    , XMLAttrTypeEnumerated},
  167.     {SMIL2AttrShow,                      "show"                     , XMLAttrTypeEnumerated},
  168.     {SMIL2AttrShowBackground,            "showBackground"           , XMLAttrTypeEnumerated},
  169.     {SMIL2AttrSkip_Content,              "skip-content"             , XMLAttrTypeEnumerated},
  170.     {SMIL2AttrSoundLevel,                "soundLevel"               , XMLAttrTypeCDATA},
  171.     {SMIL2AttrSourceLevel,               "sourceLevel"              , XMLAttrTypeCDATA},
  172.     {SMIL2AttrSourcePlaystate,           "sourcePlaystate"          , XMLAttrTypeEnumerated},
  173.     {SMIL2AttrSrc,                       "src"                      , XMLAttrTypeCDATA},
  174.     {SMIL2AttrStartProgress,             "startProgress"            , XMLAttrTypeCDATA},
  175.     {SMIL2AttrSubtype,                   "subtype"                  , XMLAttrTypeEnumerated},
  176.     {SMIL2AttrSyncBehavior,              "syncBehavior"             , XMLAttrTypeEnumerated},
  177.     {SMIL2AttrSyncBehaviorDefault,       "syncBehaviorDefault"      , XMLAttrTypeEnumerated},
  178.     {SMIL2AttrSyncTolerance,             "syncTolerance"            , XMLAttrTypeCDATA},
  179.     {SMIL2AttrSyncToleranceDefault,      "syncToleranceDefault"     , XMLAttrTypeCDATA},
  180.     {SMIL2AttrSystem_Bitrate,            "system-bitrate"           , XMLAttrTypeCDATA},
  181.     {SMIL2AttrSystem_Captions,           "system-captions"          , XMLAttrTypeEnumerated},
  182.     {SMIL2AttrSystem_Language,           "system-language"          , XMLAttrTypeCDATA},
  183.     {SMIL2AttrSystem_Overdub_Or_Caption, "system-overdub-or-caption", XMLAttrTypeEnumerated},
  184.     {SMIL2AttrSystem_Required,           "system-required"          , XMLAttrTypeCDATA},
  185.     {SMIL2AttrSystem_Screen_Depth,       "system-screen-depth"      , XMLAttrTypeCDATA},
  186.     {SMIL2AttrSystem_Screen_Size,        "system-screen-size"       , XMLAttrTypeCDATA},
  187.     {SMIL2AttrSystemAudioDesc,           "systemAudioDesc"          , XMLAttrTypeEnumerated},
  188.     {SMIL2AttrSystemBitrate,             "systemBitrate"            , XMLAttrTypeCDATA},
  189.     {SMIL2AttrSystemCaptions,            "systemCaptions"           , XMLAttrTypeEnumerated},
  190.     {SMIL2AttrSystemComponent,           "systemComponent"          , XMLAttrTypeCDATA},
  191.     {SMIL2AttrSystemCPU,                 "systemCPU"                , XMLAttrTypeNMTOKEN},
  192.     {SMIL2AttrSystemLanguage,            "systemLanguage"           , XMLAttrTypeCDATA},
  193.     {SMIL2AttrSystemOperatingSystem,     "systemOperatingSystem"    , XMLAttrTypeNMTOKEN},
  194.     {SMIL2AttrSystemOverdubOrSubtitle,   "systemOverdubOrSubtitle"  , XMLAttrTypeEnumerated},
  195.     {SMIL2AttrSystemRequired,            "systemRequired"           , XMLAttrTypeCDATA},
  196.     {SMIL2AttrSystemScreenDepth,         "systemScreenDepth"        , XMLAttrTypeCDATA},
  197.     {SMIL2AttrSystemScreenSize,          "systemScreenSize"         , XMLAttrTypeCDATA},
  198.     {SMIL2AttrTabindex,                  "tabindex"                 , XMLAttrTypeCDATA},
  199.     {SMIL2AttrTarget,                    "target"                   , XMLAttrTypeCDATA},
  200.     {SMIL2AttrTargetElement,             "targetElement"            , XMLAttrTypeIDREF},
  201.     {SMIL2AttrTitle,                     "title"                    , XMLAttrTypeCDATA},
  202.     {SMIL2AttrTo,                        "to"                       , XMLAttrTypeCDATA},
  203.     {SMIL2AttrTop,                       "top"                      , XMLAttrTypeCDATA},
  204.     {SMIL2AttrTransIn,                   "transIn"                  , XMLAttrTypeCDATA},
  205.     {SMIL2AttrTransOut,                  "transOut"                 , XMLAttrTypeCDATA},
  206.     {SMIL2AttrType,                      "type"                     , XMLAttrTypeEnumerated},
  207.     {SMIL2AttrUid,                       "uid"                      , XMLAttrTypeCDATA},
  208.     {SMIL2AttrValue,                     "value"                    , XMLAttrTypeCDATA},
  209.     {SMIL2AttrValues,                    "values"                   , XMLAttrTypeCDATA},
  210.     {SMIL2AttrValuetype,                 "valuetype"                , XMLAttrTypeEnumerated},
  211.     {SMIL2AttrVertRepeat,                "vertRepeat"               , XMLAttrTypeCDATA},
  212.     {SMIL2AttrWidth,                     "width"                    , XMLAttrTypeCDATA},
  213.     {SMIL2AttrXmlBase,                   "xml:base"                 , XMLAttrTypeCDATA},
  214.     {SMIL2AttrXmlLang,                   "xml:lang"                 , XMLAttrTypeNMTOKEN},
  215.     {SMIL2AttrXmlns,                     "xmlns"                    , XMLAttrTypeCDATA},
  216.     {SMIL2AttrZ_Index,                   "z-index"                  , XMLAttrTypeCDATA},
  217.     {NumSMIL2Attributes,                 NULL                       , XMLAttrTypeCDATA}  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  218. };
  219. static const struct EnumAttrTable
  220. {
  221.     SMIL2Attribute m_eAttr;
  222.     const char*    m_pszStr;
  223.     BYTE           m_ucEnum;
  224. } g_EnumAttrTable[] =
  225. {
  226.     {SMIL2AttrAccumulate,                "none",                        AccumulateNone},
  227.     {SMIL2AttrAccumulate,                "sum",                         AccumulateSum},
  228.     {SMIL2AttrActuate,                   "onRequest",                   ActuateOnRequest},
  229.     {SMIL2AttrActuate,                   "onLoad",                      ActuateOnLoad},
  230.     {SMIL2AttrAdditive,                  "replace",                     AdditiveReplace},
  231.     {SMIL2AttrAdditive,                  "sum",                         AdditiveSum},
  232.     {SMIL2AttrCalcMode,                  "discrete",                    CalcModeDiscrete},
  233.     {SMIL2AttrCalcMode,                  "linear",                      CalcModeLinear},
  234.     {SMIL2AttrCalcMode,                  "paced",                       CalcModePaced},
  235.     {SMIL2AttrClose,                     "onRequest",                   ViewportCloseOnRequest},
  236.     {SMIL2AttrClose,                     "whenNotActive",               ViewportCloseWhenNotActive},
  237.     {SMIL2AttrDefaultState,              "true",                        TRUE},
  238.     {SMIL2AttrDefaultState,              "false",                       FALSE},
  239.     {SMIL2AttrDestinationPlaystate,      "play",                        DestinationPlaystatePlay},
  240.     {SMIL2AttrDestinationPlaystate,      "pause",                       DestinationPlaystatePause},
  241.     {SMIL2AttrDestinationPlaystate,      "stop",                        DestinationPlaystateStop},
  242.     {SMIL2AttrDirection,                 "forward",                     TransitionDirectionForward},
  243.     {SMIL2AttrDirection,                 "reverse",                     TransitionDirectionReverse},
  244.     {SMIL2AttrErase,                     "whenDone",                    EraseWhenDone},
  245.     {SMIL2AttrErase,                     "never",                       EraseNever},
  246.     {SMIL2AttrExternal,                  "true",                        TRUE},
  247.     {SMIL2AttrExternal,                  "false",                       FALSE},
  248.     {SMIL2AttrFill,                      "remove",                      FillRemove},
  249.     {SMIL2AttrFill,                      "freeze",                      FillFreeze},
  250.     {SMIL2AttrFill,                      "hold",                        FillHold},
  251.     {SMIL2AttrFill,                      "transition",                  FillTransition},
  252.     {SMIL2AttrFill,                      "auto",                        FillAuto},
  253.     {SMIL2AttrFill,                      "default",                     FillDefault},
  254.     {SMIL2AttrFillDefault,               "remove",                      FillDefaultRemove},
  255.     {SMIL2AttrFillDefault,               "freeze",                      FillDefaultFreeze},
  256.     {SMIL2AttrFillDefault,               "hold",                        FillDefaultHold},
  257.     {SMIL2AttrFillDefault,               "transition",                  FillDefaultTransition},
  258.     {SMIL2AttrFillDefault,               "auto",                        FillDefaultAuto},
  259.     {SMIL2AttrFillDefault,               "inherit",                     FillDefaultInherit},
  260.     {SMIL2AttrFit,                       "fill",                        FitFill},
  261.     {SMIL2AttrFit,                       "hidden",                      FitHidden},
  262.     {SMIL2AttrFit,                       "meet",                        FitMeet},
  263.     {SMIL2AttrFit,                       "scroll",                      FitScroll},
  264.     {SMIL2AttrFit,                       "slice",                       FitSlice},
  265.     {SMIL2AttrHigher,                    "stop",                        HigherStop},
  266.     {SMIL2AttrHigher,                    "pause",                       HigherPause},
  267.     {SMIL2AttrLower,                     "defer",                       LowerDefer},
  268.     {SMIL2AttrLower,                     "never",                       LowerNever},
  269.     {SMIL2AttrMediaRepeat,               "preserve",                    MediaRepeatPreserve},
  270.     {SMIL2AttrMediaRepeat,               "strip",                       MediaRepeatStrip},
  271.     {SMIL2AttrNohref,                    "true",                        TRUE},
  272.     {SMIL2AttrNohref,                    "false",                       FALSE},
  273.     {SMIL2AttrOpen,                      "onStart",                     ViewportOpenOnStart},
  274.     {SMIL2AttrOpen,                      "whenActive",                  ViewportOpenWhenActive},
  275.     {SMIL2AttrOrigin,                    "default",                     0},
  276.     {SMIL2AttrOverride,                  "visible",                     OverrideVisible},
  277.     {SMIL2AttrOverride,                  "hidden",                      OverrideHidden},
  278.     {SMIL2AttrPauseDisplay,              "disable",                     PauseDisplayDisable},
  279.     {SMIL2AttrPauseDisplay,              "hide",                        PauseDisplayHide},
  280.     {SMIL2AttrPauseDisplay,              "show",                        PauseDisplayShow},
  281.     {SMIL2AttrPeers,                     "stop",                        PeersStop},
  282.     {SMIL2AttrPeers,                     "pause",                       PeersPause},
  283.     {SMIL2AttrPeers,                     "defer",                       PeersDefer},
  284.     {SMIL2AttrPeers,                     "never",                       PeersNever},
  285.     {SMIL2AttrRegAlign,                  "topLeft",                     RegAlignTopLeft},
  286.     {SMIL2AttrRegAlign,                  "topMid",                      RegAlignTopMid},
  287.     {SMIL2AttrRegAlign,                  "topRight",                    RegAlignTopRight},
  288.     {SMIL2AttrRegAlign,                  "midLeft",                     RegAlignMidLeft},
  289.     {SMIL2AttrRegAlign,                  "center",                      RegAlignCenter},
  290.     {SMIL2AttrRegAlign,                  "midRight",                    RegAlignMidRight},
  291.     {SMIL2AttrRegAlign,                  "bottomLeft",                  RegAlignBottomLeft},
  292.     {SMIL2AttrRegAlign,                  "bottomMid",                   RegAlignBottomMid},
  293.     {SMIL2AttrRegAlign,                  "bottomRight",                 RegAlignBottomRight},
  294.     {SMIL2AttrRestart,                   "always",                      SmilRestartAlways},
  295.     {SMIL2AttrRestart,                   "whenNotActive",               SmilRestartWhenNotActive},
  296.     {SMIL2AttrRestart,                   "never",                       SmilRestartNever},
  297.     {SMIL2AttrRestart,                   "default",                     SmilRestartDefault},
  298.     {SMIL2AttrRestartDefault,            "inherit",                     SmilRestartInherit},
  299.     {SMIL2AttrRestartDefault,            "always",                      SmilRestartAlways},
  300.     {SMIL2AttrRestartDefault,            "never",                       SmilRestartNever},
  301.     {SMIL2AttrRestartDefault,            "whenNotActive",               SmilRestartWhenNotActive},
  302.     {SMIL2AttrShape,                     "rect",                        ShapeRect},
  303.     {SMIL2AttrShape,                     "circle",                      ShapeCircle},
  304.     {SMIL2AttrShape,                     "poly",                        ShapePoly},
  305.     {SMIL2AttrShape,                     "default",                     ShapeDefault},
  306.     {SMIL2AttrShow,                      "new",                         ShowNew},
  307.     {SMIL2AttrShow,                      "pause",                       ShowPause},
  308.     {SMIL2AttrShow,                      "replace",                     ShowReplace},
  309.     {SMIL2AttrShowBackground,            "always",                      ShowBackgroundAlways},
  310.     {SMIL2AttrShowBackground,            "whenActive",                  ShowBackgroundWhenActive},
  311.     {SMIL2AttrSkip_Content,              "true",                        TRUE},
  312.     {SMIL2AttrSkip_Content,              "false",                       FALSE},
  313.     {SMIL2AttrSourcePlaystate,           "play",                        SourcePlaystatePlay},
  314.     {SMIL2AttrSourcePlaystate,           "pause",                       SourcePlaystatePause},
  315.     {SMIL2AttrSourcePlaystate,           "stop",                        SourcePlaystateStop},
  316.     {SMIL2AttrSubtype,                   "leftToRight",                 TransitionSubtypeLeftToRight},
  317.     {SMIL2AttrSubtype,                   "topToBottom",                 TransitionSubtypeTopToBottom},
  318.     {SMIL2AttrSubtype,                   "topLeft",                     TransitionSubtypeTopLeft},
  319.     {SMIL2AttrSubtype,                   "topRight",                    TransitionSubtypeTopRight},
  320.     {SMIL2AttrSubtype,                   "bottomRight",                 TransitionSubtypeBottomRight},
  321.     {SMIL2AttrSubtype,                   "bottomLeft",                  TransitionSubtypeBottomLeft},
  322.     {SMIL2AttrSubtype,                   "topCenter",                   TransitionSubtypeTopCenter},
  323.     {SMIL2AttrSubtype,                   "rightCenter",                 TransitionSubtypeRightCenter},
  324.     {SMIL2AttrSubtype,                   "bottomCenter",                TransitionSubtypeBottomCenter},
  325.     {SMIL2AttrSubtype,                   "leftCenter",                  TransitionSubtypeLeftCenter},
  326.     {SMIL2AttrSubtype,                   "cornersIn",                   TransitionSubtypeCornersIn},
  327.     {SMIL2AttrSubtype,                   "cornersOut",                  TransitionSubtypeCornersOut},
  328.     {SMIL2AttrSubtype,                   "vertical",                    TransitionSubtypeVertical},
  329.     {SMIL2AttrSubtype,                   "horizontal",                  TransitionSubtypeHorizontal},
  330.     {SMIL2AttrSubtype,                   "diagonalBottomLeft",          TransitionSubtypeDiagonalBottomLeft},
  331.     {SMIL2AttrSubtype,                   "diagonalTopLeft",             TransitionSubtypeDiagonalTopLeft},
  332.     {SMIL2AttrSubtype,                   "doubleBarnDoor",              TransitionSubtypeDoubleBarnDoor},
  333.     {SMIL2AttrSubtype,                   "doubleDiamond",               TransitionSubtypeDoubleDiamond},
  334.     {SMIL2AttrSubtype,                   "down",                        TransitionSubtypeDown},
  335.     {SMIL2AttrSubtype,                   "left",                        TransitionSubtypeLeft},
  336.     {SMIL2AttrSubtype,                   "up",                          TransitionSubtypeUp},
  337.     {SMIL2AttrSubtype,                   "right",                       TransitionSubtypeRight},
  338.     {SMIL2AttrSubtype,                   "rectangle",                   TransitionSubtypeRectangle},
  339.     {SMIL2AttrSubtype,                   "diamond",                     TransitionSubtypeDiamond},
  340.     {SMIL2AttrSubtype,                   "circle",                      TransitionSubtypeCircle},
  341.     {SMIL2AttrSubtype,                   "fourPoint",                   TransitionSubtypeFourPoint},
  342.     {SMIL2AttrSubtype,                   "fivePoint",                   TransitionSubtypeFivePoint},
  343.     {SMIL2AttrSubtype,                   "sixPoint",                    TransitionSubtypeSixPoint},
  344.     {SMIL2AttrSubtype,                   "heart",                       TransitionSubtypeHeart},
  345.     {SMIL2AttrSubtype,                   "keyhole",                     TransitionSubtypeKeyhole},
  346.     {SMIL2AttrSubtype,                   "clockwiseTwelve",             TransitionSubtypeClockwiseTwelve},
  347.     {SMIL2AttrSubtype,                   "clockwiseThree",              TransitionSubtypeClockwiseThree},
  348.     {SMIL2AttrSubtype,                   "clockwiseSix",                TransitionSubtypeClockwiseSix},
  349.     {SMIL2AttrSubtype,                   "clockwiseNine",               TransitionSubtypeClockwiseNine},
  350.     {SMIL2AttrSubtype,                   "twoBladeVertical",            TransitionSubtypeTwoBladeVertical},
  351.     {SMIL2AttrSubtype,                   "twoBladeHorizontal",          TransitionSubtypeTwoBladeHorizontal},
  352.     {SMIL2AttrSubtype,                   "fourBlade",                   TransitionSubtypeFourBlade},
  353.     {SMIL2AttrSubtype,                   "clockwiseTop",                TransitionSubtypeClockwiseTop},
  354.     {SMIL2AttrSubtype,                   "clockwiseRight",              TransitionSubtypeClockwiseRight},
  355.     {SMIL2AttrSubtype,                   "clockwiseBottom",             TransitionSubtypeClockwiseBottom},
  356.     {SMIL2AttrSubtype,                   "clockwiseLeft",               TransitionSubtypeClockwiseLeft},
  357.     {SMIL2AttrSubtype,                   "clockwiseTopLeft",            TransitionSubtypeClockwiseTopLeft},
  358.     {SMIL2AttrSubtype,                   "counterClockwiseBottomLeft",  TransitionSubtypeCounterClockwiseBottomLeft},
  359.     {SMIL2AttrSubtype,                   "clockwiseBottomRight",        TransitionSubtypeClockwiseBottomRight},
  360.     {SMIL2AttrSubtype,                   "counterClockwiseTopRight",    TransitionSubtypeCounterClockwiseTopRight},
  361.     {SMIL2AttrSubtype,                   "centerTop",                   TransitionSubtypeCenterTop},
  362.     {SMIL2AttrSubtype,                   "centerRight",                 TransitionSubtypeCenterRight},
  363.     {SMIL2AttrSubtype,                   "fanOutVertical",              TransitionSubtypeFanOutVertical},
  364.     {SMIL2AttrSubtype,                   "fanOutHorizontal",            TransitionSubtypeFanOutHorizontal},
  365.     {SMIL2AttrSubtype,                   "fanInVertical",               TransitionSubtypeFanInVertical},
  366.     {SMIL2AttrSubtype,                   "fanInHorizontal",             TransitionSubtypeFanInHorizontal},
  367.     {SMIL2AttrSubtype,                   "parallelVertical",            TransitionSubtypeParallelVertical},
  368.     {SMIL2AttrSubtype,                   "parallelHorizontal",          TransitionSubtypeParallelHorizontal},
  369.     {SMIL2AttrSubtype,                   "parallelDiagonal",            TransitionSubtypeParallelDiagonal},
  370.     {SMIL2AttrSubtype,                   "oppositeVertical",            TransitionSubtypeOppositeVertical},
  371.     {SMIL2AttrSubtype,                   "oppositeHorizontal",          TransitionSubtypeOppositeHorizontal},
  372.     {SMIL2AttrSubtype,                   "parallelDiagonalTopLeft",     TransitionSubtypeParallelDiagonalTopLeft},
  373.     {SMIL2AttrSubtype,                   "parallelDiagonalBottomLeft",  TransitionSubtypeParallelDiagonalBottomLeft},
  374.     {SMIL2AttrSubtype,                   "top",                         TransitionSubtypeTop},
  375.     {SMIL2AttrSubtype,                   "bottom",                      TransitionSubtypeBottom},
  376.     {SMIL2AttrSubtype,                   "topLeftHorizontal",           TransitionSubtypeTopLeftHorizontal},
  377.     {SMIL2AttrSubtype,                   "topLeftVertical",             TransitionSubtypeTopLeftVertical},
  378.     {SMIL2AttrSubtype,                   "topLeftDiagonal",             TransitionSubtypeTopLeftDiagonal},
  379.     {SMIL2AttrSubtype,                   "topRightDiagonal",            TransitionSubtypeTopRightDiagonal},
  380.     {SMIL2AttrSubtype,                   "bottomRightDiagonal",         TransitionSubtypeBottomRightDiagonal},
  381.     {SMIL2AttrSubtype,                   "bottomLeftDiagonal",          TransitionSubtypeBottomLeftDiagonal},
  382.     {SMIL2AttrSubtype,                   "topLeftClockwise",            TransitionSubtypeTopLeftClockwise},
  383.     {SMIL2AttrSubtype,                   "topRightClockwise",           TransitionSubtypeTopRightClockwise},
  384.     {SMIL2AttrSubtype,                   "bottomRightClockwise",        TransitionSubtypeBottomRightClockwise},
  385.     {SMIL2AttrSubtype,                   "bottomLeftClockwise",         TransitionSubtypeBottomLeftClockwise},
  386.     {SMIL2AttrSubtype,                   "topLeftCounterClockwise",     TransitionSubtypeTopLeftCounterClockwise},
  387.     {SMIL2AttrSubtype,                   "topRightCounterClockwise",    TransitionSubtypeTopRightCounterClockwise},
  388.     {SMIL2AttrSubtype,                   "bottomRightCounterClockwise", TransitionSubtypeBottomRightCounterClockwise},
  389.     {SMIL2AttrSubtype,                   "bottomLeftCounterClockwise",  TransitionSubtypeBottomLeftCounterClockwise},
  390.     {SMIL2AttrSubtype,                   "verticalTopSame",             TransitionSubtypeVerticalTopSame},
  391.     {SMIL2AttrSubtype,                   "verticalBottomSame",          TransitionSubtypeVerticalBottomSame},
  392.     {SMIL2AttrSubtype,                   "verticalTopLeftOpposite",     TransitionSubtypeVerticalTopLeftOpposite},
  393.     {SMIL2AttrSubtype,                   "verticalBottomLeftOpposite",  TransitionSubtypeVerticalBottomLeftOpposite},
  394.     {SMIL2AttrSubtype,                   "horizontalLeftSame",          TransitionSubtypeHorizontalLeftSame},
  395.     {SMIL2AttrSubtype,                   "horizontalRightSame",         TransitionSubtypeHorizontalRightSame},
  396.     {SMIL2AttrSubtype,                   "horizontalTopLeftOpposite",   TransitionSubtypeHorizontalTopLeftOpposite},
  397.     {SMIL2AttrSubtype,                   "horizontalTopRightOpposite",  TransitionSubtypeHorizontalTopRightOpposite},
  398.     {SMIL2AttrSubtype,                   "diagonalBottomLeftOpposite",  TransitionSubtypeDiagonalBottomLeftOpposite},
  399.     {SMIL2AttrSubtype,                   "diagonalTopLeftOpposite",     TransitionSubtypeDiagonalTopLeftOpposite},
  400.     {SMIL2AttrSubtype,                   "twoBoxTop",                   TransitionSubtypeTwoBoxTop},
  401.     {SMIL2AttrSubtype,                   "twoBoxBottom",                TransitionSubtypeTwoBoxBottom},
  402.     {SMIL2AttrSubtype,                   "twoBoxLeft",                  TransitionSubtypeTwoBoxLeft},
  403.     {SMIL2AttrSubtype,                   "twoBoxRight",                 TransitionSubtypeTwoBoxRight},
  404.     {SMIL2AttrSubtype,                   "fourBoxVertical",             TransitionSubtypeFourBoxVertical},
  405.     {SMIL2AttrSubtype,                   "fourBoxHorizontal",           TransitionSubtypeFourBoxHorizontal},
  406.     {SMIL2AttrSubtype,                   "verticalLeft",                TransitionSubtypeVerticalLeft},
  407.     {SMIL2AttrSubtype,                   "verticalRight",               TransitionSubtypeVerticalRight},
  408.     {SMIL2AttrSubtype,                   "horizontalLeft",              TransitionSubtypeHorizontalLeft},
  409.     {SMIL2AttrSubtype,                   "horizontalRight",             TransitionSubtypeHorizontalRight},
  410.     {SMIL2AttrSubtype,                   "fromLeft",                    TransitionSubtypeFromLeft},
  411.     {SMIL2AttrSubtype,                   "fromTop",                     TransitionSubtypeFromTop},
  412.     {SMIL2AttrSubtype,                   "fromRight",                   TransitionSubtypeFromRight},
  413.     {SMIL2AttrSubtype,                   "fromBottom",                  TransitionSubtypeFromBottom},
  414.     {SMIL2AttrSubtype,                   "crossfade",                   TransitionSubtypeCrossfade},
  415.     {SMIL2AttrSubtype,                   "fadeToColor",                 TransitionSubtypeFadeToColor},
  416.     {SMIL2AttrSubtype,                   "fadeFromColor",               TransitionSubtypeFadeFromColor},
  417.     {SMIL2AttrSyncBehavior,              "canSlip",                     SmilSyncBehaviorCanSlip},
  418.     {SMIL2AttrSyncBehavior,              "locked",                      SmilSyncBehaviorLocked},
  419.     {SMIL2AttrSyncBehavior,              "independent",                 SmilSyncBehaviorIndependent},
  420.     {SMIL2AttrSyncBehavior,              "default",                     SmilSyncBehaviorDefault},
  421.     {SMIL2AttrSyncBehaviorDefault,       "canSlip",                     SmilSyncBehaviorCanSlip},
  422.     {SMIL2AttrSyncBehaviorDefault,       "locked",                      SmilSyncBehaviorLocked},
  423.     {SMIL2AttrSyncBehaviorDefault,       "independent",                 SmilSyncBehaviorIndependent},
  424.     {SMIL2AttrSyncBehaviorDefault,       "inherit",                     SmilSyncBehaviorInherit},
  425.     {SMIL2AttrSystem_Captions,           "on",                          SystemCaptionsOn},
  426.     {SMIL2AttrSystem_Captions,           "off",                         SystemCaptionsOff},
  427.     {SMIL2AttrSystem_Overdub_Or_Caption, "overdub",                     OverdubOrCaptionOverdub},
  428.     {SMIL2AttrSystem_Overdub_Or_Caption, "caption",                     OverdubOrCaptionCaption},
  429.     {SMIL2AttrSystemAudioDesc,           "on",                          AudioDescOn},
  430.     {SMIL2AttrSystemAudioDesc,           "off",                         AudioDescOff},
  431.     {SMIL2AttrSystemCaptions,            "on",                          SystemCaptionsOn},
  432.     {SMIL2AttrSystemCaptions,            "off",                         SystemCaptionsOff},
  433.     {SMIL2AttrSystemOverdubOrSubtitle,   "overdub",                     OverdubOrSubtitleOverdub},
  434.     {SMIL2AttrSystemOverdubOrSubtitle,   "subtitle",                    OverdubOrSubtitleSubtitle},
  435.     {SMIL2AttrType,                      "barWipe",                     TransitionTypeBarWipe},
  436.     {SMIL2AttrType,                      "boxWipe",                     TransitionTypeBoxWipe},
  437.     {SMIL2AttrType,                      "fourBoxWipe",                 TransitionTypeFourBoxWipe},
  438.     {SMIL2AttrType,                      "barnDoorWipe",                TransitionTypeBarnDoorWipe},
  439.     {SMIL2AttrType,                      "diagonalWipe",                TransitionTypeDiagonalWipe},
  440.     {SMIL2AttrType,                      "bowTieWipe",                  TransitionTypeBowTieWipe},
  441.     {SMIL2AttrType,                      "miscDiagonalWipe",            TransitionTypeMiscDiagonalWipe},
  442.     {SMIL2AttrType,                      "veeWipe",                     TransitionTypeVeeWipe},
  443.     {SMIL2AttrType,                      "barnVeeWipe",                 TransitionTypeBarnVeeWipe},
  444.     {SMIL2AttrType,                      "zigZagWipe",                  TransitionTypeZigZagWipe},
  445.     {SMIL2AttrType,                      "barnZigZagWipe",              TransitionTypeBarnZigZagWipe},
  446.     {SMIL2AttrType,                      "irisWipe",                    TransitionTypeIrisWipe},
  447.     {SMIL2AttrType,                      "triangleWipe",                TransitionTypeTriangleWipe},
  448.     {SMIL2AttrType,                      "arrowHeadWipe",               TransitionTypeArrowHeadWipe},
  449.     {SMIL2AttrType,                      "pentagonWipe",                TransitionTypePentagonWipe},
  450.     {SMIL2AttrType,                      "hexagonWipe",                 TransitionTypeHexagonWipe},
  451.     {SMIL2AttrType,                      "ellipseWipe",                 TransitionTypeEllipseWipe},
  452.     {SMIL2AttrType,                      "eyeWipe",                     TransitionTypeEyeWipe},
  453.     {SMIL2AttrType,                      "roundRectWipe",               TransitionTypeRoundRectWipe},
  454.     {SMIL2AttrType,                      "starWipe",                    TransitionTypeStarWipe},
  455.     {SMIL2AttrType,                      "miscShapeWipe",               TransitionTypeMiscShapeWipe},
  456.     {SMIL2AttrType,                      "clockWipe",                   TransitionTypeClockWipe},
  457.     {SMIL2AttrType,                      "pinWheelWipe",                TransitionTypePinWheelWipe},
  458.     {SMIL2AttrType,                      "singleSweepWipe",             TransitionTypeSingleSweepWipe},
  459.     {SMIL2AttrType,                      "fanWipe",                     TransitionTypeFanWipe},
  460.     {SMIL2AttrType,                      "doubleFanWipe",               TransitionTypeDoubleFanWipe},
  461.     {SMIL2AttrType,                      "doubleSweepWipe",             TransitionTypeDoubleSweepWipe},
  462.     {SMIL2AttrType,                      "saloonDoorWipe",              TransitionTypeSaloonDoorWipe},
  463.     {SMIL2AttrType,                      "windshieldWipe",              TransitionTypeWindshieldWipe},
  464.     {SMIL2AttrType,                      "snakeWipe",                   TransitionTypeSnakeWipe},
  465.     {SMIL2AttrType,                      "spiralWipe",                  TransitionTypeSpiralWipe},
  466.     {SMIL2AttrType,                      "parallelSnakesWipe",          TransitionTypeParallelSnakesWipe},
  467.     {SMIL2AttrType,                      "boxSnakesWipe",               TransitionTypeBoxSnakesWipe},
  468.     {SMIL2AttrType,                      "waterfallWipe",               TransitionTypeWaterfallWipe},
  469.     {SMIL2AttrType,                      "pushWipe",                    TransitionTypePushWipe},
  470.     {SMIL2AttrType,                      "slideWipe",                   TransitionTypeSlideWipe},
  471.     {SMIL2AttrType,                      "fade",                        TransitionTypeFade},
  472.     {SMIL2AttrValuetype,                 "data",                        ValuetypeData},
  473.     {SMIL2AttrValuetype,                 "ref",                         ValuetypeRef},
  474.     {SMIL2AttrValuetype,                 "object",                      ValuetypeObject},
  475.     {SMIL2AttrRNDelivery,                "client",                      DeliveryClient},
  476.     {SMIL2AttrRNDelivery,                "server",                      DeliveryServer},
  477.     {SMIL2AttrRNHandledBy,               "_rpbrowser",                  HandledByRPBrowser},
  478.     {SMIL2AttrRNHandledBy,               "_rpcontextwin",               HandledByRPContextWin},
  479.     {SMIL2AttrRNHandledBy,               "_rpengine",                   HandledByRPEngine},
  480.     {SMIL2AttrRNHandledBy,               "auto",                        HandledByAuto},
  481.     {SMIL2AttrRNContextWindow,           "auto",                        ContextWindowAuto},
  482.     {SMIL2AttrRNContextWindow,           "openAtStart",                 ContextWindowOpenAtStart},
  483.     {SMIL2AttrRNResizeBehavior,          "zoom",                        ResizeZoom},
  484.     {SMIL2AttrRNResizeBehavior,          "percentOnly",                 ResizePercentOnly},
  485.     {XMLEventsAttrPhase,                 "capture",                     PhaseCapture},
  486.     {XMLEventsAttrPhase,                 "default",                     PhaseDefault},
  487.     {XMLEventsAttrPropagate,             "stop",                        PropagateStop},
  488.     {XMLEventsAttrPropagate,             "continue",                    PropagateContinue},
  489.     {XMLEventsAttrDefaultAction,         "cancel",                      DefaultActionCancel},
  490.     {XMLEventsAttrDefaultAction,         "perform",                     DefaultActionPerform},
  491.     {SMIL2AttrRNAccessErrorBehavior,     "inherit",                     AccessErrorBehaviorInherit},
  492.     {SMIL2AttrRNAccessErrorBehavior,     "continue",                    AccessErrorBehaviorContinue},
  493.     {SMIL2AttrRNAccessErrorBehavior,     "stop",                        AccessErrorBehaviorStop},
  494.     {NumSMIL2Attributes,                 NULL,                          0}
  495. };
  496. #if defined(HELIX_FEATURE_SMIL2_VALIDATION)
  497. static const SMIL2Element g_ElementEnumMap[] =
  498. {
  499.     SMIL2ElemA,
  500.     SMIL2ElemAnchor,
  501.     SMIL2ElemAnimate,
  502.     SMIL2ElemAnimateColor,
  503.     SMIL2ElemAnimateMotion,
  504.     SMIL2ElemAnimation,
  505.     SMIL2ElemArea,
  506.     SMIL2ElemAudio,
  507.     SMIL2ElemBody,
  508.     SMIL2ElemBrush,
  509.     SMIL2ElemCustomAttributes,
  510.     SMIL2ElemCustomTest,
  511.     SMIL2ElemExcl,
  512.     SMIL2ElemHead,
  513.     SMIL2ElemImg,
  514.     SMIL2ElemLayout,
  515.     SMIL2ElemMeta,
  516.     SMIL2ElemMetadata,
  517.     SMIL2ElemPar,
  518.     SMIL2ElemParam,
  519.     SMIL2ElemPrefetch,
  520.     SMIL2ElemPriorityClass,
  521.     SMIL2ElemRef,
  522.     SMIL2ElemRegPoint,
  523.     SMIL2ElemRegion,
  524.     SMIL2ElemRootLayout,
  525.     SMIL2ElemSeq,
  526.     SMIL2ElemSet,
  527.     SMIL2ElemSmil,
  528.     SMIL2ElemSwitch,
  529.     SMIL2ElemText,
  530.     SMIL2ElemTextstream,
  531.     SMIL2ElemTopLayout,
  532.     SMIL2ElemTransition,
  533.     SMIL2ElemVideo,
  534.     SMIL2ElemRNParam,
  535.     SMIL2ElemRNRendererList,
  536.     SMIL2ElemRNRenderer,
  537.     XMLEventsElemListener
  538. };
  539. static const SMILElementTable g_ExtElementTable[] =
  540. {
  541.     {SMIL2ElemRNParam,          "param"           },
  542.     {SMIL2ElemRNRendererList,   "renderer-list"   },
  543.     {SMIL2ElemRNRenderer,       "renderer"        },
  544.     {XMLEventsElemListener,     "listener"        },
  545.     {NumSMIL2Elements,          NULL              }  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  546. };
  547. static const SMILAttributeTable g_ExtAttributeTable[] =
  548. {
  549.     {SMIL2AttrRNBackgroundOpacity,       "backgroundOpacity"        , XMLAttrTypeCDATA},
  550.     {SMIL2AttrRNChromaKey,               "chromaKey"                , XMLAttrTypeCDATA},
  551.     {SMIL2AttrRNChromaKeyOpacity,        "chromaKeyOpacity"         , XMLAttrTypeCDATA},
  552.     {SMIL2AttrRNChromaKeyTolerance,      "chromaKeyTolerance"       , XMLAttrTypeCDATA},
  553.     {SMIL2AttrRNMediaOpacity,            "mediaOpacity"             , XMLAttrTypeCDATA},
  554.     {SMIL2AttrRNOpacity,                 "opacity"                  , XMLAttrTypeCDATA},
  555.     {SMIL2AttrRNDelivery,                "delivery"                 , XMLAttrTypeEnumerated},
  556.     {SMIL2AttrRNHandledBy,               "handledBy"                , XMLAttrTypeEnumerated},
  557.     {SMIL2AttrRNSendTo,                  "sendTo"                   , XMLAttrTypeCDATA},
  558.     {SMIL2AttrRNContextWindow,           "contextWindow"            , XMLAttrTypeEnumerated},
  559.     {SMIL2AttrRNSystemComponent,         "systemComponent"          , XMLAttrTypeCDATA},
  560.     {SMIL2AttrRNResizeBehavior,          "resizeBehavior"           , XMLAttrTypeEnumerated},
  561.     {XMLEventsAttrEvent,                 "event"                    , XMLAttrTypeCDATA},
  562.     {XMLEventsAttrObserver,              "observer"                 , XMLAttrTypeCDATA},
  563.     {XMLEventsAttrTarget,                "target"                   , XMLAttrTypeCDATA},
  564.     {XMLEventsAttrHandler,               "handler"                  , XMLAttrTypeCDATA},
  565.     {XMLEventsAttrPhase,                 "phase"                    , XMLAttrTypeEnumerated},
  566.     {XMLEventsAttrPropagate,             "propagate"                , XMLAttrTypeEnumerated},
  567.     {XMLEventsAttrDefaultAction,         "defaultAction"            , XMLAttrTypeEnumerated},
  568.     {SMIL2AttrRNAccessErrorBehavior,     "accessErrorBehavior"      , XMLAttrTypeEnumerated},
  569.     {NumSMIL2Attributes,                 NULL                       , XMLAttrTypeCDATA}  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  570. };
  571. static const BYTE g_AttrCollections[] =
  572. {
  573.     SMIL2AttrCollCore, 6,
  574.         SMIL2AttrAlt,
  575.         SMIL2AttrClass,
  576.         SMIL2AttrId,
  577.         SMIL2AttrLongdesc,
  578.         SMIL2AttrTitle,
  579.         SMIL2AttrXmlBase,
  580.     SMIL2AttrCollI18N, 1,
  581.         SMIL2AttrXmlLang,
  582.     SMIL2AttrCollBasicTiming, 8,
  583.         SMIL2AttrBegin,
  584.         SMIL2AttrDur,
  585.         SMIL2AttrEnd,
  586.         SMIL2AttrRepeat,
  587.         SMIL2AttrRepeatCount,
  588.         SMIL2AttrRepeatDur,
  589.         SMIL2AttrMin,
  590.         SMIL2AttrMax,
  591.     SMIL2AttrCollTest, 18,
  592.         SMIL2AttrSystem_Bitrate,
  593.         SMIL2AttrSystem_Captions,
  594.         SMIL2AttrSystem_Language,
  595.         SMIL2AttrSystem_Overdub_Or_Caption,
  596.         SMIL2AttrSystem_Screen_Depth,
  597.         SMIL2AttrSystem_Required,
  598.         SMIL2AttrSystem_Screen_Size,
  599.         SMIL2AttrSystemAudioDesc,
  600.         SMIL2AttrSystemBitrate,
  601.         SMIL2AttrSystemCaptions,
  602.         SMIL2AttrSystemComponent,
  603.         SMIL2AttrSystemCPU,
  604.         SMIL2AttrSystemLanguage,
  605.         SMIL2AttrSystemOperatingSystem,
  606.         SMIL2AttrSystemOverdubOrSubtitle,
  607.         SMIL2AttrSystemRequired,
  608.         SMIL2AttrSystemScreenDepth,
  609.         SMIL2AttrSystemScreenSize,
  610.     SMIL2AttrCollTiming, 16,
  611.         SMIL2AttrBegin,
  612.         SMIL2AttrDur,
  613.         SMIL2AttrEnd,
  614.         SMIL2AttrFillDefault,
  615.         SMIL2AttrMax,
  616.         SMIL2AttrMin,
  617.         SMIL2AttrRepeat,
  618.         SMIL2AttrRepeatCount,
  619.         SMIL2AttrRepeatDur,
  620.         SMIL2AttrRestart,
  621.         SMIL2AttrRestartDefault,
  622.         SMIL2AttrSyncBehavior,
  623.         SMIL2AttrSyncBehaviorDefault,
  624.         SMIL2AttrSyncTolerance,
  625.         SMIL2AttrSyncToleranceDefault,
  626.         SMIL2AttrRNAccessErrorBehavior,
  627.     SMIL2AttrCollSubregion, 12,
  628.         SMIL2AttrBackground_Color,
  629.         SMIL2AttrBackgroundColor,
  630.         SMIL2AttrBottom,
  631.         SMIL2AttrFit,
  632.         SMIL2AttrHeight,
  633.         SMIL2AttrLeft,
  634.         SMIL2AttrRegPoint,
  635.         SMIL2AttrRegAlign,
  636.         SMIL2AttrRight,
  637.         SMIL2AttrTop,
  638.         SMIL2AttrWidth,
  639.         SMIL2AttrZ_Index,
  640.     SMIL2AttrCollMediaElement, 27,
  641.         SMIL2AttrAbstract,
  642.         SMIL2AttrAuthor,
  643.         SMIL2AttrBackground_Color,
  644.         SMIL2AttrBackgroundColor,
  645.         SMIL2AttrClip_Begin,
  646.         SMIL2AttrClip_End,
  647.         SMIL2AttrClipBegin,
  648.         SMIL2AttrClipEnd,
  649.         SMIL2AttrCopyright,
  650.         SMIL2AttrCustomTest,
  651.         SMIL2AttrErase,
  652.         SMIL2AttrFill,
  653.         SMIL2AttrMediaRepeat,
  654.         SMIL2AttrReadIndex,
  655.         SMIL2AttrRegion,
  656.         SMIL2AttrSensitivity,
  657.         SMIL2AttrSrc,
  658.         SMIL2AttrTabindex,
  659.         SMIL2AttrTransIn,
  660.         SMIL2AttrTransOut,
  661.         SMIL2AttrType,
  662.         SMIL2AttrRNBackgroundOpacity,
  663.         SMIL2AttrRNChromaKey,
  664.         SMIL2AttrRNChromaKeyOpacity,
  665.         SMIL2AttrRNChromaKeyTolerance,
  666.         SMIL2AttrRNMediaOpacity,
  667.         XMLEventsAttrHandler,
  668.     NumSMIL2AttributeCollections  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  669. };
  670. static const BYTE g_LegalAttr[] =
  671. {
  672.     SMIL2ElemA, 4, 13,
  673.         SMIL2AttrCollCore,
  674.         SMIL2AttrCollI18N,
  675.         SMIL2AttrCollBasicTiming,
  676.         SMIL2AttrCollTest,
  677.         SMIL2AttrAccesskey,
  678.         SMIL2AttrActuate,
  679.         SMIL2AttrCustomTest,
  680.         SMIL2AttrDestinationLevel,
  681.         SMIL2AttrDestinationPlaystate,
  682.         SMIL2AttrExternal,
  683.         SMIL2AttrHref,
  684.         SMIL2AttrShow,
  685.         SMIL2AttrSourceLevel,
  686.         SMIL2AttrSourcePlaystate,
  687.         SMIL2AttrTabindex,
  688.         SMIL2AttrTarget,
  689.         SMIL2AttrRNSendTo,
  690.     SMIL2ElemAnchor, 4, 18,
  691.         SMIL2AttrCollCore,
  692.         SMIL2AttrCollI18N,
  693.         SMIL2AttrCollBasicTiming,
  694.         SMIL2AttrCollTest,
  695.         SMIL2AttrAccesskey,
  696.         SMIL2AttrActuate,
  697.         SMIL2AttrCoords,
  698.         SMIL2AttrCustomTest,
  699.         SMIL2AttrDestinationLevel,
  700.         SMIL2AttrDestinationPlaystate,
  701.         SMIL2AttrExternal,
  702.         SMIL2AttrFragment,
  703.         SMIL2AttrHref,
  704.         SMIL2AttrNohref,
  705.         SMIL2AttrShape,
  706.         SMIL2AttrShow,
  707.         SMIL2AttrSourceLevel,
  708.         SMIL2AttrSourcePlaystate,
  709.         SMIL2AttrTabindex,
  710.         SMIL2AttrTarget,
  711.         SMIL2AttrTitle,
  712.         SMIL2AttrRNSendTo,
  713.     SMIL2ElemAnimate, 4, 14,
  714.         SMIL2AttrCollCore,
  715.         SMIL2AttrCollI18N,
  716.         SMIL2AttrCollBasicTiming,
  717.         SMIL2AttrCollTest,
  718.         SMIL2AttrAccumulate,
  719.         SMIL2AttrAdditive,
  720.         SMIL2AttrAttributeName,
  721.         SMIL2AttrAttributeType,
  722.         SMIL2AttrBy,
  723.         SMIL2AttrCalcMode,
  724.         SMIL2AttrCustomTest,
  725.         SMIL2AttrFill,
  726.         SMIL2AttrFillDefault,
  727.         SMIL2AttrFrom,
  728.         SMIL2AttrSkip_Content,
  729.         SMIL2AttrTargetElement,
  730.         SMIL2AttrTo,
  731.         SMIL2AttrValues,
  732.     SMIL2ElemAnimateColor, 4, 14,
  733.         SMIL2AttrCollCore,
  734.         SMIL2AttrCollI18N,
  735.         SMIL2AttrCollBasicTiming,
  736.         SMIL2AttrCollTest,
  737.         SMIL2AttrAccumulate,
  738.         SMIL2AttrAdditive,
  739.         SMIL2AttrAttributeName,
  740.         SMIL2AttrAttributeType,
  741.         SMIL2AttrBy,
  742.         SMIL2AttrCalcMode,
  743.         SMIL2AttrCustomTest,
  744.         SMIL2AttrFill,
  745.         SMIL2AttrFillDefault,
  746.         SMIL2AttrFrom,
  747.         SMIL2AttrSkip_Content,
  748.         SMIL2AttrTargetElement,
  749.         SMIL2AttrTo,
  750.         SMIL2AttrValues,
  751.     SMIL2ElemAnimateMotion, 4, 13,
  752.         SMIL2AttrCollCore,
  753.         SMIL2AttrCollI18N,
  754.         SMIL2AttrCollBasicTiming,
  755.         SMIL2AttrCollTest,
  756.         SMIL2AttrAccumulate,
  757.         SMIL2AttrAdditive,
  758.         SMIL2AttrBy,
  759.         SMIL2AttrCalcMode,
  760.         SMIL2AttrCustomTest,
  761.         SMIL2AttrFill,
  762.         SMIL2AttrFillDefault,
  763.         SMIL2AttrFrom,
  764.         SMIL2AttrOrigin,
  765.         SMIL2AttrSkip_Content,
  766.         SMIL2AttrTargetElement,
  767.         SMIL2AttrTo,
  768.         SMIL2AttrValues,
  769.     SMIL2ElemAnimation, 6, 0,
  770.         SMIL2AttrCollCore,
  771.         SMIL2AttrCollI18N,
  772.         SMIL2AttrCollTiming,
  773.         SMIL2AttrCollTest,
  774.         SMIL2AttrCollSubregion,
  775.         SMIL2AttrCollMediaElement,
  776.     SMIL2ElemArea, 4, 18,
  777.         SMIL2AttrCollCore,
  778.         SMIL2AttrCollI18N,
  779.         SMIL2AttrCollBasicTiming,
  780.         SMIL2AttrCollTest,
  781.         SMIL2AttrAccesskey,
  782.         SMIL2AttrActuate,
  783.         SMIL2AttrCoords,
  784.         SMIL2AttrCustomTest,
  785.         SMIL2AttrDestinationLevel,
  786.         SMIL2AttrDestinationPlaystate,
  787.         SMIL2AttrExternal,
  788.         SMIL2AttrFragment,
  789.         SMIL2AttrHref,
  790.         SMIL2AttrNohref,
  791.         SMIL2AttrShape,
  792.         SMIL2AttrShow,
  793.         SMIL2AttrSourceLevel,
  794.         SMIL2AttrSourcePlaystate,
  795.         SMIL2AttrTabindex,
  796.         SMIL2AttrTarget,
  797.         SMIL2AttrTitle,
  798.         SMIL2AttrRNSendTo,
  799.     SMIL2ElemAudio, 6, 0,
  800.         SMIL2AttrCollCore,
  801.         SMIL2AttrCollI18N,
  802.         SMIL2AttrCollTiming,
  803.         SMIL2AttrCollTest,
  804.         SMIL2AttrCollSubregion,
  805.         SMIL2AttrCollMediaElement,
  806.     SMIL2ElemBody, 3, 4,
  807.         SMIL2AttrCollCore,
  808.         SMIL2AttrCollI18N,
  809.         SMIL2AttrCollTiming,
  810.         SMIL2AttrAbstract,
  811.         SMIL2AttrAuthor,
  812.         SMIL2AttrCopyright,
  813.         SMIL2AttrFill,
  814.     SMIL2ElemBrush, 5, 12,
  815.         SMIL2AttrCollCore,
  816.         SMIL2AttrCollI18N,
  817.         SMIL2AttrCollTiming,
  818.         SMIL2AttrCollTest,
  819.         SMIL2AttrCollSubregion,
  820.         SMIL2AttrAbstract,
  821.         SMIL2AttrAuthor,
  822.         SMIL2AttrColor,
  823.         SMIL2AttrCopyright,
  824.         SMIL2AttrCustomTest,
  825.         SMIL2AttrErase,
  826.         SMIL2AttrFill,
  827.         SMIL2AttrRegion,
  828.         SMIL2AttrTabindex,
  829.         SMIL2AttrTransIn,
  830.         SMIL2AttrTransOut,
  831.         SMIL2AttrRNMediaOpacity,
  832.     SMIL2ElemCustomAttributes, 3, 1,
  833.         SMIL2AttrCollCore,
  834.         SMIL2AttrCollI18N,
  835.         SMIL2AttrCollTest,
  836.         SMIL2AttrSkip_Content,
  837.     SMIL2ElemCustomTest, 2, 4,
  838.         SMIL2AttrCollCore,
  839.         SMIL2AttrCollI18N,
  840.         SMIL2AttrDefaultState,
  841.         SMIL2AttrOverride,
  842.         SMIL2AttrSkip_Content,
  843.         SMIL2AttrUid,
  844.     SMIL2ElemExcl, 4, 8,
  845.         SMIL2AttrCollCore,
  846.         SMIL2AttrCollI18N,
  847.         SMIL2AttrCollTiming,
  848.         SMIL2AttrCollTest,
  849.         SMIL2AttrAbstract,
  850.         SMIL2AttrAuthor,
  851.         SMIL2AttrCopyright,
  852.         SMIL2AttrCustomTest,
  853.         SMIL2AttrEndsync,
  854.         SMIL2AttrFill,
  855.         SMIL2AttrRegion,
  856.         SMIL2AttrSkip_Content,
  857.     SMIL2ElemHead, 2, 0,
  858.         SMIL2AttrCollCore,
  859.         SMIL2AttrCollI18N,
  860.     SMIL2ElemImg, 6, 0,
  861.         SMIL2AttrCollCore,
  862.         SMIL2AttrCollI18N,
  863.         SMIL2AttrCollTiming,
  864.         SMIL2AttrCollTest,
  865.         SMIL2AttrCollSubregion,
  866.         SMIL2AttrCollMediaElement,
  867.     SMIL2ElemLayout, 3, 2,
  868.         SMIL2AttrCollCore,
  869.         SMIL2AttrCollI18N,
  870.         SMIL2AttrCollTest,
  871.         SMIL2AttrType,
  872.         SMIL2AttrCustomTest,
  873.     SMIL2ElemMeta, 2, 3,
  874.         SMIL2AttrCollCore,
  875.         SMIL2AttrCollI18N,
  876.         SMIL2AttrContent,
  877.         SMIL2AttrName,
  878.         SMIL2AttrSkip_Content,
  879.     SMIL2ElemMetadata, 2, 1,
  880.         SMIL2AttrCollCore,
  881.         SMIL2AttrCollI18N,
  882.         SMIL2AttrSkip_Content,
  883.     SMIL2ElemPar, 4, 7,
  884.         SMIL2AttrCollCore,
  885.         SMIL2AttrCollI18N,
  886.         SMIL2AttrCollTiming,
  887.         SMIL2AttrCollTest,
  888.         SMIL2AttrAbstract,
  889.         SMIL2AttrAuthor,
  890.         SMIL2AttrCopyright,
  891.         SMIL2AttrCustomTest,
  892.         SMIL2AttrEndsync,
  893.         SMIL2AttrFill,
  894.         SMIL2AttrRegion,
  895.     SMIL2ElemParam, 3, 6,
  896.         SMIL2AttrCollCore,
  897.         SMIL2AttrCollI18N,
  898.         SMIL2AttrCollTest,
  899.         SMIL2AttrName,
  900.         SMIL2AttrSkip_Content,
  901.         SMIL2AttrType,
  902.         SMIL2AttrValue,
  903.         SMIL2AttrValuetype,
  904.         SMIL2AttrRNDelivery,
  905.     SMIL2ElemPrefetch, 4, 11,
  906.         SMIL2AttrCollCore,
  907.         SMIL2AttrCollI18N,
  908.         SMIL2AttrCollTest,
  909.         SMIL2AttrCollTiming,
  910.         SMIL2AttrBandwidth,
  911.         SMIL2AttrClip_Begin,
  912.         SMIL2AttrClip_End,
  913.         SMIL2AttrClipBegin,
  914.         SMIL2AttrClipEnd,
  915.         SMIL2AttrCustomTest,
  916.         SMIL2AttrMediaSize,
  917.         SMIL2AttrMediaTime,
  918.         SMIL2AttrSkip_Content,
  919.         SMIL2AttrSrc,
  920.         SMIL2AttrRNHandledBy,
  921.     SMIL2ElemPriorityClass, 3, 9,
  922.         SMIL2AttrCollCore,
  923.         SMIL2AttrCollI18N,
  924.         SMIL2AttrCollTest,
  925.         SMIL2AttrAbstract,
  926.         SMIL2AttrAuthor,
  927.         SMIL2AttrCopyright,
  928.         SMIL2AttrCustomTest,
  929.         SMIL2AttrHigher,
  930.         SMIL2AttrLower,
  931.         SMIL2AttrPauseDisplay,
  932.         SMIL2AttrPeers,
  933.         SMIL2AttrSkip_Content,
  934.     SMIL2ElemRef, 6, 0,
  935.         SMIL2AttrCollCore,
  936.         SMIL2AttrCollI18N,
  937.         SMIL2AttrCollTiming,
  938.         SMIL2AttrCollTest,
  939.         SMIL2AttrCollSubregion,
  940.         SMIL2AttrCollMediaElement,
  941.     SMIL2ElemRegPoint, 3, 7,
  942.         SMIL2AttrCollCore,
  943.         SMIL2AttrCollI18N,
  944.         SMIL2AttrCollTest,
  945.         SMIL2AttrBottom,
  946.         SMIL2AttrCustomTest,
  947.         SMIL2AttrLeft,
  948.         SMIL2AttrRegAlign,
  949.         SMIL2AttrRight,
  950.         SMIL2AttrSkip_Content,
  951.         SMIL2AttrTop,
  952.     SMIL2ElemRegion, 3, 16,
  953.         SMIL2AttrCollCore,
  954.         SMIL2AttrCollI18N,
  955.         SMIL2AttrCollTest,
  956.         SMIL2AttrBackground_Color,
  957.         SMIL2AttrBackgroundColor,
  958.         SMIL2AttrBottom,
  959.         SMIL2AttrCustomTest,
  960.         SMIL2AttrFit,
  961.         SMIL2AttrHeight,
  962.         SMIL2AttrLeft,
  963.         SMIL2AttrRegionName,
  964.         SMIL2AttrRight,
  965.         SMIL2AttrShowBackground,
  966.         SMIL2AttrSkip_Content,
  967.         SMIL2AttrSoundLevel,
  968.         SMIL2AttrTop,
  969.         SMIL2AttrWidth,
  970.         SMIL2AttrZ_Index,
  971.         SMIL2AttrRNOpacity,
  972.     SMIL2ElemRootLayout, 3, 8,
  973.         SMIL2AttrCollCore,
  974.         SMIL2AttrCollI18N,
  975.         SMIL2AttrCollTest,
  976.         SMIL2AttrBackground_Color,
  977.         SMIL2AttrBackgroundColor,
  978.         SMIL2AttrCustomTest,
  979.         SMIL2AttrHeight,
  980.         SMIL2AttrSkip_Content,
  981.         SMIL2AttrWidth,
  982.         SMIL2AttrRNContextWindow,
  983.         SMIL2AttrRNResizeBehavior,
  984.     SMIL2ElemSeq, 4, 6,
  985.         SMIL2AttrCollCore,
  986.         SMIL2AttrCollI18N,
  987.         SMIL2AttrCollTiming,
  988.         SMIL2AttrCollTest,
  989.         SMIL2AttrAbstract,
  990.         SMIL2AttrAuthor,
  991.         SMIL2AttrCopyright,
  992.         SMIL2AttrCustomTest,
  993.         SMIL2AttrFill,
  994.         SMIL2AttrRegion,
  995.     SMIL2ElemSet, 4, 8,
  996.         SMIL2AttrCollCore,
  997.         SMIL2AttrCollI18N,
  998.         SMIL2AttrCollBasicTiming,
  999.         SMIL2AttrCollTest,
  1000.         SMIL2AttrAttributeName,
  1001.         SMIL2AttrAttributeType,
  1002.         SMIL2AttrCustomTest,
  1003.         SMIL2AttrFill,
  1004.         SMIL2AttrFillDefault,
  1005.         SMIL2AttrSkip_Content,
  1006.         SMIL2AttrTargetElement,
  1007.         SMIL2AttrTo,
  1008.     SMIL2ElemSmil, 3, 1,
  1009.         SMIL2AttrCollCore,
  1010.         SMIL2AttrCollI18N,
  1011.         SMIL2AttrCollTest,
  1012.         SMIL2AttrXmlns,
  1013.     SMIL2ElemSwitch, 3, 1,
  1014.         SMIL2AttrCollCore,
  1015.         SMIL2AttrCollI18N,
  1016.         SMIL2AttrCollTest,
  1017.         SMIL2AttrCustomTest,
  1018.     SMIL2ElemText, 6, 0,
  1019.         SMIL2AttrCollCore,
  1020.         SMIL2AttrCollI18N,
  1021.         SMIL2AttrCollTiming,
  1022.         SMIL2AttrCollTest,
  1023.         SMIL2AttrCollSubregion,
  1024.         SMIL2AttrCollMediaElement,
  1025.     SMIL2ElemTextstream, 6, 0,
  1026.         SMIL2AttrCollCore,
  1027.         SMIL2AttrCollI18N,
  1028.         SMIL2AttrCollTiming,
  1029.         SMIL2AttrCollTest,
  1030.         SMIL2AttrCollSubregion,
  1031.         SMIL2AttrCollMediaElement,
  1032.     SMIL2ElemTopLayout, 3, 10,
  1033.         SMIL2AttrCollCore,
  1034.         SMIL2AttrCollI18N,
  1035.         SMIL2AttrCollTest,
  1036.         SMIL2AttrBackground_Color,
  1037.         SMIL2AttrBackgroundColor,
  1038.         SMIL2AttrClose,
  1039.         SMIL2AttrCustomTest,
  1040.         SMIL2AttrHeight,
  1041.         SMIL2AttrOpen,
  1042.         SMIL2AttrSkip_Content,
  1043.         SMIL2AttrWidth,
  1044.         SMIL2AttrRNContextWindow,
  1045.         SMIL2AttrRNResizeBehavior,
  1046.     SMIL2ElemTransition, 4, 12,
  1047.         SMIL2AttrCollCore,
  1048.         SMIL2AttrCollI18N,
  1049.         SMIL2AttrCollBasicTiming,
  1050.         SMIL2AttrCollTest,
  1051.         SMIL2AttrBorderColor,
  1052.         SMIL2AttrBorderWidth,
  1053.         SMIL2AttrCustomTest,
  1054.         SMIL2AttrDirection,
  1055.         SMIL2AttrEndProgress,
  1056.         SMIL2AttrFadeColor,
  1057.         SMIL2AttrHorzRepeat,
  1058.         SMIL2AttrSkip_Content,
  1059.         SMIL2AttrStartProgress,
  1060.         SMIL2AttrSubtype,
  1061.         SMIL2AttrType,
  1062.         SMIL2AttrVertRepeat,
  1063.     SMIL2ElemVideo, 6, 0,
  1064.         SMIL2AttrCollCore,
  1065.         SMIL2AttrCollI18N,
  1066.         SMIL2AttrCollTiming,
  1067.         SMIL2AttrCollTest,
  1068.         SMIL2AttrCollSubregion,
  1069.         SMIL2AttrCollMediaElement,
  1070.     NumSMIL2Elements  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  1071. };
  1072. static const BYTE g_RequiredAttr[] =
  1073. {
  1074.     SMIL2ElemA, 1,
  1075.         SMIL2AttrHref,
  1076.     SMIL2ElemAnimate, 1,
  1077.         SMIL2AttrAttributeName,
  1078.     SMIL2ElemAnimateColor, 1,
  1079.         SMIL2AttrAttributeName,
  1080.     SMIL2ElemMeta, 2,
  1081.         SMIL2AttrName,
  1082.         SMIL2AttrContent,
  1083.     SMIL2ElemSet, 1,
  1084.         SMIL2AttrAttributeName,
  1085.     SMIL2ElemSmil, 1,
  1086.         SMIL2AttrXmlns,
  1087.     NumSMIL2Elements // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  1088. };
  1089. static const BYTE g_LegalContent[] =
  1090. {
  1091.     SMIL2ElemA, 17,
  1092.         SMIL2ElemPar,
  1093.         SMIL2ElemSeq,
  1094.         SMIL2ElemExcl,
  1095.         SMIL2ElemAudio,
  1096.         SMIL2ElemVideo,
  1097.         SMIL2ElemAnimation,
  1098.         SMIL2ElemText,
  1099.         SMIL2ElemTextstream,
  1100.         SMIL2ElemImg,
  1101.         SMIL2ElemRef,
  1102.         SMIL2ElemBrush,
  1103.         SMIL2ElemAnimate,
  1104.         SMIL2ElemSet,
  1105.         SMIL2ElemAnimateMotion,
  1106.         SMIL2ElemAnimateColor,
  1107.         SMIL2ElemSwitch,
  1108.         SMIL2ElemPrefetch,
  1109.     SMIL2ElemAnchor, 2,
  1110.         SMIL2ElemAnimate,
  1111.         SMIL2ElemSet,
  1112.     SMIL2ElemAnimate, 0,
  1113.     SMIL2ElemAnimateColor, 0,
  1114.     SMIL2ElemAnimateMotion, 0,
  1115.     SMIL2ElemAnimation, 8,
  1116.         SMIL2ElemAnimate,
  1117.         SMIL2ElemSet,
  1118.         SMIL2ElemAnimateMotion,
  1119.         SMIL2ElemAnimateColor,
  1120.         SMIL2ElemSwitch,
  1121.         SMIL2ElemAnchor,
  1122.         SMIL2ElemArea,
  1123.         SMIL2ElemParam,
  1124.     SMIL2ElemArea, 2,
  1125.         SMIL2ElemAnimate,
  1126.         SMIL2ElemSet,
  1127.     SMIL2ElemAudio, 8,
  1128.         SMIL2ElemAnimate,
  1129.         SMIL2ElemSet,
  1130.         SMIL2ElemAnimateMotion,
  1131.         SMIL2ElemAnimateColor,
  1132.         SMIL2ElemSwitch,
  1133.         SMIL2ElemAnchor,
  1134.         SMIL2ElemArea,
  1135.         SMIL2ElemParam,
  1136.     SMIL2ElemBody, 18,
  1137.         SMIL2ElemPar,
  1138.         SMIL2ElemSeq,
  1139.         SMIL2ElemExcl,
  1140.         SMIL2ElemAudio,
  1141.         SMIL2ElemVideo,
  1142.         SMIL2ElemAnimation,
  1143.         SMIL2ElemText,
  1144.         SMIL2ElemImg,
  1145.         SMIL2ElemTextstream,
  1146.         SMIL2ElemRef,
  1147.         SMIL2ElemBrush,
  1148.         SMIL2ElemAnimate,
  1149.         SMIL2ElemSet,
  1150.         SMIL2ElemAnimateMotion,
  1151.         SMIL2ElemAnimateColor,
  1152.         SMIL2ElemSwitch,
  1153.         SMIL2ElemPrefetch,
  1154.         SMIL2ElemA,
  1155.     SMIL2ElemBrush, 8,
  1156.         SMIL2ElemAnimate,
  1157.         SMIL2ElemSet,
  1158.         SMIL2ElemAnimateMotion,
  1159.         SMIL2ElemAnimateColor,
  1160.         SMIL2ElemSwitch,
  1161.         SMIL2ElemAnchor,
  1162.         SMIL2ElemArea,
  1163.         SMIL2ElemParam,
  1164.     SMIL2ElemCustomAttributes, 1,  // (customTest+)
  1165.         SMIL2ElemCustomTest,
  1166.     SMIL2ElemCustomTest, 0,
  1167.     SMIL2ElemExcl, 19,            // ((par | seq | excl | audio | video | animation | 
  1168.         SMIL2ElemPar,            //   text | img | textstream | ref | brush | animate |
  1169.         SMIL2ElemSeq,            //   set | animateMotion | animateColor | switch | prefetch |
  1170.         SMIL2ElemExcl,           //   a)* | priorityClass+)
  1171.         SMIL2ElemAudio,
  1172.         SMIL2ElemVideo,
  1173.         SMIL2ElemAnimation,
  1174.         SMIL2ElemText,
  1175.         SMIL2ElemImg,
  1176.         SMIL2ElemTextstream,
  1177.         SMIL2ElemRef,
  1178.         SMIL2ElemBrush,
  1179.         SMIL2ElemAnimate,
  1180.         SMIL2ElemSet,
  1181.         SMIL2ElemAnimateMotion,
  1182.         SMIL2ElemAnimateColor,
  1183.         SMIL2ElemSwitch,
  1184.         SMIL2ElemPrefetch,
  1185.         SMIL2ElemA,
  1186.         SMIL2ElemPriorityClass,
  1187.     SMIL2ElemHead, 6,            // ( meta*, ((customAttributes), meta*)?, ((metadata),
  1188.         SMIL2ElemMeta,           //   meta*)?, ((layout | switch), meta*)?, ((transition+), meta*)? )
  1189.         SMIL2ElemCustomAttributes,
  1190.         SMIL2ElemMetadata,
  1191.         SMIL2ElemLayout,
  1192.         SMIL2ElemSwitch,
  1193.         SMIL2ElemTransition,
  1194.     SMIL2ElemImg, 8,
  1195.         SMIL2ElemAnimate,
  1196.         SMIL2ElemSet,
  1197.         SMIL2ElemAnimateMotion,
  1198.         SMIL2ElemAnimateColor,
  1199.         SMIL2ElemSwitch,
  1200.         SMIL2ElemAnchor,
  1201.         SMIL2ElemArea,
  1202.         SMIL2ElemParam,
  1203.     SMIL2ElemLayout, 4,
  1204.         SMIL2ElemRegion,
  1205.         SMIL2ElemTopLayout,
  1206.         SMIL2ElemRootLayout,
  1207.         SMIL2ElemRegPoint,
  1208.     SMIL2ElemMeta, 0,
  1209.     SMIL2ElemMetadata, 0,
  1210.     SMIL2ElemPar, 18,
  1211.         SMIL2ElemPar,
  1212.         SMIL2ElemSeq,
  1213.         SMIL2ElemExcl,
  1214.         SMIL2ElemAudio,
  1215.         SMIL2ElemVideo,
  1216.         SMIL2ElemAnimation,
  1217.         SMIL2ElemText,
  1218.         SMIL2ElemImg,
  1219.         SMIL2ElemTextstream,
  1220.         SMIL2ElemRef,
  1221.         SMIL2ElemBrush,
  1222.         SMIL2ElemAnimate,
  1223.         SMIL2ElemSet,
  1224.         SMIL2ElemAnimateMotion,
  1225.         SMIL2ElemAnimateColor,
  1226.         SMIL2ElemSwitch,
  1227.         SMIL2ElemPrefetch,
  1228.         SMIL2ElemA,
  1229.     SMIL2ElemParam, 0,
  1230.     SMIL2ElemPrefetch, 0,
  1231.     SMIL2ElemPriorityClass, 18,
  1232.         SMIL2ElemPar,
  1233.         SMIL2ElemSeq,
  1234.         SMIL2ElemExcl,
  1235.         SMIL2ElemAudio,
  1236.         SMIL2ElemVideo,
  1237.         SMIL2ElemAnimation,
  1238.         SMIL2ElemText,
  1239.         SMIL2ElemImg,
  1240.         SMIL2ElemTextstream,
  1241.         SMIL2ElemRef,
  1242.         SMIL2ElemBrush,
  1243.         SMIL2ElemAnimate,
  1244.         SMIL2ElemSet,
  1245.         SMIL2ElemAnimateMotion,
  1246.         SMIL2ElemAnimateColor,
  1247.         SMIL2ElemSwitch,
  1248.         SMIL2ElemPrefetch,
  1249.         SMIL2ElemA,
  1250.     SMIL2ElemRef, 8,
  1251.         SMIL2ElemAnimate,
  1252.         SMIL2ElemSet,
  1253.         SMIL2ElemAnimateMotion,
  1254.         SMIL2ElemAnimateColor,
  1255.         SMIL2ElemSwitch,
  1256.         SMIL2ElemAnchor,
  1257.         SMIL2ElemArea,
  1258.         SMIL2ElemParam,
  1259.     SMIL2ElemRegPoint, 0,
  1260.     SMIL2ElemRegion, 1,
  1261.         SMIL2ElemRegion,
  1262.     SMIL2ElemRootLayout, 0,
  1263.     SMIL2ElemSeq, 18,
  1264.         SMIL2ElemPar,
  1265.         SMIL2ElemSeq,
  1266.         SMIL2ElemExcl,
  1267.         SMIL2ElemAudio,
  1268.         SMIL2ElemVideo,
  1269.         SMIL2ElemAnimation,
  1270.         SMIL2ElemText,
  1271.         SMIL2ElemImg,
  1272.         SMIL2ElemTextstream,
  1273.         SMIL2ElemRef,
  1274.         SMIL2ElemBrush,
  1275.         SMIL2ElemAnimate,
  1276.         SMIL2ElemSet,
  1277.         SMIL2ElemAnimateMotion,
  1278.         SMIL2ElemAnimateColor,
  1279.         SMIL2ElemSwitch,
  1280.         SMIL2ElemPrefetch,
  1281.         SMIL2ElemA,
  1282.     SMIL2ElemSet, 0,
  1283.     SMIL2ElemSmil, 2, // (head?, body?)
  1284.         SMIL2ElemHead,
  1285.         SMIL2ElemBody,
  1286.     SMIL2ElemSwitch, 21,      // ((par | seq | excl | audio | video | animation |
  1287.         SMIL2ElemPar,         //   text | img | textstream | ref | brush | animate |
  1288.         SMIL2ElemSeq,         //   set | animateMotion | animateColor | switch |
  1289.         SMIL2ElemExcl,        //   prefetch | a | area | anchor)* | layout*)
  1290.         SMIL2ElemAudio,
  1291.         SMIL2ElemVideo,
  1292.         SMIL2ElemAnimation,
  1293.         SMIL2ElemText,
  1294.         SMIL2ElemImg,
  1295.         SMIL2ElemTextstream,
  1296.         SMIL2ElemRef,
  1297.         SMIL2ElemBrush,
  1298.         SMIL2ElemAnimate,
  1299.         SMIL2ElemSet,
  1300.         SMIL2ElemAnimateMotion,
  1301.         SMIL2ElemAnimateColor,
  1302.         SMIL2ElemSwitch,
  1303.         SMIL2ElemPrefetch,
  1304.         SMIL2ElemA,
  1305.         SMIL2ElemArea,
  1306.         SMIL2ElemAnchor,
  1307.         SMIL2ElemLayout,
  1308.     SMIL2ElemText, 8,
  1309.         SMIL2ElemAnimate,
  1310.         SMIL2ElemSet,
  1311.         SMIL2ElemAnimateMotion,
  1312.         SMIL2ElemAnimateColor,
  1313.         SMIL2ElemSwitch,
  1314.         SMIL2ElemAnchor,
  1315.         SMIL2ElemArea,
  1316.         SMIL2ElemParam,
  1317.     SMIL2ElemTextstream, 8,
  1318.         SMIL2ElemAnimate,
  1319.         SMIL2ElemSet,
  1320.         SMIL2ElemAnimateMotion,
  1321.         SMIL2ElemAnimateColor,
  1322.         SMIL2ElemSwitch,
  1323.         SMIL2ElemAnchor,
  1324.         SMIL2ElemArea,
  1325.         SMIL2ElemParam,
  1326.     SMIL2ElemTopLayout, 1,
  1327.         SMIL2ElemRegion,
  1328.     SMIL2ElemTransition, 0,
  1329.     SMIL2ElemVideo, 8,
  1330.         SMIL2ElemAnimate,
  1331.         SMIL2ElemSet,
  1332.         SMIL2ElemAnimateMotion,
  1333.         SMIL2ElemAnimateColor,
  1334.         SMIL2ElemSwitch,
  1335.         SMIL2ElemAnchor,
  1336.         SMIL2ElemArea,
  1337.         SMIL2ElemParam,
  1338.     NumSMIL2Elements  // NOTE: THIS SHOULD ALWAYS BE LAST!!!
  1339. };
  1340. static const struct NamespaceTable
  1341. {
  1342.     SupportedNamespace m_eNamespace;
  1343.     const char*        m_pszStr;
  1344. } g_NamespaceTable[] =
  1345. {
  1346.     {NamespaceSystemComponent,              "http://features.real.com/systemComponent/"},
  1347.     {NamespaceSizeControl,                  "http://features.real.com/2001/SMIL20/Extensions/sizeControl"},
  1348.     {NamespaceAlphaControl,                 "http://features.real.com/2001/SMIL20/Extensions/alphaControl"},
  1349.     {NamespaceParam,                        "http://features.real.com/2001/SMIL20/Extensions/param"},
  1350.     {NamespaceSendTo,                       "http://features.real.com/2001/SMIL20/Extensions/sendTo"},
  1351.     {NamespaceHandledBy,                    "http://features.real.com/2001/SMIL20/Extensions/handledBy"},
  1352.     {NamespaceRendererList,                 "http://features.real.com/2001/SMIL20/Extensions/rendererList"},
  1353.     {NamespaceAccessErrorBehavior,          "http://features.real.com/2001/SMIL20/Extensions/accessErrorBehavior"},
  1354.     {NamespaceAllSMIL2Extensions,           "http://features.real.com/2001/SMIL20/Extensions"},
  1355.     {NamespaceSMIL2AccessKeyTiming,         "http://www.w3.org/2001/SMIL20/WD/AccessKeyTiming"},
  1356.     {NamespaceSMIL2AudioLayout,             "http://www.w3.org/2001/SMIL20/WD/AudioLayout"},
  1357.     {NamespaceSMIL2BasicAnimation,          "http://www.w3.org/2001/SMIL20/WD/BasicAnimation"},
  1358.     {NamespaceSMIL2BasicContentControl,     "http://www.w3.org/2001/SMIL20/WD/BasicContentControl"},
  1359.     {NamespaceSMIL2BasicInlineTiming,       "http://www.w3.org/2001/SMIL20/WD/BasicInlineTiming"},
  1360.     {NamespaceSMIL2BasicLayout,             "http://www.w3.org/2001/SMIL20/WD/BasicLayout"},
  1361.     {NamespaceSMIL2BasicLinking,            "http://www.w3.org/2001/SMIL20/WD/BasicLinking"},
  1362.     {NamespaceSMIL2BasicMedia,              "http://www.w3.org/2001/SMIL20/WD/BasicMedia"},
  1363.     {NamespaceSMIL2BasicTimeContainers,     "http://www.w3.org/2001/SMIL20/WD/BasicTimeContainers"},
  1364.     {NamespaceSMIL2BasicTransistions,       "http://www.w3.org/2001/SMIL20/WD/BasicTransistions"},
  1365.     {NamespaceSMIL2BrushMedia,              "http://www.w3.org/2001/SMIL20/WD/BrushMedia"},
  1366.     {NamespaceSMIL2CustomTestAttributes,    "http://www.w3.org/2001/SMIL20/WD/CustomTestAttributes"},
  1367.     {NamespaceSMIL2EventTiming,             "http://www.w3.org/2001/SMIL20/WD/EventTiming"},
  1368.     {NamespaceSMIL2ExclTimeContainers,      "http://www.w3.org/2001/SMIL20/WD/ExclTimeContainers"},
  1369.     {NamespaceSMIL2FillDefault,             "http://www.w3.org/2001/SMIL20/WD/FillDefault"},
  1370.     {NamespaceSMIL2HierarchicalLayout,      "http://www.w3.org/2001/SMIL20/WD/HierarchicalLayout"},
  1371. //    {NamespaceSMIL2InlineTransitions,       "http://www.w3.org/2001/SMIL20/WD/InlineTransitions"}, // don't support this
  1372.     {NamespaceSMIL2LinkingAttributes,       "http://www.w3.org/2001/SMIL20/WD/LinkingAttributes"},
  1373.     {NamespaceSMIL2MediaAccessibility,      "http://www.w3.org/2001/SMIL20/WD/MediaAccessibility"},
  1374.     {NamespaceSMIL2MediaClipMarkers,        "http://www.w3.org/2001/SMIL20/WD/MediaClipMarkers"},
  1375.     {NamespaceSMIL2MediaClipping,           "http://www.w3.org/2001/SMIL20/WD/MediaClipping"},
  1376.     {NamespaceSMIL2MediaDescription,        "http://www.w3.org/2001/SMIL20/WD/MediaDescription"},
  1377.     {NamespaceSMIL2MediaMarkerTiming,       "http://www.w3.org/2001/SMIL20/WD/MediaMarkerTiming"},
  1378.     {NamespaceSMIL2MediaParam,              "http://www.w3.org/2001/SMIL20/WD/MediaParam"},
  1379.     {NamespaceSMIL2Metainformation,         "http://www.w3.org/2001/SMIL20/WD/Metainformation"},
  1380.     {NamespaceSMIL2MinMaxTiming,            "http://www.w3.org/2001/SMIL20/WD/MinMaxTiming"},
  1381.     {NamespaceSMIL2MultiArcTiming,          "http://www.w3.org/2001/SMIL20/WD/MultiArcTiming"},
  1382.     {NamespaceSMIL2MultiWindowLayout,       "http://www.w3.org/2001/SMIL20/WD/MultiWindowLayout"},
  1383.     {NamespaceSMIL2ObjectLinking,           "http://www.w3.org/2001/SMIL20/WD/ObjectLinking"},
  1384.     {NamespaceSMIL2PrefetchControl,         "http://www.w3.org/2001/SMIL20/WD/PrefetchControl"},
  1385.     {NamespaceSMIL2RepeatTiming,            "http://www.w3.org/2001/SMIL20/WD/RepeatTiming"},
  1386.     {NamespaceSMIL2RepeatValueTiming,       "http://www.w3.org/2001/SMIL20/WD/RepeatValueTiming"},
  1387.     {NamespaceSMIL2RestartDefault,          "http://www.w3.org/2001/SMIL20/WD/RestartDefault"},
  1388.     {NamespaceSMIL2RestartTiming,           "http://www.w3.org/2001/SMIL20/WD/RestartTiming"},
  1389.     {NamespaceSMIL2SkipContentControl,      "http://www.w3.org/2001/SMIL20/WD/SkipContentControl"},
  1390. //    {NamespaceSMIL2SplineAnimation,         "http://www.w3.org/2001/SMIL20/WD/SplineAnimation"}, // don't support this
  1391.     {NamespaceSMIL2Structure,               "http://www.w3.org/2001/SMIL20/WD/Structure"},
  1392.     {NamespaceSMIL2SyncbaseTiming,          "http://www.w3.org/2001/SMIL20/WD/SyncbaseTiming"},
  1393.     {NamespaceSMIL2SyncBehavior,            "http://www.w3.org/2001/SMIL20/WD/SyncBehavior"},
  1394.     {NamespaceSMIL2SyncBehaviorDefault,     "http://www.w3.org/2001/SMIL20/WD/SyncBehaviorDefault"},
  1395.     {NamespaceSMIL2SyncMaster,              "http://www.w3.org/2001/SMIL20/WD/SyncMaster"},
  1396.     {NamespaceSMIL2TimeContainerAttributes, "http://www.w3.org/2001/SMIL20/WD/TimeContainerAttributes"},
  1397.     {NamespaceSMIL2TimeManipulations,       "http://www.w3.org/2001/SMIL20/WD/TimeManipulations"},
  1398.     {NamespaceSMIL2TransitionModifiers,     "http://www.w3.org/2001/SMIL20/WD/TransitionModifiers"},
  1399.     {NamespaceSMIL2WallclockTiming,         "http://www.w3.org/2001/SMIL20/WD/WallclockTiming"},
  1400.     {NamespaceXMLEvents,                    "http://www.w3.org/2001/xml-events"},
  1401.     {NamespaceNotImplemented,               NULL}
  1402. };
  1403. #endif /* #if defined(HELIX_FEATURE_SMIL2_VALIDATION) */
  1404. #endif  // #ifndef PARSTABL_H