# HTML4.0 Strict

#======= ELEMENTS =======
$emptyTags = 'AREA|BASE|BR|COL|HR|IMG|INPUT|LINK|META|PARAM';
$pairTags = 'A|ABBR|ACRONYM|ADDRESS|B|BDO|BIG|BLOCKQUOTE|BODY|BUTTON|CAPTION'.
            '|CITE|CODE|COLGROUP|DD|DEL|DFN|DIV|DL|DT|EM|FIELDSET|FORM|H1|H2'.
            '|H3|H4|H5|H6|HEAD|HTML|I|INS|KBD|LABEL|LEGEND|LI|MAP|NOSCRIPT'.
            '|OBJECT|OL|OPTGROUP|OPTION|P|PRE|Q|SAMP|SCRIPT|SELECT|SMALL|SPAN'.
            '|STRONG|STYLE|SUB|SUP|TABLE|TBODY|TD|TEXTAREA|TFOOT|TH|THEAD'.
            '|TITLE|TR|TT|UL|VAR';
$deprecatedTags = '';
$omitStartTags = 'BODY|HEAD|HTML|TBODY';
$omitEndTags = 'BODY|COLGROUP|DD|DT|HEAD|HTML|LI|OPTION|P|TBODY|TD|TFOOT|TH'.
               '|THEAD|TR';
#$maybeEmpty = 'A|ABBR|ACRONYM|ADDRESS|B|BDO|BIG|BUTTON|CAPTION|CITE|CODE'.
#              '|COLGROUP|DD|DEL|DFN|DIV|DT|EM|H1|H2|H3|H4|H5|H6|I|INS|KBD'.
#              '|LABEL|LEGEND|LI|OBJECT|OPTION|P|PRE|Q|SAMP|SCRIPT|SMALL|SPAN'.
#              '|STRONG|STYLE|SUB|SUP|TD|TEXTAREA|TH|TITLE|TT|VAR';
$maybeEmpty = 'COLGROUP|OBJECT|PRE|SCRIPT|STYLE|TEXTAREA|TD|TH';
%requiredTags = (
  'FIELDSET' => 'LEGEND',
  'HEAD'     => 'TITLE',
  'HTML'     => 'HEAD|BODY',
  'TABLE'    => 'TBODY',
);
%onceonlyTags = (
  'FIELDSET' => 'LEGEND',
  'HEAD'     => 'TITLE|BASE',
  'HTML'     => 'HEAD|BODY',
  'TABLE'    => 'CAPTION|#002|THEAD|TFOOT',
);
$sequencialTags = 'TABLE|FIELDSET|HTML';
%tagsElements = (
  '#000'       => 'ADDRESS|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL'.
                  '|PRE|OL|UL|H6|H5|H4|H3|H2|H1|P',
  '#001'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  '#002'       => 'COLGROUP|COL',
  'A'          => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE'.
                  '|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'ABBR'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'ACRONYM'    => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'ADDRESS'    => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'B'          => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'BDO'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'BIG'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'BLOCKQUOTE' => 'SCRIPT|ADDRESS|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT'.
                  '|DIV|DL|PRE|OL|UL|H6|H5|H4|H3|H2|H1|P',
  'BODY'       => 'SCRIPT|ADDRESS|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT'.
                  '|DIV|DL|PRE|OL|UL|H6|H5|H4|H3|H2|H1|P|INS|DEL',
  'BUTTON'     => 'BDO|SPAN|SUP|SUB|Q|MAP|SCRIPT|BR|OBJECT|IMG|ACRONYM|ABBR'.
                  '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT'.
                  '|#PCDATA|ADDRESS|TABLE|HR|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE'.
                  '|OL|UL|H6|H5|H4|H3|H2|H1|P',
  'CAPTION'    => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'CITE'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'CODE'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'COLGROUP'   => 'COL',
  'DD'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'DEL'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'DFN'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'DIV'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'DL'         => 'DD|DT',
  'DT'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'EM'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'FIELDSET'   => '#PCDATA|LEGEND|#001',
  'FORM'       => 'SCRIPT|ADDRESS|FIELDSET|TABLE|HR|BLOCKQUOTE|NOSCRIPT|DIV'.
                  '|DL|PRE|OL|UL|H6|H5|H4|H3|H2|H1|P',
  'H1'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'H2'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'H3'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'H4'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'H5'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'H6'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'HEAD'       => 'TITLE|BASE|SCRIPT|STYLE|META|LINK|OBJECT',
  'HTML'       => 'HEAD|BODY',
  'I'          => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'INS'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'KBD'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'LABEL'      => 'BUTTON|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP|SCRIPT'.
                  '|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE|DFN'.
                  '|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'LEGEND'     => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'LI'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'MAP'        => 'AREA|#000',
  'NOSCRIPT'   => 'ADDRESS|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL'.
                  '|PRE|OL|UL|H6|H5|H4|H3|H2|H1|P',
  'OBJECT'     => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P|PARAM',
  'OL'         => 'LI',
  'OPTGROUP'   => 'OPTION',
  'OPTION'     => '#PCDATA',
  'P'          => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'PRE'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|Q|MAP|SCRIPT'.
                  '|BR|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|B'.
                  '|I|TT|#PCDATA',
  'Q'          => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'SAMP'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'SCRIPT'     => '%Script',
  'SELECT'     => 'OPTION|OPTGROUP',
  'SMALL'      => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'SPAN'       => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'STRONG'     => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'STYLE'      => '%StyleSheet',
  'SUB'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'SUP'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'TABLE'      => 'CAPTION|#002|THEAD|TFOOT|TBODY',
  'TBODY'      => 'TR',
  'TD'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'TEXTAREA'   => '#PCDATA',
  'TFOOT'      => 'TR',
  'TH'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA|ADDRESS'.
                  '|FIELDSET|TABLE|HR|FORM|BLOCKQUOTE|NOSCRIPT|DIV|DL|PRE|OL'.
                  '|UL|H6|H5|H4|H3|H2|H1|P',
  'THEAD'      => 'TR',
  'TITLE'      => '#PCDATA',
  'TR'         => 'TD|TH',
  'TT'         => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
  'UL'         => 'LI',
  'VAR'        => 'BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO|SPAN|SUP|SUB|Q|MAP'.
                  '|SCRIPT|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|SMALL|BIG|B|I|TT|#PCDATA',
);
%excludedElems = (
  'A'      => 'A',
  'BUTTON' => 'A|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|FORM|FIELDSET',
  'FORM'   => 'FORM',
  'LABEL'  => 'LABEL',
  'PRE'    => 'IMG|OBJECT|BIG|SMALL|SUB|SUP',
  'TITLE'  => 'SCRIPT|STYLE|META|LINK|OBJECT',
);
%includedElems = (
  'BODY' => 'INS|DEL',
  'HEAD' => 'SCRIPT|STYLE|META|LINK|OBJECT',
);
#======= ATTRIBUTES =======
%tagsAttributes = (
  'A' => {
    'ACCESSKEY'   => '%Character',
    'CHARSET'     => '%Charset',
    'CLASS'       => '%Class',
    'COORDS'      => '%Coords',
    'DIR'         => 'LTR|RTL',
    'HREF'        => '%URI',
    'HREFLANG'    => '%LanguageCode',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NAME'        => '%Name',
    'ONBLUR'      => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'REL'         => '%LinkTypes',
    'REV'         => '%LinkTypes',
    'SHAPE'       => 'RECT|CIRCLE|POLY|DEFAULT',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
    'TYPE'        => '%ContentType',
  },
  'ABBR' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'ACRONYM' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'ADDRESS' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'AREA' => {
    'ACCESSKEY'   => '%Character',
    'ALT'         => '%Text',
    'CLASS'       => '%Class',
    'COORDS'      => '%Coords',
    'DIR'         => 'LTR|RTL',
    'HREF'        => '%URI',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NOHREF'      => 'NOHREF',
    'ONBLUR'      => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SHAPE'       => 'RECT|CIRCLE|POLY|DEFAULT',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
  },
  'B' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'BASE' => {
    'HREF' => '%URI',
  },
  'BDO' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'STYLE' => '%StyleSheet',
    'TITLE' => '%Text',
  },
  'BIG' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'BLOCKQUOTE' => {
    'CITE'        => '%URI',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'BODY' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONLOAD'      => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'ONUNLOAD'    => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'BR' => {
    'CLASS' => '%Class',
    'ID'    => 'ID',
    'STYLE' => '%StyleSheet',
    'TITLE' => '%Text',
  },
  'BUTTON' => {
    'ACCESSKEY'   => '%Character',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NAME'        => '%Name',
    'ONBLUR'      => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
    'TYPE'        => 'BUTTON|SUBMIT|RESET',
    'VALUE'       => 'CDATA',
  },
  'CAPTION' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'CITE' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'CODE' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'COL' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SPAN'        => 'NUMBER',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
    'WIDTH'       => '%MultiLength',
  },
  'COLGROUP' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SPAN'        => 'NUMBER',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
    'WIDTH'       => '%MultiLength',
  },
  'DD' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'DEL' => {
    'CITE'        => '%URI',
    'CLASS'       => '%Class',
    'DATETIME'    => '%Datetime',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'DFN' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'DIV' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'DL' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'DT' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'EM' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'FIELDSET' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'FORM' => {
    'ACCEPT'         => '%ContentTypes',
    'ACCEPT-CHARSET' => '%Charsets',
    'ACTION'         => '%URI',
    'CLASS'          => '%Class',
    'DIR'            => 'LTR|RTL',
    'ENCTYPE'        => '%ContentType',
    'ID'             => 'ID',
    'LANG'           => '%LanguageCode',
    'METHOD'         => 'GET|POST',
    'ONCLICK'        => '%Script',
    'ONDBLCLICK'     => '%Script',
    'ONKEYDOWN'      => '%Script',
    'ONKEYPRESS'     => '%Script',
    'ONKEYUP'        => '%Script',
    'ONMOUSEDOWN'    => '%Script',
    'ONMOUSEMOVE'    => '%Script',
    'ONMOUSEOUT'     => '%Script',
    'ONMOUSEOVER'    => '%Script',
    'ONMOUSEUP'      => '%Script',
    'ONRESET'        => '%Script',
    'ONSUBMIT'       => '%Script',
    'STYLE'          => '%StyleSheet',
    'TITLE'          => '%Text',
  },
  'H1' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'H2' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'H3' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'H4' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'H5' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'H6' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'HEAD' => {
    'DIR'     => 'LTR|RTL',
    'LANG'    => '%LanguageCode',
    'PROFILE' => '%URIs',
  },
  'HR' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'HTML' => {
    'DIR'  => 'LTR|RTL',
    'LANG' => '%LanguageCode',
  },
  'I' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'IMG' => {
    'ALT'         => '%Text',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'HEIGHT'      => '%Length',
    'ID'          => 'ID',
    'ISMAP'       => 'ISMAP',
    'LANG'        => '%LanguageCode',
    'LONGDESC'    => '%URI',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SRC'         => '%URI',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'USEMAP'      => '%URI',
    'WIDTH'       => '%Length',
  },
  'INPUT' => {
    'ACCEPT'      => '%ContentTypes',
    'ACCESSKEY'   => '%Character',
    'ALT'         => 'CDATA',
    'CHECKED'     => 'CHECKED',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'MAXLENGTH'   => 'NUMBER',
    'NAME'        => '%Name',
    'ONBLUR'      => '%Script',
    'ONCHANGE'    => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'ONSELECT'    => '%Script',
    'READONLY'    => 'READONLY',
    'SIZE'        => 'CDATA',
    'SRC'         => '%URI',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
    'TYPE'        => 'TEXT|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|FILE|HIDDEN'.
                     '|IMAGE|BUTTON',
    'USEMAP'      => '%URI',
    'VALUE'       => 'CDATA',
  },
  'INS' => {
    'CITE'        => '%URI',
    'CLASS'       => '%Class',
    'DATETIME'    => '%Datetime',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'KBD' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'LABEL' => {
    'ACCESSKEY'   => '%Character',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'FOR'         => 'IDREF',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONBLUR'      => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'LEGEND' => {
    'ACCESSKEY'   => '%Character',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'LI' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'LINK' => {
    'CHARSET'     => '%Charset',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'HREF'        => '%URI',
    'HREFLANG'    => '%LanguageCode',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'MEDIA'       => '%MediaDesc',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'REL'         => '%LinkTypes',
    'REV'         => '%LinkTypes',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'TYPE'        => '%ContentType',
  },
  'MAP' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NAME'        => '%Name',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'META' => {
    'CONTENT'    => 'CDATA',
    'DIR'        => 'LTR|RTL',
    'HTTP-EQUIV' => 'NAME',
    'LANG'       => '%LanguageCode',
    'NAME'       => 'NAME',
    'SCHEME'     => 'CDATA',
  },
  'NOSCRIPT' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'OBJECT' => {
    'ARCHIVE'     => '%URIs',
    'CLASS'       => '%Class',
    'CLASSID'     => '%URI',
    'CODEBASE'    => '%URI',
    'CODETYPE'    => '%ContentType',
    'DATA'        => '%URI',
    'DECLARE'     => 'DECLARE',
    'DIR'         => 'LTR|RTL',
    'HEIGHT'      => '%Length',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NAME'        => '%Name',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STANDBY'     => '%Text',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
    'TYPE'        => '%ContentType',
    'USEMAP'      => '%URI',
    'WIDTH'       => '%Length',
  },
  'OL' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'OPTGROUP' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LABEL'       => '%Text',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'OPTION' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LABEL'       => '%Text',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SELECTED'    => 'SELECTED',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALUE'       => 'CDATA',
  },
  'P' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'PARAM' => {
    'ID'        => 'ID',
    'NAME'      => '%Name',
    'TYPE'      => '%ContentType',
    'VALUE'     => 'CDATA',
    'VALUETYPE' => 'DATA|REF|OBJECT',
  },
  'PRE' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'Q' => {
    'CITE'        => '%URI',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'SAMP' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'SCRIPT' => {
    'CHARSET' => '%Charset',
    'DEFER'   => 'DEFER',
    'EVENT'   => 'CDATA',
    'FOR'     => '%URI',
    'SRC'     => '%URI',
    'TYPE'    => '%ContentType',
  },
  'SELECT' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'MULTIPLE'    => 'MULTIPLE',
    'NAME'        => '%Name',
    'ONBLUR'      => '%Script',
    'ONCHANGE'    => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'SIZE'        => 'NUMBER',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
  },
  'SMALL' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'SPAN' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'STRONG' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'STYLE' => {
    'DIR'   => 'LTR|RTL',
    'LANG'  => '%LanguageCode',
    'MEDIA' => '%MediaDesc',
    'TITLE' => '%Text',
    'TYPE'  => '%ContentType',
  },
  'SUB' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'SUP' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'TABLE' => {
    'BORDER'       => '%Pixels',
    'CELLPADDING'  => '%Length',
    'CELLSPACING'  => '%Length',
    'CLASS'        => '%Class',
    'DATAPAGESIZE' => 'CDATA',
    'DIR'          => 'LTR|RTL',
    'FRAME'        => 'VOID|ABOVE|BELOW|HSIDES|LHS|RHS|VSIDES|BOX|BORDER',
    'ID'           => 'ID',
    'LANG'         => '%LanguageCode',
    'ONCLICK'      => '%Script',
    'ONDBLCLICK'   => '%Script',
    'ONKEYDOWN'    => '%Script',
    'ONKEYPRESS'   => '%Script',
    'ONKEYUP'      => '%Script',
    'ONMOUSEDOWN'  => '%Script',
    'ONMOUSEMOVE'  => '%Script',
    'ONMOUSEOUT'   => '%Script',
    'ONMOUSEOVER'  => '%Script',
    'ONMOUSEUP'    => '%Script',
    'RULES'        => 'NONE|GROUPS|ROWS|COLS|ALL',
    'STYLE'        => '%StyleSheet',
    'SUMMARY'      => '%Text',
    'TITLE'        => '%Text',
    'WIDTH'        => '%Length',
  },
  'TBODY' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'TD' => {
    'ABBR'        => '%Text',
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'AXIS'        => 'CDATA',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'COLSPAN'     => 'NUMBER',
    'DIR'         => 'LTR|RTL',
    'HEADERS'     => 'IDREFS',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'ROWSPAN'     => 'NUMBER',
    'SCOPE'       => 'ROW|COL|ROWGROUP|COLGROUP',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'TEXTAREA' => {
    'ACCESSKEY'   => '%Character',
    'CLASS'       => '%Class',
    'COLS'        => 'NUMBER',
    'DIR'         => 'LTR|RTL',
    'DISABLED'    => 'DISABLED',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'NAME'        => '%Name',
    'ONBLUR'      => '%Script',
    'ONCHANGE'    => '%Script',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONFOCUS'     => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'ONSELECT'    => '%Script',
    'READONLY'    => 'READONLY',
    'ROWS'        => 'NUMBER',
    'STYLE'       => '%StyleSheet',
    'TABINDEX'    => 'NUMBER',
    'TITLE'       => '%Text',
  },
  'TFOOT' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'TH' => {
    'ABBR'        => '%Text',
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'AXIS'        => 'CDATA',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'COLSPAN'     => 'NUMBER',
    'DIR'         => 'LTR|RTL',
    'HEADERS'     => 'IDREFS',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'ROWSPAN'     => 'NUMBER',
    'SCOPE'       => 'ROW|COL|ROWGROUP|COLGROUP',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'THEAD' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'TITLE' => {
    'DIR'  => 'LTR|RTL',
    'LANG' => '%LanguageCode',
  },
  'TR' => {
    'ALIGN'       => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
    'CHAR'        => '%Character',
    'CHAROFF'     => '%Length',
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
    'VALIGN'      => 'TOP|MIDDLE|BOTTOM|BASELINE',
  },
  'TT' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'UL' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
  'VAR' => {
    'CLASS'       => '%Class',
    'DIR'         => 'LTR|RTL',
    'ID'          => 'ID',
    'LANG'        => '%LanguageCode',
    'ONCLICK'     => '%Script',
    'ONDBLCLICK'  => '%Script',
    'ONKEYDOWN'   => '%Script',
    'ONKEYPRESS'  => '%Script',
    'ONKEYUP'     => '%Script',
    'ONMOUSEDOWN' => '%Script',
    'ONMOUSEMOVE' => '%Script',
    'ONMOUSEOUT'  => '%Script',
    'ONMOUSEOVER' => '%Script',
    'ONMOUSEUP'   => '%Script',
    'STYLE'       => '%StyleSheet',
    'TITLE'       => '%Text',
  },
);
%requiredAttrs = (
  'AREA'     => 'ALT',
  'BASE'     => 'HREF',
  'BDO'      => 'DIR',
  'FORM'     => 'ACTION',
  'IMG'      => 'SRC&ALT',
  'MAP'      => 'NAME',
  'META'     => 'CONTENT',
  'OPTGROUP' => 'LABEL',
  'PARAM'    => 'NAME',
  'SCRIPT'   => 'TYPE',
  'STYLE'    => 'TYPE',
  'TEXTAREA' => 'ROWS&COLS',
);
#======= ENTITIES =======
%refEntities = (
  'AElig'    => '&#198;',
  'Aacute'   => '&#193;',
  'Acirc'    => '&#194;',
  'Agrave'   => '&#192;',
  'Alpha'    => '&#913;',
  'Aring'    => '&#197;',
  'Atilde'   => '&#195;',
  'Auml'     => '&#196;',
  'Beta'     => '&#914;',
  'Ccedil'   => '&#199;',
  'Chi'      => '&#935;',
  'Dagger'   => '&#8225;',
  'Delta'    => '&#916;',
  'ETH'      => '&#208;',
  'Eacute'   => '&#201;',
  'Ecirc'    => '&#202;',
  'Egrave'   => '&#200;',
  'Epsilon'  => '&#917;',
  'Eta'      => '&#919;',
  'Euml'     => '&#203;',
  'Gamma'    => '&#915;',
  'Iacute'   => '&#205;',
  'Icirc'    => '&#206;',
  'Igrave'   => '&#204;',
  'Iota'     => '&#921;',
  'Iuml'     => '&#207;',
  'Kappa'    => '&#922;',
  'Lambda'   => '&#923;',
  'Mu'       => '&#924;',
  'Ntilde'   => '&#209;',
  'Nu'       => '&#925;',
  'OElig'    => '&#338;',
  'Oacute'   => '&#211;',
  'Ocirc'    => '&#212;',
  'Ograve'   => '&#210;',
  'Omega'    => '&#937;',
  'Omicron'  => '&#927;',
  'Oslash'   => '&#216;',
  'Otilde'   => '&#213;',
  'Ouml'     => '&#214;',
  'Phi'      => '&#934;',
  'Pi'       => '&#928;',
  'Prime'    => '&#8243;',
  'Psi'      => '&#936;',
  'Rho'      => '&#929;',
  'Scaron'   => '&#352;',
  'Sigma'    => '&#931;',
  'THORN'    => '&#222;',
  'Tau'      => '&#932;',
  'Theta'    => '&#920;',
  'Uacute'   => '&#218;',
  'Ucirc'    => '&#219;',
  'Ugrave'   => '&#217;',
  'Upsilon'  => '&#933;',
  'Uuml'     => '&#220;',
  'Xi'       => '&#926;',
  'Yacute'   => '&#221;',
  'Yuml'     => '&#376;',
  'Zeta'     => '&#918;',
  'aacute'   => '&#225;',
  'acirc'    => '&#226;',
  'acute'    => '&#180;',
  'aelig'    => '&#230;',
  'agrave'   => '&#224;',
  'alefsym'  => '&#8501;',
  'alpha'    => '&#945;',
  'amp'      => '&#38;',
  'and'      => '&#8743;',
  'ang'      => '&#8736;',
  'aring'    => '&#229;',
  'asymp'    => '&#8776;',
  'atilde'   => '&#227;',
  'auml'     => '&#228;',
  'bdquo'    => '&#8222;',
  'beta'     => '&#946;',
  'brvbar'   => '&#166;',
  'bull'     => '&#8226;',
  'cap'      => '&#8745;',
  'ccedil'   => '&#231;',
  'cedil'    => '&#184;',
  'cent'     => '&#162;',
  'chi'      => '&#967;',
  'circ'     => '&#710;',
  'clubs'    => '&#9827;',
  'cong'     => '&#8773;',
  'copy'     => '&#169;',
  'crarr'    => '&#8629;',
  'cup'      => '&#8746;',
  'curren'   => '&#164;',
  'dArr'     => '&#8659;',
  'dagger'   => '&#8224;',
  'darr'     => '&#8595;',
  'deg'      => '&#176;',
  'delta'    => '&#948;',
  'diams'    => '&#9830;',
  'divide'   => '&#247;',
  'eacute'   => '&#233;',
  'ecirc'    => '&#234;',
  'egrave'   => '&#232;',
  'empty'    => '&#8709;',
  'emsp'     => '&#8195;',
  'ensp'     => '&#8194;',
  'epsilon'  => '&#949;',
  'equiv'    => '&#8801;',
  'eta'      => '&#951;',
  'eth'      => '&#240;',
  'euml'     => '&#235;',
  'euro'     => '&#8364;',
  'exist'    => '&#8707;',
  'fnof'     => '&#402;',
  'forall'   => '&#8704;',
  'frac12'   => '&#189;',
  'frac14'   => '&#188;',
  'frac34'   => '&#190;',
  'frasl'    => '&#8260;',
  'gamma'    => '&#947;',
  'ge'       => '&#8805;',
  'gt'       => '&#62;',
  'hArr'     => '&#8660;',
  'harr'     => '&#8596;',
  'hearts'   => '&#9829;',
  'hellip'   => '&#8230;',
  'iacute'   => '&#237;',
  'icirc'    => '&#238;',
  'iexcl'    => '&#161;',
  'igrave'   => '&#236;',
  'image'    => '&#8465;',
  'infin'    => '&#8734;',
  'int'      => '&#8747;',
  'iota'     => '&#953;',
  'iquest'   => '&#191;',
  'isin'     => '&#8712;',
  'iuml'     => '&#239;',
  'kappa'    => '&#954;',
  'lArr'     => '&#8656;',
  'lambda'   => '&#955;',
  'lang'     => '&#9001;',
  'laquo'    => '&#171;',
  'larr'     => '&#8592;',
  'lceil'    => '&#8968;',
  'ldquo'    => '&#8220;',
  'le'       => '&#8804;',
  'lfloor'   => '&#8970;',
  'lowast'   => '&#8727;',
  'loz'      => '&#9674;',
  'lrm'      => '&#8206;',
  'lsaquo'   => '&#8249;',
  'lsquo'    => '&#8216;',
  'lt'       => '&#60;',
  'macr'     => '&#175;',
  'mdash'    => '&#8212;',
  'micro'    => '&#181;',
  'middot'   => '&#183;',
  'minus'    => '&#8722;',
  'mu'       => '&#956;',
  'nabla'    => '&#8711;',
  'nbsp'     => '&#160;',
  'ndash'    => '&#8211;',
  'ne'       => '&#8800;',
  'ni'       => '&#8715;',
  'not'      => '&#172;',
  'notin'    => '&#8713;',
  'nsub'     => '&#8836;',
  'ntilde'   => '&#241;',
  'nu'       => '&#957;',
  'oacute'   => '&#243;',
  'ocirc'    => '&#244;',
  'oelig'    => '&#339;',
  'ograve'   => '&#242;',
  'oline'    => '&#8254;',
  'omega'    => '&#969;',
  'omicron'  => '&#959;',
  'oplus'    => '&#8853;',
  'or'       => '&#8744;',
  'ordf'     => '&#170;',
  'ordm'     => '&#186;',
  'oslash'   => '&#248;',
  'otilde'   => '&#245;',
  'otimes'   => '&#8855;',
  'ouml'     => '&#246;',
  'para'     => '&#182;',
  'part'     => '&#8706;',
  'permil'   => '&#8240;',
  'perp'     => '&#8869;',
  'phi'      => '&#966;',
  'pi'       => '&#960;',
  'piv'      => '&#982;',
  'plusmn'   => '&#177;',
  'pound'    => '&#163;',
  'prime'    => '&#8242;',
  'prod'     => '&#8719;',
  'prop'     => '&#8733;',
  'psi'      => '&#968;',
  'quot'     => '&#34;',
  'rArr'     => '&#8658;',
  'radic'    => '&#8730;',
  'rang'     => '&#9002;',
  'raquo'    => '&#187;',
  'rarr'     => '&#8594;',
  'rceil'    => '&#8969;',
  'rdquo'    => '&#8221;',
  'real'     => '&#8476;',
  'reg'      => '&#174;',
  'rfloor'   => '&#8971;',
  'rho'      => '&#961;',
  'rlm'      => '&#8207;',
  'rsaquo'   => '&#8250;',
  'rsquo'    => '&#8217;',
  'sbquo'    => '&#8218;',
  'scaron'   => '&#353;',
  'sdot'     => '&#8901;',
  'sect'     => '&#167;',
  'shy'      => '&#173;',
  'sigma'    => '&#963;',
  'sigmaf'   => '&#962;',
  'sim'      => '&#8764;',
  'spades'   => '&#9824;',
  'sub'      => '&#8834;',
  'sube'     => '&#8838;',
  'sum'      => '&#8721;',
  'sup'      => '&#8835;',
  'sup1'     => '&#185;',
  'sup2'     => '&#178;',
  'sup3'     => '&#179;',
  'supe'     => '&#8839;',
  'szlig'    => '&#223;',
  'tau'      => '&#964;',
  'there4'   => '&#8756;',
  'theta'    => '&#952;',
  'thetasym' => '&#977;',
  'thinsp'   => '&#8201;',
  'thorn'    => '&#254;',
  'tilde'    => '&#732;',
  'times'    => '&#215;',
  'trade'    => '&#8482;',
  'uArr'     => '&#8657;',
  'uacute'   => '&#250;',
  'uarr'     => '&#8593;',
  'ucirc'    => '&#251;',
  'ugrave'   => '&#249;',
  'uml'      => '&#168;',
  'upsih'    => '&#978;',
  'upsilon'  => '&#965;',
  'uuml'     => '&#252;',
  'weierp'   => '&#8472;',
  'xi'       => '&#958;',
  'yacute'   => '&#253;',
  'yen'      => '&#165;',
  'yuml'     => '&#255;',
  'zeta'     => '&#950;',
  'zwj'      => '&#8205;',
  'zwnj'     => '&#8204;',
);
%refParams = (
  'Character'    => '[\x20-\x7E]',
  'Charset'      => 'CDATA+',
  'Charsets'     => 'CDATA+',
  'Class'        => 'CDATA+',
  'ContentType'  => 'CDATA+',
  'ContentTypes' => 'CDATA+',
  'Coords'       => '(?:\d+(?:\s*,\s*|\s+))+\d+',
  'Datetime'      => '\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])(?:T(?:[0-1][0-9]|2[0-3]):(?:[0-5][0-9]):(?:[0-5][0-9])(?:Z|[\+\-][0-5][0-9]:[0-5][0-9]))',
  'LanguageCode' => '(?i)[A-Z]{1,8}(?:-[A-Z]{1,8})*',
  'Length'       => '\d+%?',
  'LinkTypes'    => 'CDATA+',
  'MediaDesc'    => 'CDATA+',
  'MultiLength'  => '(?:\d+(?:\.\d+)?(?:\*|%)?|\*)',
  'Name'         => 'CDATA+',
  'Pixels'       => '\d+',
  'Script'       => 'CDATA',
  'StyleSheet'   => 'CDATA',
  'Text'         => 'CDATA',
  'URI'          => '&URL',
  'URIs'         => '&URLs',
);

1;
