home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 April / VPR0004A.BIN / OLS / HTMLLINT / htmllint.lzh / ie30.rul < prev    next >
Text File  |  1999-12-05  |  43KB  |  1,001 lines

  1. # Microsoft Internet Explorer 3.0
  2.  
  3. #======= ELEMENTS =======
  4. $emptyTags = 'AREA|BASE|BASEFONT|BGSOUND|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX'.
  5.              '|LINK|META|PARAM|WBR';
  6. $pairTags = 'A|ADDRESS|APPLET|B|BIG|BLOCKQUOTE|BODY|CAPTION|CENTER|CITE|CODE'.
  7.             '|COLGROUP|COMMENT|DD|DFN|DIR|DIV|DL|DT|EM|EMBED|FONT|FORM'.
  8.             '|FRAMESET|H1|H2|H3|H4|H5|H6|HEAD|HTML|I|IFRAME|KBD|LI|LISTING'.
  9.             '|MAP|MARQUEE|MENU|NOBR|NOFRAMES|OBJECT|OL|OPTION|P|PLAINTEXT|PRE'.
  10.             '|S|SAMP|SCRIPT|SELECT|SMALL|SPAN|STRIKE|STRONG|STYLE|SUB|SUP'.
  11.             '|TABLE|TBODY|TD|TEXTAREA|TFOOT|TH|THEAD|TITLE|TR|TT|U|UL|VAR|XMP';
  12. $deprecatedTags = 'COMMENT|CENTER|XMP|LISTING|PLAINTEXT|EMBED';
  13. $omitStartTags = 'BODY|HEAD|HTML|TBODY';
  14. $omitEndTags = 'BODY|COLGROUP|DD|DT|HEAD|HTML|LI|MARQUEE|NOBR|OPTION|P'.
  15.                '|PLAINTEXT|TBODY|TD|TFOOT|TH|THEAD|TR';
  16. #$maybeEmpty = 'A|ADDRESS|APPLET|B|BIG|BLOCKQUOTE|BODY|CENTER|CITE|CODE'.
  17. #              '|COLGROUP|COMMENT|DD|DFN|DIR|DIV|DL|DT|EM|EMBED|FONT|FORM|H1'.
  18. #              '|H2|H3|H4|H5|H6|I|IFRAME|KBD|LI|LISTING|MAP|MARQUEE|MENU|NOBR'.
  19. #              '|NOFRAMES|OBJECT|OL|OPTION|P|PLAINTEXT|PRE|S|SAMP|SCRIPT|SMALL'.
  20. #              '|SPAN|STRIKE|STRONG|STYLE|SUB|SUP|TD|TEXTAREA|TH|TITLE|TT|U|UL'.
  21. #              '|VAR|XMP';
  22. $maybeEmpty = 'COMMENT|LISTING|PLAINTEXT|PRE|SCRIPT|STYLE|TD|TEXTAREA|TH|XMP'.
  23.               '|COLGROUP|OBJECT|EMBED';
  24. %requiredTags = (
  25.   'HEAD'  => 'TITLE',
  26.   'HTML'  => 'HEAD|#001',
  27.   'TABLE' => 'TBODY',
  28. );
  29. %onceonlyTags = (
  30.   '#001'  => 'BODY|FRAMESET',
  31.   'HEAD'  => 'TITLE|ISINDEX|BASE',
  32.   'HTML'  => 'HEAD|#001|PLAINTEXT',
  33.   'TABLE' => 'CAPTION|THEAD|TFOOT',
  34. );
  35. $sequencialTags = 'TABLE|HTML';
  36. %tagsElements = (
  37.   '#000'       => 'COL|COLGROUP',
  38.   '#001'       => 'BODY|FRAMESET',
  39.   'A'          => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  40.                   '|SCRIPT|APPLET|IMG|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP|CODE'.
  41.                   '|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I|TT'.
  42.                   '|COMMENT|#PCDATA',
  43.   'ADDRESS'    => 'CENTER|P|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE'.
  44.                   '|BGSOUND|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR'.
  45.                   '|KBD|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG'.
  46.                   '|STRIKE|U|B|I|TT|COMMENT|#PCDATA',
  47.   'APPLET'     => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  48.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  49.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  50.                   '|TT|COMMENT|#PCDATA|PARAM',
  51.   'B'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  52.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  53.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  54.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  55.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  56.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  57.   'BIG'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  58.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  59.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  60.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  61.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  62.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  63.   'BLOCKQUOTE' => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  64.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  65.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  66.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  67.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  68.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  69.   'BODY'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  70.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  71.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  72.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  73.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  74.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  75.   'CAPTION'    => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  76.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  77.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  78.                   '|TT|COMMENT|#PCDATA',
  79.   'CENTER'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  80.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  81.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  82.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  83.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  84.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  85.   'CITE'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  86.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  87.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  88.                   '|TT|COMMENT|#PCDATA',
  89.   'CODE'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  90.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  91.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  92.                   '|TT|COMMENT|#PCDATA',
  93.   'COLGROUP'   => 'COL',
  94.   'COMMENT'    => 'CDATA',
  95.   'DD'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  96.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  97.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  98.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  99.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  100.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  101.   'DFN'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  102.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  103.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  104.                   '|TT|COMMENT|#PCDATA',
  105.   'DIR'        => 'LI',
  106.   'DIV'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  107.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  108.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  109.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  110.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  111.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  112.   'DL'         => 'DD|DT',
  113.   'DT'         => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  114.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  115.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  116.                   '|TT|COMMENT|#PCDATA',
  117.   'EM'         => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  118.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  119.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  120.                   '|TT|COMMENT|#PCDATA',
  121.   'EMBED'      => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  122.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  123.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  124.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  125.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  126.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  127.   'FONT'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  128.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  129.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  130.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  131.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  132.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  133.   'FORM'       => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|BLOCKQUOTE'.
  134.                   '|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P|TEXTAREA|SELECT'.
  135.                   '|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP|SCRIPT|APPLET|IMG'.
  136.                   '|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|S'.
  137.                   '|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I|TT|COMMENT|#PCDATA|H6'.
  138.                   '|H5|H4|H3|H2|H1|INPUT|SELECT|TEXTAREA',
  139.   'FRAMESET'   => 'NOFRAMES|FRAME|FRAMESET',
  140.   'H1'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  141.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  142.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  143.                   '|B|I|TT|COMMENT|#PCDATA',
  144.   'H2'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  145.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  146.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  147.                   '|B|I|TT|COMMENT|#PCDATA',
  148.   'H3'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  149.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  150.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  151.                   '|B|I|TT|COMMENT|#PCDATA',
  152.   'H4'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  153.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  154.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  155.                   '|B|I|TT|COMMENT|#PCDATA',
  156.   'H5'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  157.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  158.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  159.                   '|B|I|TT|COMMENT|#PCDATA',
  160.   'H6'         => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  161.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  162.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  163.                   '|B|I|TT|COMMENT|#PCDATA',
  164.   'HEAD'       => 'TITLE|ISINDEX|BASE|SCRIPT|STYLE|META|LINK|BGSOUND',
  165.   'HTML'       => 'HEAD|#001|PLAINTEXT',
  166.   'I'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  167.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  168.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  169.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  170.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  171.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  172.   'IFRAME'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  173.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  174.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  175.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  176.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  177.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  178.   'KBD'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  179.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  180.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  181.                   '|TT|COMMENT|#PCDATA',
  182.   'LI'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  183.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  184.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  185.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  186.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  187.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  188.   'LISTING'    => '%literal',
  189.   'MAP'        => 'AREA',
  190.   'MARQUEE'    => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  191.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  192.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  193.                   '|TT|COMMENT|#PCDATA',
  194.   'MENU'       => 'LI',
  195.   'NOBR'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  196.                   '|SCRIPT|APPLET|IMG|A|WBR|BR|SPAN|CITE|VAR|KBD|SAMP|CODE'.
  197.                   '|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I|TT'.
  198.                   '|COMMENT|#PCDATA',
  199.   'NOFRAMES'   => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  200.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  201.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  202.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  203.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  204.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  205.   'OBJECT'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  206.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  207.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  208.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  209.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  210.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1|PARAM',
  211.   'OL'         => 'LI',
  212.   'OPTION'     => '#PCDATA',
  213.   'P'          => 'CENTER|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND'.
  214.                   '|MAP|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD'.
  215.                   '|SAMP|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U'.
  216.                   '|B|I|TT|COMMENT|#PCDATA',
  217.   'PLAINTEXT'  => '%literal',
  218.   'PRE'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  219.                   '|SCRIPT|APPLET|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP|CODE'.
  220.                   '|DFN|STRONG|EM|S|STRIKE|U|B|I|TT|COMMENT|#PCDATA',
  221.   'S'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  222.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  223.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  224.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  225.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  226.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  227.   'SAMP'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  228.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  229.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  230.                   '|TT|COMMENT|#PCDATA',
  231.   'SCRIPT'     => 'CDATA',
  232.   'SELECT'     => 'OPTION',
  233.   'SMALL'      => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  234.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  235.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  236.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  237.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  238.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  239.   'SPAN'       => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  240.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  241.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  242.                   '|TT|COMMENT|#PCDATA',
  243.   'STRIKE'     => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  244.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  245.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  246.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  247.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  248.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  249.   'STRONG'     => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  250.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  251.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  252.                   '|TT|COMMENT|#PCDATA',
  253.   'STYLE'      => 'CDATA',
  254.   'SUB'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  255.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  256.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  257.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  258.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  259.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  260.   'SUP'        => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  261.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  262.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  263.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  264.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  265.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  266.   'TABLE'      => 'CAPTION|#000|THEAD|TFOOT|TBODY',
  267.   'TBODY'      => 'TR',
  268.   'TD'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  269.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  270.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  271.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  272.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  273.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  274.   'TEXTAREA'   => '#PCDATA',
  275.   'TFOOT'      => 'TR',
  276.   'TH'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  277.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  278.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  279.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  280.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  281.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  282.   'THEAD'      => 'TR',
  283.   'TITLE'      => '#PCDATA',
  284.   'TR'         => 'TD|TH',
  285.   'TT'         => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  286.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  287.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  288.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  289.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  290.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  291.   'U'          => 'BASEFONT|ADDRESS|CENTER|IFRAME|TABLE|HR|ISINDEX|FORM'.
  292.                   '|BLOCKQUOTE|DIV|LISTING|XMP|PRE|MENU|DIR|DL|OL|UL|P'.
  293.                   '|TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  294.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  295.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  296.                   '|TT|COMMENT|#PCDATA|H6|H5|H4|H3|H2|H1',
  297.   'UL'         => 'LI',
  298.   'VAR'        => 'TEXTAREA|SELECT|INPUT|EMBED|OBJECT|MARQUEE|BGSOUND|MAP'.
  299.                   '|SCRIPT|APPLET|IMG|A|WBR|NOBR|BR|SPAN|CITE|VAR|KBD|SAMP'.
  300.                   '|CODE|DFN|STRONG|EM|S|FONT|SUP|SUB|SMALL|BIG|STRIKE|U|B|I'.
  301.                   '|TT|COMMENT|#PCDATA',
  302.   'XMP'        => '%literal',
  303. );
  304. %excludedElems = (
  305.   'A'     => 'A',
  306.   'DIR'   => 'P|UL|OL|DL|DIR|MENU|PRE|XMP|LISTING|DIV|BLOCKQUOTE|FORM|ISINDEX'.
  307.              '|HR|TABLE|IFRAME|CENTER',
  308.   'FORM'  => 'FORM',
  309.   'MENU'  => 'P|UL|OL|DL|DIR|MENU|PRE|XMP|LISTING|DIV|BLOCKQUOTE|FORM|ISINDEX'.
  310.              '|HR|TABLE|IFRAME|CENTER',
  311.   'NOBR'  => 'NOBR',
  312.   'PRE'   => 'IMG|BIG|SMALL|SUB|SUP|FONT',
  313.   'TITLE' => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  314. );
  315. %includedElems = (
  316.   'FORM' => 'INPUT|SELECT|TEXTAREA',
  317.   'HEAD' => 'SCRIPT|STYLE|META|LINK|BGSOUND',
  318. );
  319. %deprecatedElems = (
  320.   'A'          => 'INPUT|SELECT|TEXTAREA',
  321.   'ADDRESS'    => 'INPUT|SELECT|TEXTAREA',
  322.   'APPLET'     => 'INPUT|SELECT|TEXTAREA',
  323.   'B'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  324.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  325.                   '|TEXTAREA|UL',
  326.   'BIG'        => '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.   'BLOCKQUOTE' => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  330.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  331.                   '|TT|U|VAR|WBR',
  332.   'BODY'       => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  333.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  334.                   '|TT|U|VAR|WBR',
  335.   'CAPTION'    => 'INPUT|SELECT|TEXTAREA',
  336.   'CITE'       => 'INPUT|SELECT|TEXTAREA',
  337.   'CODE'       => 'INPUT|SELECT|TEXTAREA',
  338.   'DD'         => 'ADDRESS|BASEFONT|H1|H2|H3|H4|H5|H6|INPUT|SELECT|TEXTAREA',
  339.   'DFN'        => 'INPUT|SELECT|TEXTAREA',
  340.   'DIV'        => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  341.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  342.                   '|TT|U|VAR|WBR',
  343.   'DT'         => 'INPUT|SELECT|TEXTAREA',
  344.   'EM'         => 'INPUT|SELECT|TEXTAREA',
  345.   'FONT'       => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  346.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  347.                   '|TEXTAREA|UL',
  348.   'FORM'       => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|KBD|NOBR|S|SAMP'.
  349.                   '|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TT|U|VAR|WBR',
  350.   'H1'         => 'INPUT|SELECT|TEXTAREA',
  351.   'H2'         => 'INPUT|SELECT|TEXTAREA',
  352.   'H3'         => 'INPUT|SELECT|TEXTAREA',
  353.   'H4'         => 'INPUT|SELECT|TEXTAREA',
  354.   'H5'         => 'INPUT|SELECT|TEXTAREA',
  355.   'H6'         => 'INPUT|SELECT|TEXTAREA',
  356.   'I'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  357.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  358.                   '|TEXTAREA|UL',
  359.   'IFRAME'     => 'ADDRESS|BASEFONT|H1|H2|H3|H4|H5|H6|INPUT|SELECT|TEXTAREA',
  360.   'KBD'        => 'INPUT|SELECT|TEXTAREA',
  361.   'LI'         => 'ADDRESS|BASEFONT|H1|H2|H3|H4|H5|H6|INPUT|SELECT|TEXTAREA',
  362.   'MARQUEE'    => 'INPUT|SELECT|TEXTAREA',
  363.   'NOBR'       => 'INPUT|SELECT|TEXTAREA',
  364.   'NOFRAMES'   => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  365.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  366.                   '|TT|U|VAR|WBR',
  367.   'OBJECT'     => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  368.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  369.                   '|TT|U|VAR|WBR',
  370.   'P'          => 'INPUT|SELECT|TEXTAREA',
  371.   'PRE'        => 'INPUT|SELECT|TEXTAREA',
  372.   'S'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  373.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  374.                   '|TEXTAREA|UL',
  375.   'SAMP'       => 'INPUT|SELECT|TEXTAREA',
  376.   'SMALL'      => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  377.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  378.                   '|TEXTAREA|UL',
  379.   'SPAN'       => 'INPUT|SELECT|TEXTAREA',
  380.   'STRIKE'     => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  381.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  382.                   '|TEXTAREA|UL',
  383.   'STRONG'     => 'INPUT|SELECT|TEXTAREA',
  384.   'SUB'        => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  385.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  386.                   '|TEXTAREA|UL',
  387.   'SUP'        => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  388.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  389.                   '|TEXTAREA|UL',
  390.   'TD'         => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  391.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  392.                   '|TT|U|VAR|WBR',
  393.   'TH'         => '#PCDATA|A|B|BIG|BR|CITE|CODE|DFN|EM|FONT|I|INPUT|KBD|NOBR'.
  394.                   '|S|SAMP|SELECT|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TEXTAREA'.
  395.                   '|TT|U|VAR|WBR',
  396.   'TT'         => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  397.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  398.                   '|TEXTAREA|UL',
  399.   'U'          => 'ADDRESS|BASEFONT|BLOCKQUOTE|DIR|DIV|DL|FORM|H1|H2|H3|H4|H5'.
  400.                   '|H6|HR|IFRAME|INPUT|ISINDEX|MENU|OL|P|PRE|SELECT|TABLE'.
  401.                   '|TEXTAREA|UL',
  402.   'VAR'        => 'INPUT|SELECT|TEXTAREA',
  403. );
  404. #======= ATTRIBUTES =======
  405. %tagsAttributes = (
  406.   'A' => {
  407.     'CLASS'       => 'NAMES',
  408.     'HREF'        => '%URL',
  409.     'ID'          => 'ID',
  410.     'NAME'        => 'CDATA',
  411.     'ONCLICK'     => '%Script',
  412.     'ONMOUSEOVER' => '%Script',
  413.     'REL'         => 'SAME|NEXT|PARENT|PREVIOUS',
  414.     'REV'         => 'CDATA',
  415.     'STYLE'       => '%StyleSheet',
  416.     'TARGET'      => 'CDATA',
  417.     'TITLE'       => 'CDATA',
  418.   },
  419.   'APPLET' => {
  420.     'ALIGN'    => 'TOP|MIDDLE|BOTTOM|LEFT|CENTER|RIGHT',
  421.     'ALT'      => 'CDATA',
  422.     'CLASS'    => 'NAMES',
  423.     'CODE'     => 'CDATA',
  424.     'CODEBASE' => '%URL',
  425.     'DOWNLOAD' => 'NUMBER',
  426.     'HEIGHT'   => '%Pixels',
  427.     'HSPACE'   => '%Pixels',
  428.     'ID'       => 'ID',
  429.     'NAME'     => 'CDATA',
  430.     'STYLE'    => '%StyleSheet',
  431.     'TITLE'    => 'CDATA',
  432.     'VSPACE'   => '%Pixels',
  433.     'WIDTH'    => '%Pixels',
  434.   },
  435.   'AREA' => {
  436.     'ALT'      => 'CDATA',
  437.     'CLASS'    => 'NAMES',
  438.     'COORDS'   => '%COORDS',
  439.     'HREF'     => '%URL',
  440.     'ID'       => 'ID',
  441.     'NOHREF'   => 'NOHREF',
  442.     'NOTAB'    => 'NOTAB',
  443.     'SHAPE'    => 'RECT|RECTANGLE|CIRC|CIRCLE|POLY|POLYGON|DEFAULT',
  444.     'STYLE'    => '%StyleSheet',
  445.     'TABINDEX' => 'NUMBER',
  446.     'TARGET'   => 'CDATA',
  447.     'TITLE'    => 'CDATA',
  448.   },
  449.   'BASE' => {
  450.     'HREF'   => '%URL',
  451.     'TARGET' => 'CDATA',
  452.   },
  453.   'BASEFONT' => {
  454.     'COLOR' => '%color',
  455.     'SIZE'  => '%fsize', # org:NUMBER
  456.   },
  457.   'BGSOUND' => {
  458.     'LOOP' => 'NMTOKEN',
  459.     'SRC'  => '%URL',
  460.   },
  461.   'BODY' => {
  462.     'ALINK'        => '%color',
  463.     'BACKGROUND'   => '%URL',
  464.     'BGCOLOR'      => '%color',
  465.     'BGPROPERTIES' => 'FIXED',
  466.     'CLASS'        => 'NAMES',
  467.     'ID'           => 'ID',
  468.     'LEFTMARGIN'   => 'NUMBER',
  469.     'LINK'         => '%color',
  470.     'STYLE'        => '%StyleSheet',
  471.     'TEXT'         => '%color',
  472.     'TOPMARGIN'    => 'NUMBER',
  473.     'VLINK'        => '%color',
  474.   },
  475.   'BR' => {
  476.     'CLASS' => 'NAMES',
  477.     'CLEAR' => 'LEFT|ALL|RIGHT|NONE',
  478.   },
  479.   'CAPTION' => {
  480.     'ALIGN'  => 'CENTER|LEFT|RIGHT',
  481.     'VALIGN' => 'TOP|BOTTOM',
  482.   },
  483.   'COL' => {
  484.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  485.     'SPAN'  => 'NUMBER',
  486.   },
  487.   'COLGROUP' => {
  488.     'ALIGN'  => 'LEFT|CENTER|RIGHT',
  489.     'SPAN'   => 'NUMBER',
  490.     'VALIGN' => 'TOP|MIDDLE|BOTTOM',
  491.     'WIDTH'  => '%Length',
  492.   },
  493.   'DD' => {
  494.     'CLASS' => 'NAMES',
  495.     'ID'    => 'ID',
  496.     'STYLE' => '%StyleSheet',
  497.   },
  498.   'DIR' => {
  499.     'COMPACT' => 'COMPACT',
  500.   },
  501.   'DIV' => {
  502.     'ALIGN'  => 'LEFT|CENTER|RIGHT|JUSTIFY',
  503.     'CLASS'  => 'NAMES',
  504.     'ID'     => 'ID',
  505.     'NOWRAP' => 'NOWRAP',
  506.     'STYLE'  => '%StyleSheet',
  507.   },
  508.   'DL' => {
  509.     'CLASS'   => 'NAMES',
  510.     'COMPACT' => 'COMPACT',
  511.     'ID'      => 'ID',
  512.     'STYLE'   => '%StyleSheet',
  513.   },
  514.   'DT' => {
  515.     'CLASS' => 'NAMES',
  516.     'ID'    => 'ID',
  517.     'STYLE' => '%StyleSheet',
  518.   },
  519.   'EMBED' => {
  520.     'HEIGHT'  => 'CDATA',
  521.     'NAME'    => 'CDATA',
  522.     'PALETTE' => 'CDATA',
  523.     'PARAM'   => 'CDATA',
  524.     'SRC'     => '%URL',
  525.     'UNITS'   => 'PIXELS|EN',
  526.     'WIDTH'   => 'CDATA',
  527.   },
  528.   'FONT' => {
  529.     'COLOR' => '%color',
  530.     'FACE'  => '%face',  # org:CDATA
  531.     'SIZE'  => '%rsize', # org:CDATA
  532.   },
  533.   'FORM' => {
  534.     'ACTION'   => '%URL',
  535.     'METHOD'   => 'GET|POST',
  536.     'ONSUBMIT' => '%Script',
  537.     'TARGET'   => 'CDATA',
  538.   },
  539.   'FRAME' => {
  540.     'ALIGN'        => 'LEFT|CENTER|RIGHT|TOP|BOTTOM',
  541.     'FRAMEBORDER'  => '1|0',
  542.     'MARGINHEIGHT' => 'NUMBER',
  543.     'MARGINWIDTH'  => 'NUMBER',
  544.     'NAME'         => 'CDATA',
  545.     'NORESIZE'     => 'NORESIZE',
  546.     'SCROLLING'    => 'YES|NO',
  547.     'SRC'          => '%URL',
  548.   },
  549.   'FRAMESET' => {
  550.     'COLS'         => 'CDATA',
  551.     'FRAMEBORDER'  => '1|0',
  552.     'FRAMESPACING' => 'CDATA',
  553.     'ROWS'         => 'CDATA',
  554.   },
  555.   'H1' => {
  556.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  557.   },
  558.   'H2' => {
  559.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  560.   },
  561.   'H3' => {
  562.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  563.   },
  564.   'H4' => {
  565.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  566.   },
  567.   'H5' => {
  568.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  569.   },
  570.   'H6' => {
  571.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  572.   },
  573.   'HR' => {
  574.     'ALIGN'   => 'LEFT|RIGHT|CENTER',
  575.     'CLASS'   => 'NAMES',
  576.     'COLOR'   => '%color',
  577.     'ID'      => 'ID',
  578.     'NOSHADE' => 'NOSHADE',
  579.     'SIZE'    => '%Pixels',
  580.     'STYLE'   => '%StyleSheet',
  581.     'WIDTH'   => '%Length',
  582.   },
  583.   'IFRAME' => {
  584.     'ALIGN'        => 'LEFT|CENTER|RIGHT|TOP|BOTTOM',
  585.     'FRAMEBORDER'  => '1|0',
  586.     'HEIGHT'       => '%Length',
  587.     'MARGINHEIGHT' => 'NUMBER',
  588.     'MARGINWIDTH'  => 'NUMBER',
  589.     'NAME'         => 'CDATA',
  590.     'SCROLLING'    => 'YES|NO',
  591.     'SRC'          => '%URL',
  592.     'WIDTH'        => '%Length',
  593.   },
  594.   'IMG' => {
  595.     'ALIGN'  => 'TOP|MIDDLE|BOTTOM|LEFT|CENTER|RIGHT',
  596.     'ALT'    => 'CDATA',
  597.     'BORDER' => '%Pixels',
  598.     'CLASS'  => 'NAMES',
  599.     'DYNSRC' => '%URL',
  600.     'HEIGHT' => '%Length',
  601.     'HSPACE' => '%Pixels',
  602.     'ID'     => 'ID',
  603.     'ISMAP'  => 'ISMAP',
  604.     'LOOP'   => 'NMTOKEN',
  605.     'SRC'    => '%URL',
  606.     'START'  => 'NAMES',
  607.     'STYLE'  => '%StyleSheet',
  608.     'TITLE'  => 'CDATA',
  609.     'USEMAP' => '%URL',
  610.     'VSPACE' => '%Pixels',
  611.     'WIDTH'  => '%Length',
  612.   },
  613.   'INPUT' => {
  614.     'ALIGN'     => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  615.     'CHECKED'   => 'CHECKED',
  616.     'CLASS'     => 'NAMES',
  617.     'ID'        => 'ID',
  618.     'MAXLENGTH' => 'NUMBER',
  619.     'NAME'      => 'CDATA',
  620.     'NOTAB'     => 'NOTAB',
  621.     'ONBLUR'    => '%Script',
  622.     'ONCHANGE'  => '%Script',
  623.     'ONCLICK'   => '%Script',
  624.     'ONFOCUS'   => '%Script',
  625.     'ONSELECT'  => '%Script',
  626.     'SIZE'      => 'CDATA',
  627.     'SRC'       => '%URL',
  628.     'STYLE'     => '%StyleSheet',
  629.     'TABINDEX'  => 'NUMBER',
  630.     'TITLE'     => 'CDATA',
  631.     'TYPE'      => 'TEXT|TEXTAREA|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|FILE'.
  632.                    '|HIDDEN|IMAGE|BUTTON',
  633.     'VALUE'     => 'CDATA',
  634.   },
  635.   'ISINDEX' => {
  636.     'ACTION' => '%URL',
  637.     'PROMPT' => 'CDATA',
  638.   },
  639.   'LI' => {
  640.     'CLASS' => 'NAMES',
  641.     'ID'    => 'ID',
  642.     'STYLE' => '%StyleSheet',
  643.     'TYPE'  => '%LIStyle',
  644.     'VALUE' => 'NUMBER',
  645.   },
  646.   'LINK' => {
  647.     'HREF'  => '%URL',
  648.     'REL'   => '%Types',
  649.     'REV'   => '%Types',
  650.     'TITLE' => 'CDATA',
  651.     'TYPE'  => 'CDATA',
  652.   },
  653.   'MAP' => {
  654.     'NAME' => 'CDATA',
  655.   },
  656.   'MARQUEE' => {
  657.     'ALIGN'        => 'LEFT|CENTER|RIGHT|TOP|BOTTOM',
  658.     'BEHAVIOR'     => 'SCROLL|SLIDE|ALTERNATE',
  659.     'BGCOLOR'      => '%color',
  660.     'DIRECTION'    => 'LEFT|RIGHT',
  661.     'HEIGHT'       => '%Length',
  662.     'HSPACE'       => '%Pixels',
  663.     'LOOP'         => 'CDATA',
  664.     'SCROLLAMOUNT' => 'NUMBER',
  665.     'SCROLLDELAY'  => 'NUMBER',
  666.     'VSPACE'       => '%Pixels',
  667.     'WIDTH'        => '%Length',
  668.   },
  669.   'MENU' => {
  670.     'COMPACT' => 'COMPACT',
  671.   },
  672.   'META' => {
  673.     'CHARSET'    => 'CDATA',
  674.     'CONTENT'    => 'CDATA',
  675.     'HTTP-EQUIV' => 'NAME',
  676.     'NAME'       => 'NAME',
  677.     'URL'        => '%URL',
  678.   },
  679.   'OBJECT' => {
  680.     'ALIGN'    => 'TEXTTOP|MIDDLE|TEXTMIDDLE|BASELINE|TEXTBOTTOM|LEFT|CENTER'.
  681.                   '|RIGHT',
  682.     'BORDER'   => '%Length',
  683.     'CLASSID'  => '%URL',
  684.     'CODEBASE' => '%URL',
  685.     'CODETYPE' => 'CDATA',
  686.     'DATA'     => '%URL',
  687.     'DECLARE'  => 'DECLARE',
  688.     'HEIGHT'   => '%Length',
  689.     'HSPACE'   => '%Length',
  690.     'NAME'     => '%URL',
  691.     'NOTAB'    => 'NOTAB',
  692.     'SHAPES'   => 'SHAPES',
  693.     'STANDBY'  => 'CDATA',
  694.     'TABINDEX' => 'NUMBER',
  695.     'TITLE'    => 'CDATA',
  696.     'TYPE'     => 'CDATA',
  697.     'USEMAP'   => '%URL',
  698.     'VSPACE'   => '%Length',
  699.     'WIDTH'    => '%Length',
  700.   },
  701.   'OL' => {
  702.     'CLASS'   => 'NAMES',
  703.     'COMPACT' => 'COMPACT',
  704.     'ID'      => 'ID',
  705.     'START'   => 'NUMBER',
  706.     'STYLE'   => '%StyleSheet',
  707.     'TYPE'    => '%OLStyle',
  708.   },
  709.   'OPTION' => {
  710.     'SELECTED' => 'SELECTED',
  711.     'VALUE'    => 'CDATA',
  712.   },
  713.   'P' => {
  714.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  715.     'CLASS' => 'NAMES',
  716.     'ID'    => 'ID',
  717.     'STYLE' => '%StyleSheet',
  718.   },
  719.   'PARAM' => {
  720.     'NAME'      => 'CDATA',
  721.     'TYPE'      => 'CDATA',
  722.     'VALUE'     => 'CDATA',
  723.     'VALUETYPE' => 'DATA|REF|OBJECT',
  724.   },
  725.   'SCRIPT' => {
  726.     'LANGUAGE' => 'CDATA',
  727.   },
  728.   'SELECT' => {
  729.     'NAME' => 'CDATA',
  730.     'SIZE' => 'NUMBER',
  731.   },
  732.   'SPAN' => {
  733.     'STYLE' => '%StyleSheet',
  734.   },
  735.   'STYLE' => {
  736.     'TITLE' => 'CDATA',
  737.     'TYPE'  => 'CDATA',
  738.   },
  739.   'TABLE' => {
  740.     'ALIGN'            => 'LEFT|CENTER|RIGHT|BLEEDLEFT|BLEEDRIGHT|JUSTIFY',
  741.     'BACKGROUND'       => '%URL',
  742.     'BGCOLOR'          => '%color',
  743.     'BORDER'           => '%border', # org:CDATA
  744.     'BORDERCOLOR'      => '%color',
  745.     'BORDERCOLORDARK'  => '%color',
  746.     'BORDERCOLORLIGHT' => '%color',
  747.     'CELLPADDING'      => '%Pixels',
  748.     'CELLSPACING'      => '%Pixels',
  749.     'CLASS'            => 'NAMES',
  750.     'CLEAR'            => 'LEFT|RIGHT|ALL|NO',
  751.     'COLS'             => 'NUMBER',
  752.     'FRAME'            => 'VOID|ABOVE|BELOW|HSIDES|LHS|RHS|VSIDES|BOX|BORDER',
  753.     'ID'               => 'ID',
  754.     'NOWRAP'           => 'NOWRAP',
  755.     'RULES'            => 'NONE|GROUPS|ROWS|COLS|ALL',
  756.     'STYLE'            => '%StyleSheet',
  757.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  758.     'WIDTH'            => '%Length',
  759.   },
  760.   'TBODY' => {
  761.     'CLASS' => 'NAMES',
  762.     'ID'    => 'ID',
  763.     'STYLE' => '%StyleSheet',
  764.   },
  765.   'TD' => {
  766.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY',
  767.     'BACKGROUND'       => '%URL',
  768.     'BGCOLOR'          => '%color',
  769.     'BORDERCOLOR'      => '%color',
  770.     'BORDERCOLORDARK'  => '%color',
  771.     'BORDERCOLORLIGHT' => '%color',
  772.     'CLASS'            => 'NAMES',
  773.     'COLSPAN'          => 'NUMBER',
  774.     'HEIGHT'           => '%Length',
  775.     'ID'               => 'ID',
  776.     'NOWRAP'           => 'NOWRAP',
  777.     'ROWSPAN'          => 'NUMBER',
  778.     'STYLE'            => '%StyleSheet',
  779.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  780.     'WIDTH'            => '%Length',
  781.   },
  782.   'TEXTAREA' => {
  783.     'COLS' => 'NUMBER',
  784.     'NAME' => 'CDATA',
  785.     'ROWS' => 'NUMBER',
  786.   },
  787.   'TFOOT' => {
  788.     'CLASS' => 'NAMES',
  789.     'ID'    => 'ID',
  790.     'STYLE' => '%StyleSheet',
  791.   },
  792.   'TH' => {
  793.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY',
  794.     'BACKGROUND'       => '%URL',
  795.     'BGCOLOR'          => '%color',
  796.     'BORDERCOLOR'      => '%color',
  797.     'BORDERCOLORDARK'  => '%color',
  798.     'BORDERCOLORLIGHT' => '%color',
  799.     'CLASS'            => 'NAMES',
  800.     'COLSPAN'          => 'NUMBER',
  801.     'HEIGHT'           => '%Length',
  802.     'ID'               => 'ID',
  803.     'NOWRAP'           => 'NOWRAP',
  804.     'ROWSPAN'          => 'NUMBER',
  805.     'STYLE'            => '%StyleSheet',
  806.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  807.     'WIDTH'            => '%Length',
  808.   },
  809.   'THEAD' => {
  810.     'ALIGN'  => 'LEFT|CENTER|RIGHT|JUSTIFY',
  811.     'CLASS'  => 'NAMES',
  812.     'ID'     => 'ID',
  813.     'STYLE'  => '%StyleSheet',
  814.     'VALIGN' => 'TOP|MIDDLE|BOTTOM',
  815.   },
  816.   'TR' => {
  817.     'ALIGN'            => 'LEFT|CENTER|RIGHT|JUSTIFY',
  818.     'BGCOLOR'          => '%color',
  819.     'BORDERCOLOR'      => '%color',
  820.     'BORDERCOLORDARK'  => '%color',
  821.     'BORDERCOLORLIGHT' => '%color',
  822.     'CLASS'            => 'NAMES',
  823.     'ID'               => 'ID',
  824.     'STYLE'            => '%StyleSheet',
  825.     'VALIGN'           => 'TOP|MIDDLE|BOTTOM|BASELINE',
  826.   },
  827.   'UL' => {
  828.     'CLASS'   => 'NAMES',
  829.     'COMPACT' => 'COMPACT',
  830.     'ID'      => 'ID',
  831.     'STYLE'   => '%StyleSheet',
  832.   },
  833. );
  834. %requiredAttrs = (
  835.   'A'        => 'HREF|NAME',
  836.   'APPLET'   => 'CODE&HEIGHT&WIDTH',
  837.   'BASE'     => 'HREF',
  838.   'EMBED'    => 'SRC',
  839.   'FORM'     => 'ACTION',
  840.   'FRAME'    => 'SRC',
  841.   'IFRAME'   => 'SRC',
  842.   'IMG'      => 'SRC',
  843.   'META'     => 'CONTENT',
  844.   'PARAM'    => 'NAME',
  845.   'SELECT'   => 'NAME',
  846.   'TEXTAREA' => 'NAME&ROWS&COLS',
  847. );
  848. #======= ENTITIES =======
  849. %refEntities = (
  850.   'AElig'  => 'Æ',
  851.   'Aacute' => 'Á',
  852.   'Acirc'  => 'Â',
  853.   'Agrave' => 'À',
  854.   'Aring'  => 'Å',
  855.   'Atilde' => 'Ã',
  856.   'Auml'   => 'Ä',
  857.   'Ccedil' => 'Ç',
  858.   'ETH'    => 'Ð',
  859.   'Eacute' => 'É',
  860.   'Ecirc'  => 'Ê',
  861.   'Egrave' => 'È',
  862.   'Euml'   => 'Ë',
  863.   'Iacute' => 'Í',
  864.   'Icirc'  => 'Î',
  865.   'Igrave' => 'Ì',
  866.   'Iuml'   => 'Ï',
  867.   'Ntilde' => 'Ñ',
  868.   'Oacute' => 'Ó',
  869.   'Ocirc'  => 'Ô',
  870.   'Ograve' => 'Ò',
  871.   'Oslash' => 'Ø',
  872.   'Otilde' => 'Õ',
  873.   'Ouml'   => 'Ö',
  874.   'THORN'  => 'Þ',
  875.   'Uacute' => 'Ú',
  876.   'Ucirc'  => 'Û',
  877.   'Ugrave' => 'Ù',
  878.   'Uuml'   => 'Ü',
  879.   'Yacute' => 'Ý',
  880.   'aacute' => 'á',
  881.   'acirc'  => 'â',
  882.   'acute'  => '´',
  883.   'aelig'  => 'æ',
  884.   'agrave' => 'à',
  885.   'amp'    => '&',
  886.   'aring'  => 'å',
  887.   'atilde' => 'ã',
  888.   'auml'   => 'ä',
  889.   'brvbar' => '¦',
  890.   'ccedil' => 'ç',
  891.   'cedil'  => '¸',
  892.   'cent'   => '¢',
  893.   'copy'   => '©',
  894.   'curren' => '¤',
  895.   'deg'    => '°',
  896.   'divide' => '÷',
  897.   'eacute' => 'é',
  898.   'ecirc'  => 'ê',
  899.   'egrave' => 'è',
  900.   'eth'    => 'ð',
  901.   'euml'   => 'ë',
  902.   'frac12' => '½',
  903.   'frac14' => '¼',
  904.   'frac34' => '¾',
  905.   'gt'     => '>',
  906.   'iacute' => 'í',
  907.   'icirc'  => 'î',
  908.   'iexcl'  => '¡',
  909.   'igrave' => 'ì',
  910.   'iquest' => '¿',
  911.   'iuml'   => 'ï',
  912.   'laquo'  => '«',
  913.   'lt'     => '<',
  914.   'macr'   => '¯',
  915.   'micro'  => 'µ',
  916.   'middot' => '·',
  917.   'nbsp'   => ' ',
  918.   'not'    => '¬',
  919.   'ntilde' => 'ñ',
  920.   'oacute' => 'ó',
  921.   'ocirc'  => 'ô',
  922.   'ograve' => 'ò',
  923.   'ordf'   => 'ª',
  924.   'ordm'   => 'º',
  925.   'oslash' => 'ø',
  926.   'otilde' => 'õ',
  927.   'ouml'   => 'ö',
  928.   'para'   => '¶',
  929.   'plusmn' => '±',
  930.   'pound'  => '£',
  931.   'quot'   => '"',
  932.   'raquo'  => '»',
  933.   'reg'    => '®',
  934.   'sect'   => '§',
  935.   'shy'    => '­',
  936.   'sup1'   => '¹',
  937.   'sup2'   => '²',
  938.   'sup3'   => '³',
  939.   'szlig'  => 'ß',
  940.   'thorn'  => 'þ',
  941.   'times'  => '×',
  942.   'uacute' => 'ú',
  943.   'ucirc'  => 'û',
  944.   'ugrave' => 'ù',
  945.   'uml'    => '¨',
  946.   'uuml'   => 'ü',
  947.   'yacute' => 'ý',
  948.   'yen'    => '¥',
  949.   'yuml'   => 'ÿ',
  950. );
  951. %refParams = (
  952.   'COORDS'     => '(?:\d+(?:\s*,\s*|\s+))+\d+',
  953.   'LIStyle'    => '&LIStyle',
  954.   'OLStyle'    => '&OLStyle',
  955.   'Length'     => '\d+[%]?',
  956.   'Pixels'     => '\d+',
  957.   'Script'     => 'CDATA',
  958.   'StyleSheet' => 'CDATA',
  959.   'Types'      => 'CDATA+',
  960.   'URL'        => '&URL',
  961.   'literal'    => 'CDATA',
  962.   'border'     => '(?i)\d+|BORDER',
  963.   'face'       => 'CDATA+',
  964.   'fsize'      => '[1-7]',
  965.   'rsize'      => '[+|-]?[1-7]',
  966.   'color'      => '(?i)#[0-9A-F]{6}'.
  967.                   '|aqua|black|blue|fuchsia|gray|green|lime|maroon'.
  968.                   '|navy|olive|purple|red|silver|teal|white|yellow'.
  969.                   '|aliceblue|antiquewhite|aquamarine|azure'.
  970.                   '|beige|bisque|blanchedalmond|blueviolet|brown|burlywood'.
  971.                   '|cadetblue|chartreuse|chocolate|coral|cornflowerblue'.
  972.                   '|cornsilk|crimson|cyan'.
  973.                   '|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen'.
  974.                   '|darkkhaki|darkmagenta|darkolivegreen|darkorange'.
  975.                   '|darkorchid|darkred|darksalmon|darkseagreen'.
  976.                   '|darkslateblue|darkslategray|darkturquoise|darkviolet'.
  977.                   '|deeppink|deepskyblue|dimgray|dodgerblue'.
  978.                   '|firebrick|floralwhite|forestgreen'.
  979.                   '|gainsboro|ghostwhite|gold|goldenrod|greenyellow'.
  980.                   '|honeydew|hotpink|indianred|indigo|ivory|khaki'.
  981.                   '|lavender|lavenderblush|lawngreen|lemonchiffon'.
  982.                   '|lightblue|lightcoral|lightcyan|lightgoldenrodyellow'.
  983.                   '|lightgreen|lightgrey|lightpink|lightsalmon'.
  984.                   '|lightseagreen|lightskyblue|lightslategray'.
  985.                   '|lightsteelblue|lightyellow|limegreen|linen'.
  986.                   '|magenta|mediumaquamarine|mediumblue|mediumorchid'.
  987.                   '|mediumpurple|mediumseagreen|mediumslateblue'.
  988.                   '|mediumspringgreen|mediumturquoise|mediumvioletred'.
  989.                   '|midnightblue|mintcream|mistyrose|moccasin'.
  990.                   '|navajowhite|oldlace|olivedrab|orange|orangered|orchid'.
  991.                   '|palegoldenrod|palegreen|paleturquoise|palevioletred'.
  992.                   '|papayawhip|peachpuff|peru|pink|plum|powderblue'.
  993.                   '|rosybrown|royalblue'.
  994.                   '|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna'.
  995.                   '|skyblue|slateblue|slategray|snow|springgreen|steelblue'.
  996.                   '|tan|thistle|tomato|turquoise|violet'.
  997.                   '|wheat|whitesmoke|yellowgreen',
  998. );
  999.  
  1000. 1;
  1001.