home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2001 December (DVD) / VPR0112A.ISO / OLS / HTMLLINT / htmllint.lzh / arena.rul < prev    next >
Text File  |  2000-01-31  |  36KB  |  1,078 lines

  1. # HTML3.0 (Arena)
  2.  
  3. #======= ELEMENTS =======
  4. $emptyTags = 'ATOP|BASE|BR|CHOOSE|HR|IMG|INPUT|ISINDEX|LEFT|LINK|META|NEXTID'.
  5.              '|OVER|OVERLAY|RANGE|RIGHT|SPOT|TAB';
  6. $pairTags = 'A|ABBREV|ABOVE|ACRONYM|ADDRESS|ARRAY|AU|B|BANNER|BAR|BELOW|BIG'.
  7.             '|BLOCKQUOTE|BODY|BODYTEXT|BOX|BQ|BT|CAPTION|CITE|CODE|CREDIT|DD'.
  8.             '|DDOT|DEL|DFN|DIR|DIV|DL|DOT|DT|EM|FIG|FIGTEXT|FN|FORM|H1|H2|H3'.
  9.             '|H4|H5|H6|HAT|HEAD|HTML|I|INS|ITEM|KBD|LANG|LH|LI|MATH|MENU|NOTE'.
  10.             '|OF|OL|OPTION|P|PERSON|PRE|Q|ROOT|ROW|S|SAMP|SELECT|SMALL|SQRT'.
  11.             '|STRONG|STYLE|SUB|SUP|T|TABLE|TD|TEXTAREA|TH|TILDE|TITLE|TR|TT|U'.
  12.             '|UL|VAR|VEC';
  13. $deprecatedTags = 'BLOCKQUOTE|DIR|MENU|NEXTID';
  14. $omitStartTags = 'BODY|BODYTEXT|FIGTEXT|HEAD|HTML';
  15. $omitEndTags = 'BODY|BODYTEXT|DD|DT|FIGTEXT|HEAD|HTML|ITEM|LH|LI|OF|OPTION|P'.
  16.                '|ROW|STYLE|TD|TH|TR';
  17. #$maybeEmpty = 'ADDRESS|BANNER|BODYTEXT|CREDIT|DD|DIV|FIGTEXT|FN|FORM|ITEM|LI'.
  18. #              '|MATH|NOTE|OF|OPTION|PRE|ROW|SQRT|STYLE|TD|TEXTAREA|TH|TITLE'.
  19. #              '|TR';
  20. $maybeEmpty = 'TD|TH';
  21. %requiredTags = (
  22.   '#003'       => 'LEFT',
  23.   '#005'       => '#004',
  24.   '#006'       => 'RIGHT',
  25.   'BLOCKQUOTE' => 'BODYTEXT',
  26.   'BODY'       => 'BODYTEXT',
  27.   'BQ'         => 'BODYTEXT',
  28.   'DL'         => '#000',
  29.   'FIG'        => 'FIGTEXT',
  30.   'HEAD'       => 'TITLE',
  31.   'HTML'       => 'HEAD|BODY',
  32.   'OL'         => 'LI',
  33.   'ROOT'       => '#002|OF',
  34.   'UL'         => 'LI',
  35. );
  36. %onceonlyTags = (
  37.   '#003'       => 'LEFT',
  38.   '#004'       => 'OVER|ATOP|CHOOSE',
  39.   '#005'       => '#004',
  40.   '#006'       => 'RIGHT',
  41.   'BLOCKQUOTE' => 'BODYTEXT|CREDIT',
  42.   'BODY'       => 'BANNER|BODYTEXT',
  43.   'BOX'        => '#003|#005|#006',
  44.   'BQ'         => 'BODYTEXT|CREDIT',
  45.   'DL'         => 'LH',
  46.   'FIG'        => 'CAPTION|FIGTEXT|CREDIT',
  47.   'HEAD'       => 'TITLE|ISINDEX|BASE|STYLE|NEXTID',
  48.   'HTML'       => 'HEAD|BODY',
  49.   'OL'         => 'LH',
  50.   'ROOT'       => 'OF',
  51.   'TABLE'      => 'CAPTION',
  52.   'UL'         => 'LH',
  53. );
  54. $sequencialTags = 'UL|ROOT|TABLE|BOX|BODY|DL|BQ|HTML|#003|FIG|#005|BLOCKQUOTE'.
  55.                   '|#006|OL';
  56. %tagsElements = (
  57.   '#000'       => 'DD|DT',
  58.   '#001'       => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  59.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  60.                   '|SUP|SUB|#PCDATA',
  61.   '#002'       => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  62.                   '|BELOW|ABOVE|BOX|#PCDATA',
  63.   '#003'       => 'LEFT|#002',
  64.   '#004'       => 'OVER|ATOP|CHOOSE',
  65.   '#005'       => '#004|#002',
  66.   '#006'       => 'RIGHT|#002',
  67.   'A'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|MATH'.
  68.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  69.                   '|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1',
  70.   'ABBREV'     => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  71.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  72.                   '|SUP|SUB|#PCDATA',
  73.   'ABOVE'      => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  74.                   '|BELOW|ABOVE|BOX|#PCDATA',
  75.   'ACRONYM'    => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  76.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  77.                   '|SUP|SUB|#PCDATA',
  78.   'ADDRESS'    => 'P|#001',
  79.   'ARRAY'      => 'ROW',
  80.   'AU'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  81.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  82.                   '|SUP|SUB|#PCDATA',
  83.   'B'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  84.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  85.                   '|SUP|SUB|#PCDATA',
  86.   'BANNER'     => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  87.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  88.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  89.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  90.                   '|DIV',
  91.   'BAR'        => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  92.                   '|BELOW|ABOVE|BOX|#PCDATA',
  93.   'BELOW'      => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  94.                   '|BELOW|ABOVE|BOX|#PCDATA',
  95.   'BIG'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  96.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  97.                   '|SUP|SUB|#PCDATA',
  98.   'BLOCKQUOTE' => 'BODYTEXT|CREDIT',
  99.   'BODY'       => 'BANNER|BODYTEXT|SPOT',
  100.   'BODYTEXT'   => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  101.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  102.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  103.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  104.                   '|DIV',
  105.   'BOX'        => '#002|#003|#005|#006',
  106.   'BQ'         => 'BODYTEXT|CREDIT',
  107.   'BT'         => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  108.                   '|BELOW|ABOVE|BOX|#PCDATA',
  109.   'CAPTION'    => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  110.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  111.                   '|SUP|SUB|#PCDATA',
  112.   'CITE'       => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  113.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  114.                   '|SUP|SUB|#PCDATA',
  115.   'CODE'       => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  116.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  117.                   '|SUP|SUB|#PCDATA',
  118.   'CREDIT'     => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  119.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  120.                   '|SUP|SUB|#PCDATA',
  121.   'DD'         => 'NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE|PRE|DL|MENU'.
  122.                   '|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q'.
  123.                   '|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL'.
  124.                   '|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA',
  125.   'DDOT'       => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  126.                   '|BELOW|ABOVE|BOX|#PCDATA',
  127.   'DEL'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  128.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  129.                   '|SUP|SUB|#PCDATA',
  130.   'DFN'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  131.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  132.                   '|SUP|SUB|#PCDATA',
  133.   'DIR'        => 'LI',
  134.   'DIV'        => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  135.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  136.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  137.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  138.                   '|DIV',
  139.   'DL'         => 'LH|#000',
  140.   'DOT'        => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  141.                   '|BELOW|ABOVE|BOX|#PCDATA',
  142.   'DT'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  143.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  144.                   '|SUP|SUB|#PCDATA',
  145.   'EM'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  146.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  147.                   '|SUP|SUB|#PCDATA',
  148.   'FIG'        => 'OVERLAY|CAPTION|FIGTEXT|CREDIT',
  149.   'FIGTEXT'    => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  150.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  151.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  152.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  153.                   '|DIV',
  154.   'FN'         => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  155.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  156.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  157.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  158.                   '|DIV',
  159.   'FORM'       => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|BQ|BLOCKQUOTE|PRE|DL'.
  160.                   '|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU'.
  161.                   '|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  162.                   '|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  163.                   '|DIV|INPUT|SELECT|TEXTAREA',
  164.   'H1'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  165.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  166.                   '|SUP|SUB|#PCDATA',
  167.   'H2'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  168.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  169.                   '|SUP|SUB|#PCDATA',
  170.   'H3'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  171.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  172.                   '|SUP|SUB|#PCDATA',
  173.   'H4'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  174.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  175.                   '|SUP|SUB|#PCDATA',
  176.   'H5'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  177.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  178.                   '|SUP|SUB|#PCDATA',
  179.   'H6'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  180.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  181.                   '|SUP|SUB|#PCDATA',
  182.   'HAT'        => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  183.                   '|BELOW|ABOVE|BOX|#PCDATA',
  184.   'HEAD'       => 'TITLE|ISINDEX|BASE|STYLE|META|LINK|RANGE|NEXTID',
  185.   'HTML'       => 'HEAD|BODY',
  186.   'I'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  187.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  188.                   '|SUP|SUB|#PCDATA',
  189.   'INS'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  190.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  191.                   '|SUP|SUB|#PCDATA',
  192.   'ITEM'       => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  193.                   '|BELOW|ABOVE|BOX|#PCDATA',
  194.   'KBD'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  195.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  196.                   '|SUP|SUB|#PCDATA',
  197.   'LANG'       => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  198.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  199.                   '|SUP|SUB|#PCDATA',
  200.   'LH'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  201.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  202.                   '|SUP|SUB|#PCDATA',
  203.   'LI'         => 'NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE|PRE|DL|MENU'.
  204.                   '|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q'.
  205.                   '|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL'.
  206.                   '|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA',
  207.   'MATH'       => '#PCDATA|BOX|ABOVE|BELOW|VEC|BAR|DOT|DDOT|HAT|TILDE|ROOT'.
  208.                   '|SQRT|ARRAY|SUB|SUP|B|T|BT',
  209.   'MENU'       => 'LI',
  210.   'NOTE'       => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  211.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  212.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  213.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  214.                   '|DIV',
  215.   'OF'         => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  216.                   '|BELOW|ABOVE|BOX|#PCDATA',
  217.   'OL'         => 'LH|LI',
  218.   'OPTION'     => '#PCDATA',
  219.   'P'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  220.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  221.                   '|SUP|SUB|#PCDATA',
  222.   'PERSON'     => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  223.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  224.                   '|SUP|SUB|#PCDATA',
  225.   'PRE'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|A|CITE|VAR'.
  226.                   '|KBD|SAMP|CODE|STRONG|EM|I|TT|S|U|B|#PCDATA',
  227.   'Q'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  228.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  229.                   '|SUP|SUB|#PCDATA',
  230.   'ROOT'       => '#002|OF|#002',
  231.   'ROW'        => 'ITEM',
  232.   'S'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  233.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  234.                   '|SUP|SUB|#PCDATA',
  235.   'SAMP'       => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  236.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  237.                   '|SUP|SUB|#PCDATA',
  238.   'SELECT'     => 'OPTION',
  239.   'SMALL'      => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  240.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  241.                   '|SUP|SUB|#PCDATA',
  242.   'SQRT'       => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  243.                   '|BELOW|ABOVE|BOX|#PCDATA',
  244.   'STRONG'     => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  245.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  246.                   '|SUP|SUB|#PCDATA',
  247.   'STYLE'      => '#PCDATA',
  248.   'SUB'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  249.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  250.                   '|SUP|SUB|#PCDATA',
  251.   'SUP'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  252.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  253.                   '|SUP|SUB|#PCDATA',
  254.   'T'          => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  255.                   '|BELOW|ABOVE|BOX|#PCDATA',
  256.   'TABLE'      => 'CAPTION|TR',
  257.   'TD'         => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  258.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  259.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  260.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  261.                   '|DIV',
  262.   'TEXTAREA'   => '#PCDATA',
  263.   'TH'         => 'ADDRESS|HR|NOTE|FIG|TABLE|FN|ISINDEX|FORM|BQ|BLOCKQUOTE'.
  264.                   '|PRE|DL|MENU|DIR|OL|UL|P|DEL|INS|ABBREV|ACRONYM|PERSON|DFN'.
  265.                   '|AU|LANG|Q|BR|IMG|A|MATH|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  266.                   '|EM|SMALL|BIG|I|TT|S|U|B|SUP|SUB|#PCDATA|H6|H5|H4|H3|H2|H1'.
  267.                   '|DIV',
  268.   'TILDE'      => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  269.                   '|BELOW|ABOVE|BOX|#PCDATA',
  270.   'TITLE'      => '#PCDATA',
  271.   'TR'         => 'TD|TH',
  272.   'TT'         => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  273.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  274.                   '|SUP|SUB|#PCDATA',
  275.   'U'          => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  276.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  277.                   '|SUP|SUB|#PCDATA',
  278.   'UL'         => 'LH|LI',
  279.   'VAR'        => 'DEL|INS|ABBREV|ACRONYM|PERSON|DFN|AU|LANG|Q|BR|IMG|A|MATH'.
  280.                   '|TAB|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|SMALL|BIG|I|TT|S|U|B'.
  281.                   '|SUP|SUB|#PCDATA',
  282.   'VEC'        => 'BT|T|B|SUP|SUB|ARRAY|SQRT|ROOT|TILDE|HAT|DDOT|DOT|BAR|VEC'.
  283.                   '|BELOW|ABOVE|BOX|#PCDATA',
  284. );
  285. %excludedElems = (
  286.   'A'        => 'A',
  287.   'DIR'      => 'P|UL|OL|DIR|MENU|DL|PRE|BLOCKQUOTE|BQ|FORM|ISINDEX|FN|TABLE'.
  288.                 '|FIG|NOTE',
  289.   'FIG'      => 'FIG|IMG',
  290.   'FORM'     => 'FORM',
  291.   'MATH'     => 'U|S|TT|I|BIG|SMALL|EM|STRONG|CODE|SAMP|KBD|VAR|CITE|TAB|MATH'.
  292.                 '|A|IMG|BR|Q|LANG|AU|DFN|PERSON|ACRONYM|ABBREV|INS|DEL',
  293.   'MENU'     => 'P|UL|OL|DIR|MENU|DL|PRE|BLOCKQUOTE|BQ|FORM|ISINDEX|FN|TABLE'.
  294.                 '|FIG|NOTE',
  295.   'PRE'      => 'TAB|MATH|IMG|BIG|SMALL|SUB|SUP',
  296.   'SELECT'   => 'INPUT|TEXTAREA|SELECT',
  297.   'TEXTAREA' => 'INPUT|TEXTAREA|SELECT',
  298. );
  299. %includedElems = (
  300.   'BODY' => 'SPOT',
  301.   'FORM' => 'INPUT|SELECT|TEXTAREA',
  302.   'MATH' => 'BOX|ABOVE|BELOW|VEC|BAR|DOT|DDOT|HAT|TILDE|ROOT|SQRT|ARRAY|SUB'.
  303.             '|SUP|B|T|BT',
  304. );
  305. %deprecatedElems = (
  306.   'A'        => 'H1|H2|H3|H4|H5|H6',
  307.   'BANNER'   => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  308.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  309.                 '|TAB|TT|U|VAR',
  310.   'BODYTEXT' => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  311.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  312.                 '|TAB|TT|U|VAR',
  313.   'DD'       => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  314.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  315.                 '|TAB|TT|U|VAR',
  316.   'DIV'      => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  317.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  318.                 '|TAB|TT|U|VAR',
  319.   'FIGTEXT'  => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  320.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  321.                 '|TAB|TT|U|VAR',
  322.   'FN'       => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  323.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  324.                 '|TAB|TT|U|VAR',
  325.   'FORM'     => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  326.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  327.                 '|TAB|TT|U|VAR',
  328.   'LI'       => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  329.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  330.                 '|TAB|TT|U|VAR',
  331.   'NOTE'     => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  332.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  333.                 '|TAB|TT|U|VAR',
  334.   'TD'       => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  335.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  336.                 '|TAB|TT|U|VAR',
  337.   'TH'       => '#PCDATA|A|ABBREV|ACRONYM|AU|B|BIG|BR|CITE|CODE|DEL|DFN|EM|I'.
  338.                 '|IMG|INS|KBD|LANG|MATH|PERSON|Q|S|SAMP|SMALL|STRONG|SUB|SUP'.
  339.                 '|TAB|TT|U|VAR',
  340. );
  341. #======= ATTRIBUTES =======
  342. %tagsAttributes = (
  343.   'A' => {
  344.     'CLASS'   => 'NAMES',
  345.     'HREF'    => '%URI',
  346.     'ID'      => 'ID',
  347.     'LANG'    => 'CDATA',
  348.     'MD'      => 'CDATA',
  349.     'METHODS' => 'NAMES',
  350.     'NAME'    => 'CDATA',
  351.     'REL'     => '%linkType',
  352.     'REV'     => '%linkType',
  353.     'SHAPE'   => '%SHAPE',
  354.     'TITLE'   => 'CDATA',
  355.   },
  356.   'ABBREV' => {
  357.     'CLASS' => 'NAMES',
  358.     'ID'    => 'ID',
  359.     'LANG'  => 'CDATA',
  360.   },
  361.   'ABOVE' => {
  362.     'SYM' => 'ENTITY',
  363.   },
  364.   'ACRONYM' => {
  365.     'CLASS' => 'NAMES',
  366.     'ID'    => 'ID',
  367.     'LANG'  => 'CDATA',
  368.   },
  369.   'ADDRESS' => {
  370.     'CLASS' => 'NAMES',
  371.     'CLEAR' => 'CDATA',
  372.     'ID'    => 'ID',
  373.     'LANG'  => 'CDATA',
  374.   },
  375.   'ARRAY' => {
  376.     'ALIGN'  => 'TOP|MIDDLE|BOTTOM',
  377.     'COLDEF' => 'CDATA',
  378.     'LABELS' => 'LABELS',
  379.     'LDELIM' => 'CDATA',
  380.     'RDELIM' => 'CDATA',
  381.   },
  382.   'AU' => {
  383.     'CLASS' => 'NAMES',
  384.     'ID'    => 'ID',
  385.     'LANG'  => 'CDATA',
  386.   },
  387.   'B' => {
  388.     'CLASS' => 'NAMES',
  389.     'ID'    => 'ID',
  390.     'LANG'  => 'CDATA',
  391.   },
  392.   'BANNER' => {
  393.     'CLASS' => 'NAMES',
  394.     'ID'    => 'ID',
  395.     'LANG'  => 'CDATA',
  396.   },
  397.   'BASE' => {
  398.     'HREF' => '%URI',
  399.     'ID'   => 'ID',
  400.   },
  401.   'BELOW' => {
  402.     'SYM' => 'ENTITY',
  403.   },
  404.   'BIG' => {
  405.     'CLASS' => 'NAMES',
  406.     'ID'    => 'ID',
  407.     'LANG'  => 'CDATA',
  408.   },
  409.   'BLOCKQUOTE' => {
  410.     'CLASS'  => 'NAMES',
  411.     'CLEAR'  => 'CDATA',
  412.     'ID'     => 'ID',
  413.     'LANG'   => 'CDATA',
  414.     'NOWRAP' => 'NOWRAP',
  415.   },
  416.   'BODY' => {
  417.     'BACKGROUND' => '%URI',
  418.     'CLASS'      => 'NAMES',
  419.     'ID'         => 'ID',
  420.     'LANG'       => 'CDATA',
  421.   },
  422.   'BOX' => {
  423.     'SIZE' => 'NORMAL|MEDIUM|LARGE|HUGE',
  424.   },
  425.   'BQ' => {
  426.     'CLASS'  => 'NAMES',
  427.     'CLEAR'  => 'CDATA',
  428.     'ID'     => 'ID',
  429.     'LANG'   => 'CDATA',
  430.     'NOWRAP' => 'NOWRAP',
  431.   },
  432.   'BR' => {
  433.     'CLASS' => 'NAMES',
  434.     'CLEAR' => 'CDATA',
  435.     'ID'    => 'ID',
  436.     'LANG'  => 'CDATA',
  437.   },
  438.   'BT' => {
  439.     'CLASS' => 'NAMES',
  440.   },
  441.   'CAPTION' => {
  442.     'ALIGN' => 'TOP|BOTTOM|LEFT|RIGHT',
  443.     'CLASS' => 'NAMES',
  444.     'ID'    => 'ID',
  445.     'LANG'  => 'CDATA',
  446.   },
  447.   'CITE' => {
  448.     'CLASS' => 'NAMES',
  449.     'ID'    => 'ID',
  450.     'LANG'  => 'CDATA',
  451.   },
  452.   'CODE' => {
  453.     'CLASS' => 'NAMES',
  454.     'ID'    => 'ID',
  455.     'LANG'  => 'CDATA',
  456.   },
  457.   'CREDIT' => {
  458.     'CLASS' => 'NAMES',
  459.     'ID'    => 'ID',
  460.     'LANG'  => 'CDATA',
  461.   },
  462.   'DD' => {
  463.     'CLASS' => 'NAMES',
  464.     'CLEAR' => 'CDATA',
  465.     'ID'    => 'ID',
  466.     'LANG'  => 'CDATA',
  467.   },
  468.   'DEL' => {
  469.     'CLASS' => 'NAMES',
  470.     'ID'    => 'ID',
  471.     'LANG'  => 'CDATA',
  472.   },
  473.   'DFN' => {
  474.     'CLASS' => 'NAMES',
  475.     'ID'    => 'ID',
  476.     'LANG'  => 'CDATA',
  477.   },
  478.   'DIR' => {
  479.     'COMPACT' => 'COMPACT',
  480.   },
  481.   'DIV' => {
  482.     'ALIGN'  => 'LEFT|CENTER|RIGHT',
  483.     'CLASS'  => 'NAMES',
  484.     'CLEAR'  => 'CDATA',
  485.     'ID'     => 'ID',
  486.     'LANG'   => 'CDATA',
  487.     'NOWRAP' => 'NOWRAP',
  488.   },
  489.   'DL' => {
  490.     'CLASS'   => 'NAMES',
  491.     'CLEAR'   => 'CDATA',
  492.     'COMPACT' => 'COMPACT',
  493.     'ID'      => 'ID',
  494.     'LANG'    => 'CDATA',
  495.   },
  496.   'DT' => {
  497.     'CLASS' => 'NAMES',
  498.     'CLEAR' => 'CDATA',
  499.     'ID'    => 'ID',
  500.     'LANG'  => 'CDATA',
  501.   },
  502.   'EM' => {
  503.     'CLASS' => 'NAMES',
  504.     'ID'    => 'ID',
  505.     'LANG'  => 'CDATA',
  506.   },
  507.   'FIG' => {
  508.     'ALIGN'    => 'BLEEDLEFT|LEFT|CENTER|RIGHT|BLEEDRIGHT|JUSTIFY',
  509.     'CLASS'    => 'NAMES',
  510.     'CLEAR'    => 'CDATA',
  511.     'HEIGHT'   => 'NUMBER',
  512.     'ID'       => 'ID',
  513.     'IMAGEMAP' => '%URI',
  514.     'LANG'     => 'CDATA',
  515.     'MD'       => 'CDATA',
  516.     'NOFLOW'   => 'NOFLOW',
  517.     'SRC'      => '%URI',
  518.     'UNITS'    => 'EN|PIXELS',
  519.     'WIDTH'    => 'NUMBER',
  520.   },
  521.   'FN' => {
  522.     'CLASS' => 'NAMES',
  523.     'ID'    => 'ID',
  524.     'LANG'  => 'CDATA',
  525.   },
  526.   'FORM' => {
  527.     'ACTION'  => '%URI',
  528.     'ENCTYPE' => '%Content-Type',
  529.     'METHOD'  => 'GET|POST',
  530.     'SCRIPT'  => '%URI',
  531.   },
  532.   'H1' => {
  533.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  534.     'CLASS'   => 'NAMES',
  535.     'CLEAR'   => 'CDATA',
  536.     'DINGBAT' => 'ENTITY',
  537.     'ID'      => 'ID',
  538.     'LANG'    => 'CDATA',
  539.     'MD'      => 'CDATA',
  540.     'NOWRAP'  => 'NOWRAP',
  541.     'SEQNUM'  => 'NUMBER',
  542.     'SKIP'    => 'NUMBER',
  543.     'SRC'     => '%URI',
  544.   },
  545.   'H2' => {
  546.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  547.     'CLASS'   => 'NAMES',
  548.     'CLEAR'   => 'CDATA',
  549.     'DINGBAT' => 'ENTITY',
  550.     'ID'      => 'ID',
  551.     'LANG'    => 'CDATA',
  552.     'MD'      => 'CDATA',
  553.     'NOWRAP'  => 'NOWRAP',
  554.     'SEQNUM'  => 'NUMBER',
  555.     'SKIP'    => 'NUMBER',
  556.     'SRC'     => '%URI',
  557.   },
  558.   'H3' => {
  559.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  560.     'CLASS'   => 'NAMES',
  561.     'CLEAR'   => 'CDATA',
  562.     'DINGBAT' => 'ENTITY',
  563.     'ID'      => 'ID',
  564.     'LANG'    => 'CDATA',
  565.     'MD'      => 'CDATA',
  566.     'NOWRAP'  => 'NOWRAP',
  567.     'SEQNUM'  => 'NUMBER',
  568.     'SKIP'    => 'NUMBER',
  569.     'SRC'     => '%URI',
  570.   },
  571.   'H4' => {
  572.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  573.     'CLASS'   => 'NAMES',
  574.     'CLEAR'   => 'CDATA',
  575.     'DINGBAT' => 'ENTITY',
  576.     'ID'      => 'ID',
  577.     'LANG'    => 'CDATA',
  578.     'MD'      => 'CDATA',
  579.     'NOWRAP'  => 'NOWRAP',
  580.     'SEQNUM'  => 'NUMBER',
  581.     'SKIP'    => 'NUMBER',
  582.     'SRC'     => '%URI',
  583.   },
  584.   'H5' => {
  585.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  586.     'CLASS'   => 'NAMES',
  587.     'CLEAR'   => 'CDATA',
  588.     'DINGBAT' => 'ENTITY',
  589.     'ID'      => 'ID',
  590.     'LANG'    => 'CDATA',
  591.     'MD'      => 'CDATA',
  592.     'NOWRAP'  => 'NOWRAP',
  593.     'SEQNUM'  => 'NUMBER',
  594.     'SKIP'    => 'NUMBER',
  595.     'SRC'     => '%URI',
  596.   },
  597.   'H6' => {
  598.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  599.     'CLASS'   => 'NAMES',
  600.     'CLEAR'   => 'CDATA',
  601.     'DINGBAT' => 'ENTITY',
  602.     'ID'      => 'ID',
  603.     'LANG'    => 'CDATA',
  604.     'MD'      => 'CDATA',
  605.     'NOWRAP'  => 'NOWRAP',
  606.     'SEQNUM'  => 'NUMBER',
  607.     'SKIP'    => 'NUMBER',
  608.     'SRC'     => '%URI',
  609.   },
  610.   'HR' => {
  611.     'CLASS' => 'NAMES',
  612.     'CLEAR' => 'CDATA',
  613.     'ID'    => 'ID',
  614.     'LANG'  => 'CDATA',
  615.     'MD'    => 'CDATA',
  616.     'SRC'   => '%URI',
  617.   },
  618.   'HTML' => {
  619.     'CLASS'   => 'NAMES',
  620.     'URN'     => 'CDATA',
  621.     'VERSION' => 'CDATA=-//IETF//DTD HTML 3.0//EN',
  622.   },
  623.   'I' => {
  624.     'CLASS' => 'NAMES',
  625.     'ID'    => 'ID',
  626.     'LANG'  => 'CDATA',
  627.   },
  628.   'IMG' => {
  629.     'ALIGN'  => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  630.     'ALT'    => 'CDATA',
  631.     'CLASS'  => 'NAMES',
  632.     'HEIGHT' => 'NUMBER',
  633.     'ID'     => 'ID',
  634.     'ISMAP'  => 'ISMAP',
  635.     'LANG'   => 'CDATA',
  636.     'MD'     => 'CDATA',
  637.     'SRC'    => '%URI',
  638.     'UNITS'  => 'EN|PIXELS',
  639.     'WIDTH'  => 'NUMBER',
  640.   },
  641.   'INPUT' => {
  642.     'ACCEPT'    => 'CDATA',
  643.     'ALIGN'     => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  644.     'CHECKED'   => 'CHECKED',
  645.     'CLASS'     => 'NAMES',
  646.     'DISABLED'  => 'DISABLED',
  647.     'ERROR'     => 'CDATA',
  648.     'ID'        => 'ID',
  649.     'LANG'      => 'CDATA',
  650.     'MAX'       => '%REAL',
  651.     'MAXLENGTH' => 'NUMBER',
  652.     'MD'        => 'CDATA',
  653.     'MIN'       => '%REAL',
  654.     'NAME'      => 'NAME',
  655.     'SIZE'      => 'NUMBER',
  656.     'SRC'       => '%URI',
  657.     'TYPE'      => 'TEXT|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|RANGE|FILE'.
  658.                    '|SCRIBBLE|HIDDEN|IMAGE',
  659.     'VALUE'     => 'CDATA',
  660.   },
  661.   'INS' => {
  662.     'CLASS' => 'NAMES',
  663.     'ID'    => 'ID',
  664.     'LANG'  => 'CDATA',
  665.   },
  666.   'ISINDEX' => {
  667.     'HREF'   => '%URI',
  668.     'PROMPT' => 'CDATA',
  669.   },
  670.   'ITEM' => {
  671.     'ALIGN'   => 'CDATA',
  672.     'COLSPAN' => 'NUMBER',
  673.     'ROWSPAN' => 'NUMBER',
  674.   },
  675.   'KBD' => {
  676.     'CLASS' => 'NAMES',
  677.     'ID'    => 'ID',
  678.     'LANG'  => 'CDATA',
  679.   },
  680.   'LANG' => {
  681.     'CLASS' => 'NAMES',
  682.     'ID'    => 'ID',
  683.     'LANG'  => 'CDATA',
  684.   },
  685.   'LH' => {
  686.     'CLASS' => 'NAMES',
  687.     'ID'    => 'ID',
  688.     'LANG'  => 'CDATA',
  689.   },
  690.   'LI' => {
  691.     'CLASS'   => 'NAMES',
  692.     'CLEAR'   => 'CDATA',
  693.     'DINGBAT' => 'ENTITY',
  694.     'ID'      => 'ID',
  695.     'LANG'    => 'CDATA',
  696.     'MD'      => 'CDATA',
  697.     'SKIP'    => 'NUMBER',
  698.     'SRC'     => '%URI',
  699.   },
  700.   'LINK' => {
  701.     'HREF'    => '%URI',
  702.     'METHODS' => 'NAMES',
  703.     'REL'     => '%linkType',
  704.     'REV'     => '%linkType',
  705.     'TITLE'   => 'CDATA',
  706.   },
  707.   'MATH' => {
  708.     'CLASS' => 'NAMES',
  709.     'ID'    => 'ID',
  710.   },
  711.   'MENU' => {
  712.     'COMPACT' => 'COMPACT',
  713.   },
  714.   'META' => {
  715.     'CONTENT'    => 'CDATA',
  716.     'HTTP-EQUIV' => 'NAME',
  717.     'NAME'       => 'NAME',
  718.   },
  719.   'NEXTID' => {
  720.     'N' => 'CDATA',
  721.   },
  722.   'NOTE' => {
  723.     'CLASS' => 'NAMES',
  724.     'CLEAR' => 'CDATA',
  725.     'ID'    => 'ID',
  726.     'LANG'  => 'CDATA',
  727.     'MD'    => 'CDATA',
  728.     'SRC'   => '%URI',
  729.   },
  730.   'OL' => {
  731.     'CLASS'    => 'NAMES',
  732.     'CLEAR'    => 'CDATA',
  733.     'COMPACT'  => 'COMPACT',
  734.     'CONTINUE' => 'CONTINUE',
  735.     'ID'       => 'ID',
  736.     'LANG'     => 'CDATA',
  737.     'SEQNUM'   => 'NUMBER',
  738.   },
  739.   'OPTION' => {
  740.     'CLASS'    => 'NAMES',
  741.     'DISABLED' => 'DISABLED',
  742.     'ERROR'    => 'CDATA',
  743.     'ID'       => 'ID',
  744.     'LANG'     => 'CDATA',
  745.     'SELECTED' => 'SELECTED',
  746.     'SHAPE'    => '%SHAPE',
  747.     'VALUE'    => 'CDATA',
  748.   },
  749.   'OVERLAY' => {
  750.     'HEIGHT'   => 'NUMBER',
  751.     'IMAGEMAP' => '%URI',
  752.     'MD'       => 'CDATA',
  753.     'SRC'      => '%URI',
  754.     'UNITS'    => 'EN|PIXELS',
  755.     'WIDTH'    => 'NUMBER',
  756.     'X'        => 'NUMBER',
  757.     'Y'        => 'NUMBER',
  758.   },
  759.   'P' => {
  760.     'ALIGN'  => 'LEFT|CENTER|RIGHT|JUSTIFY',
  761.     'CLASS'  => 'NAMES',
  762.     'CLEAR'  => 'CDATA',
  763.     'ID'     => 'ID',
  764.     'LANG'   => 'CDATA',
  765.     'NOWRAP' => 'NOWRAP',
  766.   },
  767.   'PERSON' => {
  768.     'CLASS' => 'NAMES',
  769.     'ID'    => 'ID',
  770.     'LANG'  => 'CDATA',
  771.   },
  772.   'PRE' => {
  773.     'CLASS' => 'NAMES',
  774.     'CLEAR' => 'CDATA',
  775.     'ID'    => 'ID',
  776.     'LANG'  => 'CDATA',
  777.     'WIDTH' => 'NUMBER',
  778.   },
  779.   'Q' => {
  780.     'CLASS' => 'NAMES',
  781.     'ID'    => 'ID',
  782.     'LANG'  => 'CDATA',
  783.   },
  784.   'RANGE' => {
  785.     'CLASS' => 'NAMES',
  786.     'FROM'  => 'IDREF',
  787.     'ID'    => 'ID',
  788.     'UNTIL' => 'IDREF',
  789.   },
  790.   'S' => {
  791.     'CLASS' => 'NAMES',
  792.     'ID'    => 'ID',
  793.     'LANG'  => 'CDATA',
  794.   },
  795.   'SAMP' => {
  796.     'CLASS' => 'NAMES',
  797.     'ID'    => 'ID',
  798.     'LANG'  => 'CDATA',
  799.   },
  800.   'SELECT' => {
  801.     'ALIGN'    => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  802.     'CLASS'    => 'NAMES',
  803.     'DISABLED' => 'DISABLED',
  804.     'ERROR'    => 'CDATA',
  805.     'HEIGHT'   => 'NUMBER',
  806.     'ID'       => 'ID',
  807.     'LANG'     => 'CDATA',
  808.     'MD'       => 'CDATA',
  809.     'MULTIPLE' => 'MULTIPLE',
  810.     'NAME'     => 'CDATA',
  811.     'SRC'      => '%URI',
  812.     'UNITS'    => 'EN|PIXELS',
  813.     'WIDTH'    => 'NUMBER',
  814.   },
  815.   'SMALL' => {
  816.     'CLASS' => 'NAMES',
  817.     'ID'    => 'ID',
  818.     'LANG'  => 'CDATA',
  819.   },
  820.   'SPOT' => {
  821.     'ID' => 'ID',
  822.   },
  823.   'STRONG' => {
  824.     'CLASS' => 'NAMES',
  825.     'ID'    => 'ID',
  826.     'LANG'  => 'CDATA',
  827.   },
  828.   'STYLE' => {
  829.     'NOTATION' => 'CDATA',
  830.   },
  831.   'SUB' => {
  832.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  833.     'CLASS' => 'NAMES',
  834.     'ID'    => 'ID',
  835.     'LANG'  => 'CDATA',
  836.   },
  837.   'SUP' => {
  838.     'ALIGN' => 'LEFT|CENTER|RIGHT',
  839.     'CLASS' => 'NAMES',
  840.     'ID'    => 'ID',
  841.     'LANG'  => 'CDATA',
  842.   },
  843.   'T' => {
  844.     'CLASS' => 'NAMES',
  845.   },
  846.   'TAB' => {
  847.     'ALIGN'  => 'LEFT|CENTER|RIGHT|DECIMAL',
  848.     'DP'     => 'CDATA',
  849.     'ID'     => 'ID',
  850.     'INDENT' => 'NUMBER',
  851.     'TO'     => 'IDREF',
  852.   },
  853.   'TABLE' => {
  854.     'ALIGN'   => 'BLEEDLEFT|LEFT|CENTER|RIGHT|BLEEDRIGHT|JUSTIFY',
  855.     'BORDER'  => 'BORDER',
  856.     'CLASS'   => 'NAMES',
  857.     'CLEAR'   => 'CDATA',
  858.     'COLSPEC' => 'CDATA',
  859.     'DP'      => 'CDATA',
  860.     'ID'      => 'ID',
  861.     'LANG'    => 'CDATA',
  862.     'NOFLOW'  => 'NOFLOW',
  863.     'NOWRAP'  => 'NOWRAP',
  864.     'UNITS'   => 'EN|PIXELS|RELATIVE',
  865.     'WIDTH'   => 'NUMBER',
  866.   },
  867.   'TD' => {
  868.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  869.     'AXES'    => 'CDATA',
  870.     'AXIS'    => 'CDATA',
  871.     'CLASS'   => 'NAMES',
  872.     'COLSPAN' => 'NUMBER',
  873.     'DP'      => 'CDATA',
  874.     'ID'      => 'ID',
  875.     'LANG'    => 'CDATA',
  876.     'NOWRAP'  => 'NOWRAP',
  877.     'ROWSPAN' => 'NUMBER',
  878.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  879.   },
  880.   'TEXTAREA' => {
  881.     'ALIGN'    => 'TOP|MIDDLE|BOTTOM|LEFT|RIGHT',
  882.     'CLASS'    => 'NAMES',
  883.     'COLS'     => 'NUMBER',
  884.     'DISABLED' => 'DISABLED',
  885.     'ERROR'    => 'CDATA',
  886.     'ID'       => 'ID',
  887.     'LANG'     => 'CDATA',
  888.     'NAME'     => 'CDATA',
  889.     'ROWS'     => 'NUMBER',
  890.   },
  891.   'TH' => {
  892.     'ALIGN'   => 'LEFT|CENTER|RIGHT|JUSTIFY',
  893.     'AXES'    => 'CDATA',
  894.     'AXIS'    => 'CDATA',
  895.     'CLASS'   => 'NAMES',
  896.     'COLSPAN' => 'NUMBER',
  897.     'DP'      => 'CDATA',
  898.     'ID'      => 'ID',
  899.     'LANG'    => 'CDATA',
  900.     'NOWRAP'  => 'NOWRAP',
  901.     'ROWSPAN' => 'NUMBER',
  902.     'VALIGN'  => 'TOP|MIDDLE|BOTTOM|BASELINE',
  903.   },
  904.   'TR' => {
  905.     'ALIGN'  => 'LEFT|CENTER|RIGHT|JUSTIFY',
  906.     'CLASS'  => 'NAMES',
  907.     'DP'     => 'CDATA',
  908.     'ID'     => 'ID',
  909.     'LANG'   => 'CDATA',
  910.     'NOWRAP' => 'NOWRAP',
  911.     'VALIGN' => 'TOP|MIDDLE|BOTTOM|BASELINE',
  912.   },
  913.   'TT' => {
  914.     'CLASS' => 'NAMES',
  915.     'ID'    => 'ID',
  916.     'LANG'  => 'CDATA',
  917.   },
  918.   'U' => {
  919.     'CLASS' => 'NAMES',
  920.     'ID'    => 'ID',
  921.     'LANG'  => 'CDATA',
  922.   },
  923.   'UL' => {
  924.     'CLASS'   => 'NAMES',
  925.     'CLEAR'   => 'CDATA',
  926.     'COMPACT' => 'COMPACT',
  927.     'DINGBAT' => 'ENTITY',
  928.     'ID'      => 'ID',
  929.     'LANG'    => 'CDATA',
  930.     'MD'      => 'CDATA',
  931.     'PLAIN'   => 'PLAIN',
  932.     'SRC'     => '%URI',
  933.     'WRAP'    => 'VERT|HORIZ|NONE',
  934.   },
  935.   'VAR' => {
  936.     'CLASS' => 'NAMES',
  937.     'ID'    => 'ID',
  938.     'LANG'  => 'CDATA',
  939.   },
  940. );
  941. %requiredAttrs = (
  942.   'BASE'     => 'HREF',
  943.   'FIG'      => 'SRC',
  944.   'FORM'     => 'ACTION',
  945.   'IMG'      => 'SRC',
  946.   'LINK'     => 'HREF',
  947.   'META'     => 'CONTENT',
  948.   'NEXTID'   => 'N',
  949.   'OVERLAY'  => 'SRC',
  950.   'RANGE'    => 'FROM&UNTIL',
  951.   'SELECT'   => 'NAME',
  952.   'SPOT'     => 'ID',
  953.   'STYLE'    => 'NOTATION',
  954.   'TEXTAREA' => 'NAME&ROWS&COLS',
  955. );
  956. %deprecatedAttrs = (
  957.   'A' => 'NAME',
  958. );
  959. %deprecatedVals = (
  960.   'INPUT' => {
  961.     'TYPE' => 'IMAGE',
  962.   },
  963. );
  964. #======= ENTITIES =======
  965. %refEntities = (
  966.   'AElig'  => 'Æ',
  967.   'Aacute' => 'Á',
  968.   'Acirc'  => 'Â',
  969.   'Agrave' => 'À',
  970.   'Aring'  => 'Å',
  971.   'Atilde' => 'Ã',
  972.   'Auml'   => 'Ä',
  973.   'Ccedil' => 'Ç',
  974.   'ETH'    => 'Ð',
  975.   'Eacute' => 'É',
  976.   'Ecirc'  => 'Ê',
  977.   'Egrave' => 'È',
  978.   'Euml'   => 'Ë',
  979.   'Iacute' => 'Í',
  980.   'Icirc'  => 'Î',
  981.   'Igrave' => 'Ì',
  982.   'Iuml'   => 'Ï',
  983.   'Ntilde' => 'Ñ',
  984.   'Oacute' => 'Ó',
  985.   'Ocirc'  => 'Ô',
  986.   'Ograve' => 'Ò',
  987.   'Oslash' => 'Ø',
  988.   'Otilde' => 'Õ',
  989.   'Ouml'   => 'Ö',
  990.   'REF1'   => '<SUP>',
  991.   'REF2'   => '</SUP>',
  992.   'REF3'   => '<SUB>',
  993.   'REF4'   => '</SUB>',
  994.   'REF5'   => '<BOX>',
  995.   'REF6'   => '</BOX>',
  996.   'THORN'  => 'Þ',
  997.   'Uacute' => 'Ú',
  998.   'Ucirc'  => 'Û',
  999.   'Ugrave' => 'Ù',
  1000.   'Uuml'   => 'Ü',
  1001.   'Yacute' => 'Ý',
  1002.   'aacute' => 'á',
  1003.   'acirc'  => 'â',
  1004.   'acute'  => '´',
  1005.   'aelig'  => 'æ',
  1006.   'agrave' => 'à',
  1007.   'aring'  => 'å',
  1008.   'atilde' => 'ã',
  1009.   'auml'   => 'ä',
  1010.   'brvbar' => '¦',
  1011.   'ccedil' => 'ç',
  1012.   'cedil'  => '¸',
  1013.   'cent'   => '¢',
  1014.   'copy'   => '©',
  1015.   'curren' => '¤',
  1016.   'deg'    => '°',
  1017.   'divide' => '÷',
  1018.   'eacute' => 'é',
  1019.   'ecirc'  => 'ê',
  1020.   'egrave' => 'è',
  1021.   'eth'    => 'ð',
  1022.   'euml'   => 'ë',
  1023.   'frac12' => '½',
  1024.   'frac14' => '¼',
  1025.   'frac34' => '¾',
  1026.   'iacute' => 'í',
  1027.   'icirc'  => 'î',
  1028.   'iexcl'  => '¡',
  1029.   'igrave' => 'ì',
  1030.   'iquest' => '¿',
  1031.   'iuml'   => 'ï',
  1032.   'laquo'  => '«',
  1033.   'macr'   => '¯',
  1034.   'micro'  => 'µ',
  1035.   'middot' => '·',
  1036.   'nbsp'   => ' ',
  1037.   'not'    => '¬',
  1038.   'ntilde' => 'ñ',
  1039.   'oacute' => 'ó',
  1040.   'ocirc'  => 'ô',
  1041.   'ograve' => 'ò',
  1042.   'ordf'   => 'ª',
  1043.   'ordm'   => 'º',
  1044.   'oslash' => 'ø',
  1045.   'otilde' => 'õ',
  1046.   'ouml'   => 'ö',
  1047.   'para'   => '¶',
  1048.   'plusmn' => '±',
  1049.   'pound'  => '£',
  1050.   'raquo'  => '»',
  1051.   'reg'    => '®',
  1052.   'sect'   => '§',
  1053.   'shy'    => '­',
  1054.   'sup1'   => '¹',
  1055.   'sup2'   => '²',
  1056.   'sup3'   => '³',
  1057.   'szlig'  => 'ß',
  1058.   'thorn'  => 'þ',
  1059.   'times'  => '×',
  1060.   'uacute' => 'ú',
  1061.   'ucirc'  => 'û',
  1062.   'ugrave' => 'ù',
  1063.   'uml'    => '¨',
  1064.   'uuml'   => 'ü',
  1065.   'yacute' => 'ý',
  1066.   'yen'    => '¥',
  1067.   'yuml'   => 'ÿ',
  1068. );
  1069. %refParams = (
  1070.   'Content-Type' => 'CDATA+',
  1071.   'REAL'         => 'CDATA',
  1072.   'SHAPE'        => 'CDATA+',
  1073.   'URI'          => '&URL',
  1074.   'linkType'     => 'NAME',
  1075. );
  1076.  
  1077. 1;
  1078.