home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2001 December (DVD) / VPR0112A.ISO / OLS / HTMLLINT / htmllint.lzh / ie30b.rul < prev    next >
Text File  |  2001-03-25  |  52KB  |  1,374 lines

  1. # Microsoft Internet Explorer 3.0 (v0.9 11/7/96)
  2.  
  3. #======= ELEMENTS =======
  4. $emptyTags = 'AREA|BASE|BASEFONT|BGSOUND|BR|COL|FRAME|HR|IFRAME|IMG|INPUT'.
  5.              '|ISINDEX|LINK|META|NEXTID|NOBR|PARAM|WBR';
  6. $pairTags = 'A|ADDRESS|APPLET|B|BIG|BLOCKQUOTE|BODY|CAPTION|CENTER|CITE|CODE'.
  7.             '|COLGROUP|DD|DFN|DIR|DIV|DL|DT|EM|EMBED|ENTITY|FONT|FORM'.
  8.             '|FRAMESET|H1|H2|H3|H4|H5|H6|HEAD|HTML|I|KBD|LI|LISTING|MAP'.
  9.             '|MARQUEE|MENU|NOEMBED|NOFRAMES|NOSCRIPT|OBJECT|OL|OPTION|P'.
  10.             '|PLAINTEXT|PRE|S|SAMP|SCRIPT|SELECT|SMALL|SPAN|STRIKE|STRONG'.
  11.             '|STYLE|SUB|SUP|TABLE|TBODY|TD|TEXTAREA|TEXTFLOW|TFOOT|TH|THEAD'.
  12.             '|TITLE|TR|TT|U|UL|VAR|XMP';
  13. $deprecatedTags = 'CENTER|EMBED|ENTITY|LISTING|NEXTID|NOEMBED|PLAINTEXT|S|XMP';
  14. $omitStartTags = 'BODY|HEAD|HTML|TBODY|TEXTFLOW';
  15. $omitEndTags = 'BODY|COLGROUP|DD|DT|HEAD|HTML|LI|MARQUEE|OPTION|P|PLAINTEXT'.
  16.                '|TBODY|TD|TEXTFLOW|TFOOT|TH|THEAD|TR';
  17. #$maybeEmpty = 'A|ADDRESS|B|BIG|BLOCKQUOTE|BODY|CENTER|CITE|CODE|COLGROUP|DD'.
  18. #              '|DFN|DIR|DIV|DL|DT|EM|EMBED|ENTITY|FONT|FORM|H1|H2|H3|H4|H5|H6'.
  19. #              '|I|KBD|LI|LISTING|MAP|MARQUEE|MENU|NOEMBED|NOFRAMES|NOSCRIPT'.
  20. #              '|OBJECT|OL|OPTION|P|PLAINTEXT|PRE|S|SAMP|SCRIPT|SMALL|SPAN'.
  21. #              '|STRIKE|STRONG|STYLE|SUB|SUP|TD|TEXTAREA|TEXTFLOW|TH|TITLE|TT'.
  22. #              '|U|UL|VAR|XMP';
  23. $maybeEmpty = 'COLGROUP|LISTING|OBJECT|PLAINTEXT|PRE|SCRIPT|STYLE|TD|TEXTAREA|TH|XMP';
  24. %requiredTags = (
  25.   'APPLET' => 'TEXTFLOW',
  26.   'HEAD'   => 'TITLE',
  27.   'HTML'   => 'HEAD|#000',
  28.   'TABLE'  => 'TBODY',
  29. );
  30. %onceonlyTags = (
  31.   '#000'   => 'BODY|FRAMESET',
  32.   'APPLET' => 'TEXTFLOW',
  33.   'HEAD'   => 'TITLE|ISINDEX|BASE|NEXTID',
  34.   'HTML'   => 'HEAD|#000',
  35.   'TABLE'  => 'CAPTION|THEAD|TFOOT',
  36. );
  37. $sequencialTags = 'TABLE|HTML|APPLET';
  38. %tagsElements = (
  39.   '#000'       => 'BODY|FRAMESET',
  40.   'A'          => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  41.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  42.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  43.                   '|STRIKE|U|B|I|TT|#PCDATA',
  44.   'ADDRESS'    => 'CENTER|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE'.
  45.                   '|BGSOUND|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN'.
  46.                   '|ENTITY|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP'.
  47.                   '|SUB|SMALL|BIG|STRIKE|U|B|I|TT|#PCDATA',
  48.   'APPLET'     => 'PARAM|TEXTFLOW',
  49.   'B'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  50.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  51.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  52.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  53.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  54.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  55.   'BIG'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  56.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  57.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  58.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  59.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  60.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  61.   'BLOCKQUOTE' => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  62.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  63.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  64.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  65.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  66.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  67.   'BODY'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  68.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  69.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  70.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  71.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  72.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  73.   'CAPTION'    => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  74.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  75.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  76.                   '|STRIKE|U|B|I|TT|#PCDATA',
  77.   'CENTER'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  78.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  79.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  80.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  81.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  82.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  83.   'CITE'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  84.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  85.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  86.                   '|STRIKE|U|B|I|TT|#PCDATA',
  87.   'CODE'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  88.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  89.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  90.                   '|STRIKE|U|B|I|TT|#PCDATA',
  91.   'COLGROUP'   => 'COL',
  92.   'DD'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  93.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  94.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  95.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  96.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  97.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  98.   'DFN'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  99.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  100.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  101.                   '|STRIKE|U|B|I|TT|#PCDATA',
  102.   'DIR'        => 'LI',
  103.   'DIV'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  104.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  105.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  106.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  107.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  108.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  109.   'DL'         => 'DD|DT',
  110.   'DT'         => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  111.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  112.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  113.                   '|STRIKE|U|B|I|TT|#PCDATA',
  114.   'EM'         => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  115.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  116.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  117.                   '|STRIKE|U|B|I|TT|#PCDATA',
  118.   'EMBED'      => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  119.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  120.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  121.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  122.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  123.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1|NOEMBED',
  124.   'ENTITY'     => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  125.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  126.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  127.                   '|STRIKE|U|B|I|TT|#PCDATA',
  128.   'FONT'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  129.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  130.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  131.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  132.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  133.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  134.   'FORM'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|BLOCKQUOTE'.
  135.                   '|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  136.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  137.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  138.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  139.                   '|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1|INPUT|SELECT'.
  140.                   '|TEXTAREA',
  141.   'FRAMESET'   => 'NOFRAMES|FRAME|FRAMESET',
  142.   'H1'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  143.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  144.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  145.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  146.   'H2'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  147.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  148.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  149.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  150.   'H3'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  151.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  152.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  153.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  154.   'H4'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  155.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  156.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  157.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  158.   'H5'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  159.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  160.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  161.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  162.   'H6'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  163.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  164.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  165.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  166.   'HEAD'       => 'TITLE|ISINDEX|BASE|NEXTID|SCRIPT|STYLE|META|LINK|BGSOUND',
  167.   'HTML'       => 'HEAD|#000',
  168.   'I'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  169.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  170.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  171.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  172.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  173.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  174.   'KBD'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  175.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  176.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  177.                   '|STRIKE|U|B|I|TT|#PCDATA',
  178.   'LI'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  179.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  180.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  181.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  182.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  183.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  184.   'LISTING'    => '%literal',
  185.   'MAP'        => 'AREA',
  186.   'MARQUEE'    => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  187.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  188.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  189.                   '|STRIKE|U|B|I|TT|#PCDATA',
  190.   'MENU'       => 'LI',
  191.   'NOFRAMES'   => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  192.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  193.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  194.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  195.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  196.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  197.   'NOSCRIPT'   => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  198.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  199.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  200.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  201.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  202.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  203.   'OBJECT'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  204.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  205.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  206.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  207.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  208.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1|PARAM',
  209.   'OL'         => 'LI',
  210.   'OPTION'     => '#PCDATA',
  211.   'P'          => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  212.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  213.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  214.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA',
  215.   'PLAINTEXT'  => '%literal',
  216.   'PRE'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  217.                   '|NOSCRIPT|SCRIPT|APPLET|A|WBR|NOBR|BR|SPAN|ENTITY|CITE|VAR'.
  218.                   '|KBD|SAMP|CODE|DFN|STRONG|EM|S|STRIKE|U|B|I|TT|#PCDATA',
  219.   'S'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  220.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  221.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  222.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  223.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  224.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  225.   'SAMP'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  226.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  227.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  228.                   '|STRIKE|U|B|I|TT|#PCDATA',
  229.   'SCRIPT'     => '#PCDATA',
  230.   'SELECT'     => 'OPTION',
  231.   'SMALL'      => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  232.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  233.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  234.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  235.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  236.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  237.   'SPAN'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  238.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  239.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  240.                   '|STRIKE|U|B|I|TT|#PCDATA',
  241.   'STRIKE'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  242.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  243.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  244.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  245.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  246.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  247.   'STRONG'     => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  248.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  249.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  250.                   '|STRIKE|U|B|I|TT|#PCDATA',
  251.   'STYLE'      => '#PCDATA',
  252.   'SUB'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  253.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  254.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  255.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  256.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  257.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  258.   'SUP'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  259.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  260.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  261.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  262.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  263.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  264.   'TABLE'      => 'CAPTION|COLGROUP|THEAD|TFOOT|TBODY',
  265.   'TBODY'      => 'TR',
  266.   'TD'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  267.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  268.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  269.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  270.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  271.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  272.   'TEXTAREA'   => '#PCDATA',
  273.   'TEXTFLOW'   => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  274.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  275.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  276.                   '|STRIKE|U|B|I|TT|#PCDATA',
  277.   'TFOOT'      => 'TR',
  278.   'TH'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  279.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  280.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  281.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  282.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  283.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  284.   'THEAD'      => 'TR',
  285.   'TITLE'      => '#PCDATA',
  286.   'TR'         => 'TD|TH',
  287.   'TT'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  288.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  289.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  290.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  291.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  292.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  293.   'U'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  294.                   '|BLOCKQUOTE|DIV|PLAINTEXT|LISTING|XMP|PRE|MENU|DIR|DL|OL'.
  295.                   '|UL|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  296.                   '|MAP|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY'.
  297.                   '|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL'.
  298.                   '|BIG|STRIKE|U|B|I|TT|#PCDATA|H6|H5|H4|H3|H2|H1',
  299.   'UL'         => 'LI',
  300.   'VAR'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  301.                   '|NOSCRIPT|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|ENTITY|CITE'.
  302.                   '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  303.                   '|STRIKE|U|B|I|TT|#PCDATA',
  304.   'XMP'        => '%literal',
  305. );
  306. %excludedElems = (
  307.   'A'        => 'A',
  308.   'DIR'      => 'P|UL|OL|DL|DIR|MENU|PRE|XMP|LISTING|PLAINTEXT|DIV|BLOCKQUOTE'.
  309.                 '|FORM|ISINDEX|HR|TABLE|IFRAME|CENTER',
  310.   'FORM'     => 'FORM',
  311.   'MENU'     => 'P|UL|OL|DL|DIR|MENU|PRE|XMP|LISTING|PLAINTEXT|DIV|BLOCKQUOTE'.
  312.                 '|FORM|ISINDEX|HR|TABLE|IFRAME|CENTER',
  313.   'PRE'      => 'IMG|BIG|SMALL|SUB|SUP|FONT',
  314.   'SCRIPT'   => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  315.   'STYLE'    => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  316.   'TEXTAREA' => 'INPUT|SELECT|TEXTAREA',
  317.   'TITLE'    => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  318. );
  319. %includedElems = (
  320.   'FORM' => 'INPUT|SELECT|TEXTAREA',
  321.   'HEAD' => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  322. );
  323. %deprecatedElems = (
  324.   'A'          => 'INPUT|SELECT|TEXTAREA',
  325.   'ADDRESS'    => 'INPUT|SELECT|TEXTAREA',
  326.   'B'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  327.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  328.                   '|TEXTAREA|UL',
  329.   'BIG'        => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  330.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  331.                   '|TEXTAREA|UL',
  332.   'BLOCKQUOTE' => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  333.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  334.                   '|U|VAR|WBR',
  335.   'BODY'       => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  336.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  337.                   '|U|VAR|WBR',
  338.   'CAPTION'    => 'INPUT|SELECT|TEXTAREA',
  339.   'CITE'       => 'INPUT|SELECT|TEXTAREA',
  340.   'CODE'       => 'INPUT|SELECT|TEXTAREA',
  341.   'DD'         => 'ADDRESS|BASEFONT|H1|H2|H3|H4|H5|H6|INPUT|SELECT|TEXTAREA',
  342.   'DFN'        => 'INPUT|SELECT|TEXTAREA',
  343.   'DIV'        => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  344.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  345.                   '|U|VAR|WBR',
  346.   'DT'         => 'INPUT|SELECT|TEXTAREA',
  347.   'EM'         => 'INPUT|SELECT|TEXTAREA',
  348.   'FONT'       => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  349.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  350.                   '|TEXTAREA|UL',
  351.   'FORM'       => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|KBD|NOBR|SAMP'.
  352.                   '|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TT|U|VAR|WBR',
  353.   'H1'         => 'INPUT|SELECT|TEXTAREA',
  354.   'H2'         => 'INPUT|SELECT|TEXTAREA',
  355.   'H3'         => 'INPUT|SELECT|TEXTAREA',
  356.   'H4'         => 'INPUT|SELECT|TEXTAREA',
  357.   'H5'         => 'INPUT|SELECT|TEXTAREA',
  358.   'H6'         => 'INPUT|SELECT|TEXTAREA',
  359.   'I'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  360.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  361.                   '|TEXTAREA|UL',
  362.   'KBD'        => 'INPUT|SELECT|TEXTAREA',
  363.   'LI'         => 'ADDRESS|BASEFONT|H1|H2|H3|H4|H5|H6|INPUT|SELECT|TEXTAREA',
  364.   'MARQUEE'    => 'INPUT|SELECT|TEXTAREA',
  365.   'NOFRAMES'   => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  366.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  367.                   '|U|VAR|WBR',
  368.   'NOSCRIPT'   => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  369.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  370.                   '|U|VAR|WBR',
  371.   'OBJECT'     => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  372.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  373.                   '|U|VAR|WBR',
  374.   'P'          => 'INPUT|SELECT|TEXTAREA',
  375.   'PRE'        => 'INPUT|SELECT|TEXTAREA',
  376.   'SAMP'       => 'INPUT|SELECT|TEXTAREA',
  377.   'SMALL'      => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  378.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  379.                   '|TEXTAREA|UL',
  380.   'SPAN'       => 'INPUT|SELECT|TEXTAREA',
  381.   'STRIKE'     => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  382.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  383.                   '|TEXTAREA|UL',
  384.   'STRONG'     => 'INPUT|SELECT|TEXTAREA',
  385.   'SUB'        => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  386.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  387.                   '|TEXTAREA|UL',
  388.   'SUP'        => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  389.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  390.                   '|TEXTAREA|UL',
  391.   'TD'         => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  392.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  393.                   '|U|VAR|WBR',
  394.   'TEXTFLOW'   => 'INPUT|SELECT|TEXTAREA',
  395.   'TH'         => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  396.                   '|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA|TT'.
  397.                   '|U|VAR|WBR',
  398.   'TT'         => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  399.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  400.                   '|TEXTAREA|UL',
  401.   'U'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  402.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  403.                   '|TEXTAREA|UL',
  404.   'VAR'        => 'INPUT|SELECT|TEXTAREA',
  405. );
  406. #======= ATTRIBUTES =======
  407. %tagsAttributes = (
  408.   'A' => {
  409.     'CLASS'  => 'NAMES',
  410.     'HREF'   => '%URL',
  411.     'ID'     => 'ID',
  412.     'LANG'   => 'CDATA',
  413.     'NAME'   => 'CDATA',
  414.     'REL'    => 'CDATA',
  415.     'REV'    => 'CDATA',
  416.     'STYLE'  => 'CDATA',
  417.     'TARGET' => 'CDATA',
  418.     'TITLE'  => 'CDATA',
  419.   },
  420.   'ADDRESS' => {
  421.     'CLASS' => 'NAMES',
  422.     'ID'    => 'ID',
  423.     'LANG'  => 'CDATA',
  424.     'STYLE' => 'CDATA',
  425.   },
  426.   'APPLET' => {
  427.     'ALIGN'    => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  428.     'ALT'      => 'CDATA',
  429.     'BORDER'   => 'NUMBER',
  430.     'CLASS'    => 'NAMES',
  431.     'CODE'     => 'CDATA',
  432.     'CODEBASE' => '%URL',
  433.     'HEIGHT'   => '%Pixels',
  434.     'HSPACE'   => '%Pixels',
  435.     'ID'       => 'ID',
  436.     'LANG'     => 'CDATA',
  437.     'NAME'     => 'CDATA',
  438.     'STYLE'    => 'CDATA',
  439.     'VSPACE'   => '%Pixels',
  440.     'WIDTH'    => '%Pixels',
  441.   },
  442.   'AREA' => {
  443.     'ALT'    => 'CDATA',
  444.     'CLASS'  => 'NAMES',
  445.     'COORDS' => '%COORDS',
  446.     'HREF'   => '%URL',
  447.     'ID'     => 'ID',
  448.     'LANG'   => 'CDATA',
  449.     'NOHREF' => 'NOHREF',
  450.     'SHAPE'  => 'RECT|RECTANGLE|CIRC|CIRCLE|POLY|POLYGON|DEFAULT',
  451.     'STYLE'  => 'CDATA',
  452.     'TARGET' => 'CDATA',
  453.   },
  454.   'B' => {
  455.     'CLASS' => 'NAMES',
  456.     'COLOR' => '%color',
  457.     'FACE'  => 'CDATA',
  458.     'ID'    => 'ID',
  459.     'LANG'  => 'CDATA',
  460.     'SIZE'  => 'CDATA',
  461.     'STYLE' => 'CDATA',
  462.   },
  463.   'BASE' => {
  464.     'HREF'   => '%URL',
  465.     'TARGET' => 'CDATA',
  466.   },
  467.   'BASEFONT' => {
  468.     'CLASS' => 'NAMES',
  469.     'COLOR' => '%color',
  470.     'FACE'  => 'CDATA',
  471.     'ID'    => 'ID',
  472.     'LANG'  => 'CDATA',
  473.     'SIZE'  => '%fsize', # org:NUMBER
  474.     'STYLE' => 'CDATA',
  475.   },
  476.   'BGSOUND' => {
  477.     'CLASS' => 'NAMES',
  478.     'ID'    => 'ID',
  479.     'LANG'  => 'CDATA',
  480.     'LOOP'  => 'NMTOKEN',
  481.     'SRC'   => '%URL',
  482.     'START' => 'CDATA',
  483.     'STYLE' => 'CDATA',
  484.   },
  485.   'BIG' => {
  486.     'CLASS' => 'NAMES',
  487.     'COLOR' => '%color',
  488.     'FACE'  => 'CDATA',
  489.     'ID'    => 'ID',
  490.     'LANG'  => 'CDATA',
  491.     'SIZE'  => 'CDATA',
  492.     'STYLE' => 'CDATA',
  493.   },
  494.   'BLOCKQUOTE' => {
  495.     'CLASS' => 'NAMES',
  496.     'ID'    => 'ID',
  497.     'LANG'  => 'CDATA',
  498.     'STYLE' => 'CDATA',
  499.   },
  500.   'BODY' => {
  501.     'ALINK'        => '%color',
  502.     'BACKGROUND'   => '%URL',
  503.     'BGCOLOR'      => '%color',
  504.     'BGPROPERTIES' => 'CDATA',
  505.     'CLASS'        => 'NAMES',
  506.     'ID'           => 'ID',
  507.     'LANG'         => 'CDATA',
  508.     'LEFTMARGIN'   => 'NUMBER',
  509.     'LINK'         => '%color',
  510.     'STYLE'        => 'CDATA',
  511.     'TEXT'         => '%color',
  512.     'TOPMARGIN'    => 'NUMBER',
  513.     'VLINK'        => '%color',
  514.   },
  515.   'BR' => {
  516.     'CLASS' => 'NAMES',
  517.     'CLEAR' => 'LEFT|ALL|RIGHT|NONE',
  518.     'ID'    => 'ID',
  519.     'LANG'  => 'CDATA',
  520.     'STYLE' => 'CDATA',
  521.   },
  522.   'CAPTION' => {
  523.     'ALIGN'  => 'TOP|BOTTOM',
  524.     'CLASS'  => 'NAMES',
  525.     'HEIGHT' => 'CDATA',
  526.     'ID'     => 'ID',
  527.     'LANG'   => 'CDATA',
  528.     'STYLE'  => 'CDATA',
  529.     'WIDTH'  => '%Length', # org:CDATA
  530.   },
  531.   'CENTER' => {
  532.     'CLASS' => 'NAMES',
  533.     'ID'    => 'ID',
  534.     'LANG'  => 'CDATA',
  535.     'STYLE' => 'CDATA',
  536.   },
  537.   'CITE' => {
  538.     'CLASS' => 'NAMES',
  539.     'ID'    => 'ID',
  540.     'LANG'  => 'CDATA',
  541.     'STYLE' => 'CDATA',
  542.   },
  543.   'CODE' => {
  544.     'CLASS' => 'NAMES',
  545.     'ID'    => 'ID',
  546.     'LANG'  => 'CDATA',
  547.     'STYLE' => 'CDATA',
  548.   },
  549.   'COL' => {
  550.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  551.     'CHAR'    => 'CDATA',
  552.     'CHAROFF' => 'CDATA',
  553.     'CLASS'   => 'NAMES',
  554.     'ID'      => 'ID',
  555.     'LANG'    => 'CDATA',
  556.     'SPAN'    => '%Span',
  557.     'STYLE'   => 'CDATA',
  558.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  559.     'WIDTH'   => '%col-size', # org:CDATA
  560.   },
  561.   'COLGROUP' => {
  562.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  563.     'CHAR'    => 'CDATA',
  564.     'CHAROFF' => 'CDATA',
  565.     'CLASS'   => 'NAMES',
  566.     'ID'      => 'ID',
  567.     'LANG'    => 'CDATA',
  568.     'SPAN'    => '%Span',
  569.     'STYLE'   => 'CDATA',
  570.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  571.     'WIDTH'   => '%Length', # org:CDATA
  572.   },
  573.   'DD' => {
  574.     'CLASS' => 'NAMES',
  575.     'ID'    => 'ID',
  576.     'LANG'  => 'CDATA',
  577.     'STYLE' => 'CDATA',
  578.   },
  579.   'DFN' => {
  580.     'CLASS' => 'NAMES',
  581.     'ID'    => 'ID',
  582.     'LANG'  => 'CDATA',
  583.     'STYLE' => 'CDATA',
  584.   },
  585.   'DIR' => {
  586.     'CLASS'   => 'NAMES',
  587.     'COMPACT' => 'COMPACT',
  588.     'ID'      => 'ID',
  589.     'LANG'    => 'CDATA',
  590.     'STYLE'   => 'CDATA',
  591.   },
  592.   'DIV' => {
  593.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  594.     'CLASS' => 'NAMES',
  595.     'ID'    => 'ID',
  596.     'LANG'  => 'CDATA',
  597.     'STYLE' => 'CDATA',
  598.   },
  599.   'DL' => {
  600.     'CLASS'   => 'NAMES',
  601.     'COMPACT' => 'COMPACT',
  602.     'ID'      => 'ID',
  603.     'LANG'    => 'CDATA',
  604.     'STYLE'   => 'CDATA',
  605.   },
  606.   'DT' => {
  607.     'CLASS' => 'NAMES',
  608.     'ID'    => 'ID',
  609.     'LANG'  => 'CDATA',
  610.     'STYLE' => 'CDATA',
  611.   },
  612.   'EM' => {
  613.     'CLASS' => 'NAMES',
  614.     'ID'    => 'ID',
  615.     'LANG'  => 'CDATA',
  616.     'STYLE' => 'CDATA',
  617.   },
  618.   'EMBED' => {
  619.     'CLASS'  => 'NAMES',
  620.     'HEIGHT' => 'CDATA',
  621.     'ID'     => 'ID',
  622.     'LANG'   => 'CDATA',
  623.     'NAME'   => 'CDATA',
  624.     'PARAM'  => 'CDATA',
  625.     'SRC'    => '%URL',
  626.     'STYLE'  => 'CDATA',
  627.     'WIDTH'  => 'CDATA',
  628.   },
  629.   'ENTITY' => {
  630.     'CLASS' => 'NAMES',
  631.     'ID'    => 'ID',
  632.     'LANG'  => 'CDATA',
  633.     'STYLE' => 'CDATA',
  634.   },
  635.   'FONT' => {
  636.     'CLASS' => 'NAMES',
  637.     'COLOR' => '%color',
  638.     'FACE'  => '%face', # org:CDATA
  639.     'ID'    => 'ID',
  640.     'LANG'  => 'CDATA',
  641.     'SIZE'  => '%rsize', # org:CDATA
  642.     'STYLE' => 'CDATA',
  643.   },
  644.   'FORM' => {
  645.     'ACTION'  => '%URL',
  646.     'CLASS'   => 'NAMES',
  647.     'ENCTYPE' => '%Content-Type',
  648.     'ID'      => 'ID',
  649.     'LANG'    => 'CDATA',
  650.     'METHOD'  => 'GET|POST',
  651.     'NAME'    => 'CDATA',
  652.     'STYLE'   => 'CDATA',
  653.     'TARGET'  => 'CDATA',
  654.   },
  655.   'FRAME' => {
  656.     'ALIGN'        => 'LEFT|CENTER|RIGHT|TOP|TEXTTOP|MIDDLE|ABSMIDDLE'.
  657.                       '|BASELINE|BOTTOM|ABSBOTTOM',
  658.     'CLASS'        => 'NAMES',
  659.     'FRAMEBORDER'  => 'CDATA',
  660.     'FRAMESPACING' => 'NUMBER',
  661.     'HEIGHT'       => 'NUMBER',
  662.     'HSPACE'       => 'NUMBER',
  663.     'ID'           => 'ID',
  664.     'LANG'         => 'CDATA',
  665.     'MARGINHEIGHT' => 'NUMBER',
  666.     'MARGINWIDTH'  => 'NUMBER',
  667.     'NAME'         => 'CDATA',
  668.     'NORESIZE'     => 'NORESIZE',
  669.     'SCROLLING'    => 'YES|NO|AUTO',
  670.     'SRC'          => 'CDATA',
  671.     'STYLE'        => 'CDATA',
  672.     'VSPACE'       => 'NUMBER',
  673.     'WIDTH'        => 'NUMBER',
  674.   },
  675.   'FRAMESET' => {
  676.     'CLASS'        => 'NAMES',
  677.     'COLS'         => 'CDATA',
  678.     'FRAMEBORDER'  => 'NUMBER',
  679.     'FRAMESPACING' => 'CDATA',
  680.     'ID'           => 'ID',
  681.     'LANG'         => 'CDATA',
  682.     'LAYOUT'       => 'TILES|PAGES',
  683.     'ROWS'         => 'CDATA',
  684.     'STYLE'        => 'CDATA',
  685.   },
  686.   'H1' => {
  687.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  688.     'CLASS' => 'NAMES',
  689.     'ID'    => 'ID',
  690.     'LANG'  => 'CDATA',
  691.     'STYLE' => 'CDATA',
  692.   },
  693.   'H2' => {
  694.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  695.     'CLASS' => 'NAMES',
  696.     'ID'    => 'ID',
  697.     'LANG'  => 'CDATA',
  698.     'STYLE' => 'CDATA',
  699.   },
  700.   'H3' => {
  701.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  702.     'CLASS' => 'NAMES',
  703.     'ID'    => 'ID',
  704.     'LANG'  => 'CDATA',
  705.     'STYLE' => 'CDATA',
  706.   },
  707.   'H4' => {
  708.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  709.     'CLASS' => 'NAMES',
  710.     'ID'    => 'ID',
  711.     'LANG'  => 'CDATA',
  712.     'STYLE' => 'CDATA',
  713.   },
  714.   'H5' => {
  715.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  716.     'CLASS' => 'NAMES',
  717.     'ID'    => 'ID',
  718.     'LANG'  => 'CDATA',
  719.     'STYLE' => 'CDATA',
  720.   },
  721.   'H6' => {
  722.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  723.     'CLASS' => 'NAMES',
  724.     'ID'    => 'ID',
  725.     'LANG'  => 'CDATA',
  726.     'STYLE' => 'CDATA',
  727.   },
  728.   'HR' => {
  729.     'ALIGN'   => 'LEFT|RIGHT|CENTER',
  730.     'CLASS'   => 'NAMES',
  731.     'COLOR'   => '%color',
  732.     'ID'      => 'ID',
  733.     'LANG'    => 'CDATA',
  734.     'NOSHADE' => 'NOSHADE',
  735.     'SIZE'    => '%Pixels',
  736.     'STYLE'   => 'CDATA',
  737.     'WIDTH'   => '%Length',
  738.   },
  739.   'HTML' => {
  740.     'CLASS'   => 'NAMES',
  741.     'ID'      => 'ID',
  742.     'LANG'    => 'CDATA',
  743.     'STYLE'   => 'CDATA',
  744.     'VERSION' => 'CDATA=-//Microsoft//DTD Internet Explorer 3.0 HTML//EN',
  745.   },
  746.   'I' => {
  747.     'CLASS' => 'NAMES',
  748.     'COLOR' => '%color',
  749.     'FACE'  => 'CDATA',
  750.     'ID'    => 'ID',
  751.     'LANG'  => 'CDATA',
  752.     'SIZE'  => 'CDATA',
  753.     'STYLE' => 'CDATA',
  754.   },
  755.   'IFRAME' => {
  756.     'ALIGN'        => 'LEFT|CENTER|RIGHT|TOP|MIDDLE|BOTTOM',
  757.     'BORDER'       => 'CDATA',
  758.     'CLASS'        => 'NAMES',
  759.     'FRAMEBORDER'  => 'CDATA',
  760.     'FRAMESPACING' => 'NUMBER',
  761.     'ID'           => 'ID',
  762.     'LANG'         => 'CDATA',
  763.     'MARGINHEIGHT' => 'NUMBER',
  764.     'MARGINWIDTH'  => 'NUMBER',
  765.     'NAME'         => 'CDATA',
  766.     'NORESIZE'     => 'NORESIZE',
  767.     'SCROLLING'    => 'YES|NO|AUTO',
  768.     'SRC'          => 'CDATA',
  769.     'STYLE'        => 'CDATA',
  770.   },
  771.   'IMG' => {
  772.     'ALIGN'    => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  773.     'ALT'      => 'CDATA',
  774.     'BORDER'   => '%Pixels',
  775.     'CLASS'    => 'NAMES',
  776.     'CONTROLS' => 'CONTROLS',
  777.     'DYNSRC'   => '%URL',
  778.     'HEIGHT'   => '%Length', # org:%Pixels
  779.     'HSPACE'   => '%Pixels',
  780.     'ID'       => 'ID',
  781.     'ISMAP'    => 'ISMAP',
  782.     'LANG'     => 'CDATA',
  783.     'LOOP'     => 'NMTOKEN',
  784.     'SRC'      => '%URL',
  785.     'START'    => 'NAMES',
  786.     'STYLE'    => 'CDATA',
  787.     'USEMAP'   => '%URL',
  788.     'VRML'     => 'CDATA',
  789.     'VSPACE'   => '%Pixels',
  790.     'WIDTH'    => '%Length', # org:%Pixels
  791.   },
  792.   'INPUT' => {
  793.     'ALIGN'     => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  794.     'CHECKED'   => 'CHECKED|TRUE|FALSE',
  795.     'CLASS'     => 'NAMES',
  796.     'ID'        => 'ID',
  797.     'LANG'      => 'CDATA',
  798.     'MAXLENGTH' => 'NUMBER',
  799.     'NAME'      => 'CDATA',
  800.     'SIZE'      => 'CDATA',
  801.     'SRC'       => '%URL',
  802.     'STYLE'     => 'CDATA',
  803.     'TYPE'      => 'TEXT|TEXTAREA|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|FILE'.
  804.                    '|HIDDEN|IMAGE',
  805.     'VALUE'     => 'CDATA',
  806.   },
  807.   'ISINDEX' => {
  808.     'ACTION' => 'CDATA',
  809.     'CLASS'  => 'NAMES',
  810.     'ID'     => 'ID',
  811.     'LANG'   => 'CDATA',
  812.     'PROMPT' => 'CDATA',
  813.     'STYLE'  => 'CDATA',
  814.   },
  815.   'KBD' => {
  816.     'CLASS' => 'NAMES',
  817.     'ID'    => 'ID',
  818.     'LANG'  => 'CDATA',
  819.     'STYLE' => 'CDATA',
  820.   },
  821.   'LI' => {
  822.     'CLASS' => 'NAMES',
  823.     'ID'    => 'ID',
  824.     'LANG'  => 'CDATA',
  825.     'STYLE' => 'CDATA',
  826.     'TYPE'  => '%LIStyle',
  827.     'VALUE' => 'NUMBER',
  828.   },
  829.   'LINK' => {
  830.     'CLASS' => 'NAMES',
  831.     'HREF'  => '%URL',
  832.     'ID'    => 'ID',
  833.     'LANG'  => 'CDATA',
  834.     'REL'   => '%Types',
  835.     'REV'   => '%Types',
  836.     'STYLE' => 'CDATA',
  837.     'TITLE' => 'CDATA',
  838.   },
  839.   'LISTING' => {
  840.     'CLASS' => 'NAMES',
  841.     'ID'    => 'ID',
  842.     'LANG'  => 'CDATA',
  843.     'STYLE' => 'CDATA',
  844.   },
  845.   'MAP' => {
  846.     'NAME' => 'CDATA',
  847.   },
  848.   'MARQUEE' => {
  849.     'ALIGN'        => 'TOP|MIDDLE|BOTTOM',
  850.     'BACKGROUND'   => '%URL',
  851.     'BEHAVIOR'     => 'SCROLL|SLIDE|ALTERNATE',
  852.     'BGCOLOR'      => '%color',
  853.     'BORDER'       => 'NUMBER',
  854.     'CLASS'        => 'NAMES',
  855.     'DIRECTION'    => 'LEFT|RIGHT',
  856.     'HEIGHT'       => 'CDATA',
  857.     'HSPACE'       => 'NUMBER',
  858.     'ID'           => 'ID',
  859.     'LANG'         => 'CDATA',
  860.     'LOOP'         => 'CDATA',
  861.     'SCROLLAMOUNT' => 'NUMBER',
  862.     'SCROLLDELAY'  => 'NUMBER',
  863.     'STYLE'        => 'CDATA',
  864.     'VSPACE'       => 'NUMBER',
  865.     'WIDTH'        => '%Length', # org:CDATA
  866.   },
  867.   'MENU' => {
  868.     'CLASS'   => 'NAMES',
  869.     'COMPACT' => 'COMPACT',
  870.     'ID'      => 'ID',
  871.     'LANG'    => 'CDATA',
  872.     'STYLE'   => 'CDATA',
  873.   },
  874.   'META' => {
  875.     'CHARSET'    => 'CDATA',
  876.     'CONTENT'    => 'CDATA',
  877.     'HTTP-EQUIV' => 'NAME',
  878.     'NAME'       => 'NAME',
  879.   },
  880.   'NEXTID' => {
  881.     'N' => 'CDATA',
  882.   },
  883.   'NOBR' => {
  884.     'CLASS' => 'NAMES',
  885.     'ID'    => 'ID',
  886.     'LANG'  => 'CDATA',
  887.     'STYLE' => 'CDATA',
  888.   },
  889.   'NOSCRIPT' => {
  890.     'CLASS' => 'NAMES',
  891.     'ID'    => 'ID',
  892.     'LANG'  => 'CDATA',
  893.     'STYLE' => 'CDATA',
  894.   },
  895.   'OBJECT' => {
  896.     'ALIGN'    => 'TEXTTOP|MIDDLE|TEXTMIDDLE|BASELINE|TEXTBOTTOM|LEFT|CENTER'.
  897.                   '|RIGHT',
  898.     'BORDER'   => '%Length',
  899.     'CLASS'    => 'NAMES',
  900.     'CLASSID'  => '%URL',
  901.     'CODEBASE' => '%URL',
  902.     'CODETYPE' => 'CDATA',
  903.     'DATA'     => '%URL',
  904.     'DECLARE'  => 'DECLARE',
  905.     'HEIGHT'   => '%Length',
  906.     'HSPACE'   => '%Length',
  907.     'ID'       => 'ID',
  908.     'ISMAP'    => 'ISMAP',
  909.     'LANG'     => 'CDATA',
  910.     'NAME'     => '%URL',
  911.     'SHAPES'   => 'SHAPES',
  912.     'STANDBY'  => 'CDATA',
  913.     'STYLE'    => 'CDATA',
  914.     'TYPE'     => 'CDATA',
  915.     'USEMAP'   => '%URL',
  916.     'VSPACE'   => '%Length',
  917.     'WIDTH'    => '%Length',
  918.   },
  919.   'OL' => {
  920.     'CLASS'   => 'NAMES',
  921.     'COMPACT' => 'COMPACT',
  922.     'ID'      => 'ID',
  923.     'LANG'    => 'CDATA',
  924.     'START'   => 'NUMBER',
  925.     'STYLE'   => 'CDATA',
  926.     'TYPE'    => '%OLStyle',
  927.   },
  928.   'OPTION' => {
  929.     'CLASS'    => 'NAMES',
  930.     'ID'       => 'ID',
  931.     'LANG'     => 'CDATA',
  932.     'SELECTED' => 'SELECTED',
  933.     'STYLE'    => 'CDATA',
  934.     'VALUE'    => 'CDATA',
  935.   },
  936.   'P' => {
  937.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  938.     'CLASS' => 'NAMES',
  939.     'ID'    => 'ID',
  940.     'LANG'  => 'CDATA',
  941.     'STYLE' => 'CDATA',
  942.   },
  943.   'PARAM' => {
  944.     'NAME'      => 'CDATA',
  945.     'TYPE'      => 'CDATA',
  946.     'VALUE'     => 'CDATA',
  947.     'VALUETYPE' => 'DATA|REF|OBJECT',
  948.   },
  949.   'PLAINTEXT' => {
  950.     'CLASS' => 'NAMES',
  951.     'ID'    => 'ID',
  952.     'LANG'  => 'CDATA',
  953.     'STYLE' => 'CDATA',
  954.   },
  955.   'PRE' => {
  956.     'CLASS' => 'NAMES',
  957.     'ID'    => 'ID',
  958.     'LANG'  => 'CDATA',
  959.     'STYLE' => 'CDATA',
  960.     'WIDTH' => 'NUMBER',
  961.   },
  962.   'S' => {
  963.     'CLASS' => 'NAMES',
  964.     'ID'    => 'ID',
  965.     'LANG'  => 'CDATA',
  966.     'STYLE' => 'CDATA',
  967.   },
  968.   'SAMP' => {
  969.     'CLASS' => 'NAMES',
  970.     'ID'    => 'ID',
  971.     'LANG'  => 'CDATA',
  972.     'STYLE' => 'CDATA',
  973.   },
  974.   'SCRIPT' => {
  975.     'CLASS'    => 'NAMES',
  976.     'ID'       => 'ID',
  977.     'LANG'     => 'CDATA',
  978.     'LANGUAGE' => 'CDATA',
  979.     'NAME'     => 'CDATA',
  980.     'SRC'      => '%URL',
  981.     'STYLE'    => 'CDATA',
  982.     'TYPE'     => 'CDATA',
  983.   },
  984.   'SELECT' => {
  985.     'CLASS'    => 'NAMES',
  986.     'ID'       => 'ID',
  987.     'LANG'     => 'CDATA',
  988.     'MULTIPLE' => 'MULTIPLE',
  989.     'NAME'     => 'CDATA',
  990.     'SIZE'     => 'NUMBER',
  991.     'STYLE'    => 'CDATA',
  992.   },
  993.   'SMALL' => {
  994.     'CLASS' => 'NAMES',
  995.     'COLOR' => '%color',
  996.     'FACE'  => 'CDATA',
  997.     'ID'    => 'ID',
  998.     'LANG'  => 'CDATA',
  999.     'SIZE'  => 'CDATA',
  1000.     'STYLE' => 'CDATA',
  1001.   },
  1002.   'SPAN' => {
  1003.     'CLASS' => 'NAMES',
  1004.     'ID'    => 'ID',
  1005.     'LANG'  => 'CDATA',
  1006.     'STYLE' => 'CDATA',
  1007.   },
  1008.   'STRIKE' => {
  1009.     'CLASS' => 'NAMES',
  1010.     'COLOR' => '%color',
  1011.     'FACE'  => 'CDATA',
  1012.     'ID'    => 'ID',
  1013.     'LANG'  => 'CDATA',
  1014.     'SIZE'  => 'CDATA',
  1015.     'STYLE' => 'CDATA',
  1016.   },
  1017.   'STRONG' => {
  1018.     'CLASS' => 'NAMES',
  1019.     'ID'    => 'ID',
  1020.     'LANG'  => 'CDATA',
  1021.     'STYLE' => 'CDATA',
  1022.   },
  1023.   'STYLE' => {
  1024.     'TITLE' => 'CDATA',
  1025.     'TYPE'  => 'CDATA',
  1026.   },
  1027.   'SUB' => {
  1028.     'CLASS' => 'NAMES',
  1029.     'COLOR' => '%color',
  1030.     'FACE'  => 'CDATA',
  1031.     'ID'    => 'ID',
  1032.     'LANG'  => 'CDATA',
  1033.     'SIZE'  => 'CDATA',
  1034.     'STYLE' => 'CDATA',
  1035.   },
  1036.   'SUP' => {
  1037.     'CLASS' => 'NAMES',
  1038.     'COLOR' => '%color',
  1039.     'FACE'  => 'CDATA',
  1040.     'ID'    => 'ID',
  1041.     'LANG'  => 'CDATA',
  1042.     'SIZE'  => 'CDATA',
  1043.     'STYLE' => 'CDATA',
  1044.   },
  1045.   'TABLE' => {
  1046.     'ALIGN'            => 'LEFT|CENTER|RIGHT',
  1047.     'BACKGROUND'       => '%URL',
  1048.     'BGCOLOR'          => '%color',  # org:CDATA
  1049.     'BORDER'           => '%border', # org:CDATA
  1050.     'BORDERCOLOR'      => '%color',  # org:CDATA
  1051.     'BORDERCOLORDARK'  => '%color',  # org:CDATA
  1052.     'BORDERCOLORLIGHT' => '%color',  # org:CDATA
  1053.     'CELLPADDING'      => '%Pixels', # org:CDATA
  1054.     'CELLSPACING'      => '%Pixels', # org:CDATA
  1055.     'CLASS'            => 'NAMES',
  1056.     'COLS'             => 'NUMBER',
  1057.     'FRAME'            => 'VOID|ABOVE|BELOW|HSIDES|LHS|RHS|VSIDES|BOX|BORDER',
  1058.     'ID'               => 'ID',
  1059.     'LANG'             => 'CDATA',
  1060.     'RULES'            => 'NONE|GROUPS|ROWS|COLS|ALL',
  1061.     'STYLE'            => 'CDATA',
  1062.     'WIDTH'            => '%Length', # org:CDATA
  1063.   },
  1064.   'TBODY' => {
  1065.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1066.     'CHAR'    => 'CDATA',
  1067.     'CHAROFF' => 'CDATA',
  1068.     'CLASS'   => 'NAMES',
  1069.     'ID'      => 'ID',
  1070.     'LANG'    => 'CDATA',
  1071.     'STYLE'   => 'CDATA',
  1072.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1073.   },
  1074.   'TD' => {
  1075.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1076.     'AXES'             => 'CDATA',
  1077.     'AXIS'             => 'CDATA',
  1078.     'BACKGROUND'       => '%URL',   # org:CDATA
  1079.     'BGCOLOR'          => '%color', # org:CDATA
  1080.     'BORDERCOLOR'      => '%color', # org:CDATA
  1081.     'BORDERCOLORDARK'  => '%color', # org:CDATA
  1082.     'BORDERCOLORLIGHT' => '%color', # org:CDATA
  1083.     'CHAR'             => 'CDATA',
  1084.     'CHAROFF'          => 'CDATA',
  1085.     'CLASS'            => 'NAMES',
  1086.     'COLSPAN'          => 'NUMBER',
  1087.     'HEIGHT'           => '%Length', # org:CDATA
  1088.     'ID'               => 'ID',
  1089.     'LANG'             => 'CDATA',
  1090.     'NOWRAP'           => 'NOWRAP',
  1091.     'ROWSPAN'          => 'NUMBER',
  1092.     'STYLE'            => 'CDATA',
  1093.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1094.     'WIDTH'            => '%Length', # org:CDATA
  1095.   },
  1096.   'TEXTAREA' => {
  1097.     'CLASS' => 'NAMES',
  1098.     'COLS'  => 'NUMBER',
  1099.     'ID'    => 'ID',
  1100.     'LANG'  => 'CDATA',
  1101.     'NAME'  => 'CDATA',
  1102.     'ROWS'  => 'NUMBER',
  1103.     'STYLE' => 'CDATA',
  1104.   },
  1105.   'TFOOT' => {
  1106.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1107.     'CHAR'    => 'CDATA',
  1108.     'CHAROFF' => 'CDATA',
  1109.     'CLASS'   => 'NAMES',
  1110.     'ID'      => 'ID',
  1111.     'LANG'    => 'CDATA',
  1112.     'STYLE'   => 'CDATA',
  1113.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1114.   },
  1115.   'TH' => {
  1116.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1117.     'AXES'             => 'CDATA',
  1118.     'AXIS'             => 'CDATA',
  1119.     'BACKGROUND'       => '%URL',   # org:CDATA
  1120.     'BGCOLOR'          => '%color', # org:CDATA
  1121.     'BORDERCOLOR'      => '%color', # org:CDATA
  1122.     'BORDERCOLORDARK'  => '%color', # org:CDATA
  1123.     'BORDERCOLORLIGHT' => '%color', # org:CDATA
  1124.     'CHAR'             => 'CDATA',
  1125.     'CHAROFF'          => 'CDATA',
  1126.     'CLASS'            => 'NAMES',
  1127.     'COLSPAN'          => 'NUMBER',
  1128.     'HEIGHT'           => '%Length', # org:CDATA
  1129.     'ID'               => 'ID',
  1130.     'LANG'             => 'CDATA',
  1131.     'NOWRAP'           => 'NOWRAP',
  1132.     'ROWSPAN'          => 'NUMBER',
  1133.     'STYLE'            => 'CDATA',
  1134.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1135.     'WIDTH'            => '%Length', # org:CDATA
  1136.   },
  1137.   'THEAD' => {
  1138.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1139.     'CHAR'    => 'CDATA',
  1140.     'CHAROFF' => 'CDATA',
  1141.     'CLASS'   => 'NAMES',
  1142.     'ID'      => 'ID',
  1143.     'LANG'    => 'CDATA',
  1144.     'STYLE'   => 'CDATA',
  1145.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1146.   },
  1147.   'TR' => {
  1148.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY|CHAR',
  1149.     'BGCOLOR'          => 'CDATA',
  1150.     'BORDERCOLOR'      => 'CDATA',
  1151.     'BORDERCOLORDARK'  => 'CDATA',
  1152.     'BORDERCOLORLIGHT' => 'CDATA',
  1153.     'CHAR'             => 'CDATA',
  1154.     'CHAROFF'          => 'CDATA',
  1155.     'CLASS'            => 'NAMES',
  1156.     'ID'               => 'ID',
  1157.     'LANG'             => 'CDATA',
  1158.     'STYLE'            => 'CDATA',
  1159.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  1160.   },
  1161.   'TT' => {
  1162.     'CLASS' => 'NAMES',
  1163.     'COLOR' => '%color',
  1164.     'FACE'  => 'CDATA',
  1165.     'ID'    => 'ID',
  1166.     'LANG'  => 'CDATA',
  1167.     'SIZE'  => 'CDATA',
  1168.     'STYLE' => 'CDATA',
  1169.   },
  1170.   'U' => {
  1171.     'CLASS' => 'NAMES',
  1172.     'COLOR' => '%color',
  1173.     'FACE'  => 'CDATA',
  1174.     'ID'    => 'ID',
  1175.     'LANG'  => 'CDATA',
  1176.     'SIZE'  => 'CDATA',
  1177.     'STYLE' => 'CDATA',
  1178.   },
  1179.   'UL' => {
  1180.     'CLASS'   => 'NAMES',
  1181.     'COMPACT' => 'COMPACT',
  1182.     'ID'      => 'ID',
  1183.     'LANG'    => 'CDATA',
  1184.     'STYLE'   => 'CDATA',
  1185.     'TYPE'    => 'DISC|SQUARE|CIRCLE',
  1186.   },
  1187.   'VAR' => {
  1188.     'CLASS' => 'NAMES',
  1189.     'ID'    => 'ID',
  1190.     'LANG'  => 'CDATA',
  1191.     'STYLE' => 'CDATA',
  1192.   },
  1193.   'WBR' => {
  1194.     'CLASS' => 'NAMES',
  1195.     'ID'    => 'ID',
  1196.     'LANG'  => 'CDATA',
  1197.     'STYLE' => 'CDATA',
  1198.   },
  1199.   'XMP' => {
  1200.     'CLASS' => 'NAMES',
  1201.     'ID'    => 'ID',
  1202.     'LANG'  => 'CDATA',
  1203.     'STYLE' => 'CDATA',
  1204.   },
  1205. );
  1206. %requiredAttrs = (
  1207.   'APPLET'   => 'CODE&HEIGHT&WIDTH',
  1208.   'BASE'     => 'HREF',
  1209.   'EMBED'    => 'SRC',
  1210.   'FORM'     => 'ACTION',
  1211.   'FRAME'    => 'SRC',
  1212.   'IFRAME'   => 'SRC',
  1213.   'IMG'      => 'SRC',
  1214.   'META'     => 'CONTENT',
  1215.   'NEXTID'   => 'N',
  1216.   'PARAM'    => 'NAME',
  1217.   'SELECT'   => 'NAME',
  1218.   'TEXTAREA' => 'NAME&ROWS&COLS',
  1219. );
  1220. #======= ENTITIES =======
  1221. %refEntities = (
  1222.   'AElig'  => 'Æ',
  1223.   'Aacute' => 'Á',
  1224.   'Acirc'  => 'Â',
  1225.   'Agrave' => 'À',
  1226.   'Aring'  => 'Å',
  1227.   'Atilde' => 'Ã',
  1228.   'Auml'   => 'Ä',
  1229.   'Ccedil' => 'Ç',
  1230.   'ETH'    => 'Ð',
  1231.   'Eacute' => 'É',
  1232.   'Ecirc'  => 'Ê',
  1233.   'Egrave' => 'È',
  1234.   'Euml'   => 'Ë',
  1235.   'Iacute' => 'Í',
  1236.   'Icirc'  => 'Î',
  1237.   'Igrave' => 'Ì',
  1238.   'Iuml'   => 'Ï',
  1239.   'Ntilde' => 'Ñ',
  1240.   'Oacute' => 'Ó',
  1241.   'Ocirc'  => 'Ô',
  1242.   'Ograve' => 'Ò',
  1243.   'Oslash' => 'Ø',
  1244.   'Otilde' => 'Õ',
  1245.   'Ouml'   => 'Ö',
  1246.   'THORN'  => 'Þ',
  1247.   'Uacute' => 'Ú',
  1248.   'Ucirc'  => 'Û',
  1249.   'Ugrave' => 'Ù',
  1250.   'Uuml'   => 'Ü',
  1251.   'Yacute' => 'Ý',
  1252.   'aacute' => 'á',
  1253.   'acirc'  => 'â',
  1254.   'acute'  => '´',
  1255.   'aelig'  => 'æ',
  1256.   'agrave' => 'à',
  1257.   'amp'    => '&',
  1258.   'aring'  => 'å',
  1259.   'atilde' => 'ã',
  1260.   'auml'   => 'ä',
  1261.   'brvbar' => '¦',
  1262.   'ccedil' => 'ç',
  1263.   'cedil'  => '¸',
  1264.   'cent'   => '¢',
  1265.   'copy'   => '©',
  1266.   'curren' => '¤',
  1267.   'deg'    => '°',
  1268.   'divide' => '÷',
  1269.   'eacute' => 'é',
  1270.   'ecirc'  => 'ê',
  1271.   'egrave' => 'è',
  1272.   'eth'    => 'ð',
  1273.   'euml'   => 'ë',
  1274.   'frac12' => '½',
  1275.   'frac14' => '¼',
  1276.   'frac34' => '¾',
  1277.   'gt'     => '>',
  1278.   'iacute' => 'í',
  1279.   'icirc'  => 'î',
  1280.   'iexcl'  => '¡',
  1281.   'igrave' => 'ì',
  1282.   'iquest' => '¿',
  1283.   'iuml'   => 'ï',
  1284.   'laquo'  => '«',
  1285.   'lt'     => '<',
  1286.   'macr'   => '¯',
  1287.   'micro'  => 'µ',
  1288.   'middot' => '·',
  1289.   'nbsp'   => ' ',
  1290.   'not'    => '¬',
  1291.   'ntilde' => 'ñ',
  1292.   'oacute' => 'ó',
  1293.   'ocirc'  => 'ô',
  1294.   'ograve' => 'ò',
  1295.   'ordf'   => 'ª',
  1296.   'ordm'   => 'º',
  1297.   'oslash' => 'ø',
  1298.   'otilde' => 'õ',
  1299.   'ouml'   => 'ö',
  1300.   'para'   => '¶',
  1301.   'plusmn' => '±',
  1302.   'pound'  => '£',
  1303.   'quot'   => '"',
  1304.   'raquo'  => '»',
  1305.   'reg'    => '®',
  1306.   'sect'   => '§',
  1307.   'shy'    => '­',
  1308.   'sup1'   => '¹',
  1309.   'sup2'   => '²',
  1310.   'sup3'   => '³',
  1311.   'szlig'  => 'ß',
  1312.   'thorn'  => 'þ',
  1313.   'times'  => '×',
  1314.   'uacute' => 'ú',
  1315.   'ucirc'  => 'û',
  1316.   'ugrave' => 'ù',
  1317.   'uml'    => '¨',
  1318.   'uuml'   => 'ü',
  1319.   'yacute' => 'ý',
  1320.   'yen'    => '¥',
  1321.   'yuml'   => 'ÿ',
  1322. );
  1323. %refParams = (
  1324.   'COORDS'       => '(?:\d+(?:\s*,\s*|\s+))+\d+',
  1325.   'Content-Type' => 'CDATA+',
  1326.   'LIStyle'      => '&LIStyle',
  1327.   'OLStyle'      => '&OLStyle',
  1328.   'Length'       => '\d+[%]?',
  1329.   'Pixels'       => '\d+',
  1330.   'Span'         => 'NUMBER+',
  1331.   'Types'        => 'CDATA+',
  1332.   'URL'          => '&URL',
  1333.   'literal'      => 'CDATA',
  1334.   'border'       => '(?i)\d+|BORDER',
  1335.   'col-size'     => '\d+(?:\s*,\s*\d+)?\*?',
  1336.   'face'         => 'CDATA+',
  1337.   'fsize'        => '[1-7]',
  1338.   'rsize'        => '[+|-]?[1-7]',
  1339.   'color'        => '(?i)#[0-9A-F]{6}'.
  1340.                     '|aqua|black|blue|fuchsia|gray|green|lime|maroon'.
  1341.                     '|navy|olive|purple|red|silver|teal|white|yellow'.
  1342.                     '|aliceblue|antiquewhite|aquamarine|azure'.
  1343.                     '|beige|bisque|blanchedalmond|blueviolet|brown|burlywood'.
  1344.                     '|cadetblue|chartreuse|chocolate|coral|cornflowerblue'.
  1345.                     '|cornsilk|crimson|cyan'.
  1346.                     '|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen'.
  1347.                     '|darkkhaki|darkmagenta|darkolivegreen|darkorange'.
  1348.                     '|darkorchid|darkred|darksalmon|darkseagreen'.
  1349.                     '|darkslateblue|darkslategray|darkturquoise|darkviolet'.
  1350.                     '|deeppink|deepskyblue|dimgray|dodgerblue'.
  1351.                     '|firebrick|floralwhite|forestgreen'.
  1352.                     '|gainsboro|ghostwhite|gold|goldenrod|greenyellow'.
  1353.                     '|honeydew|hotpink|indianred|indigo|ivory|khaki'.
  1354.                     '|lavender|lavenderblush|lawngreen|lemonchiffon'.
  1355.                     '|lightblue|lightcoral|lightcyan|lightgoldenrodyellow'.
  1356.                     '|lightgreen|lightgrey|lightpink|lightsalmon'.
  1357.                     '|lightseagreen|lightskyblue|lightslategray'.
  1358.                     '|lightsteelblue|lightyellow|limegreen|linen'.
  1359.                     '|magenta|mediumaquamarine|mediumblue|mediumorchid'.
  1360.                     '|mediumpurple|mediumseagreen|mediumslateblue'.
  1361.                     '|mediumspringgreen|mediumturquoise|mediumvioletred'.
  1362.                     '|midnightblue|mintcream|mistyrose|moccasin'.
  1363.                     '|navajowhite|oldlace|olivedrab|orange|orangered|orchid'.
  1364.                     '|palegoldenrod|palegreen|paleturquoise|palevioletred'.
  1365.                     '|papayawhip|peachpuff|peru|pink|plum|powderblue'.
  1366.                     '|rosybrown|royalblue'.
  1367.                     '|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna'.
  1368.                     '|skyblue|slateblue|slategray|snow|springgreen|steelblue'.
  1369.                     '|tan|thistle|tomato|turquoise|violet'.
  1370.                     '|wheat|whitesmoke|yellowgreen',
  1371. );
  1372.  
  1373. 1;
  1374.