home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 April / VPR0004A.BIN / OLS / HTMLLINT / htmllint.lzh / html20.rul < prev    next >
Text File  |  1999-11-06  |  9KB  |  295 lines

  1. # HTML 2.0
  2.  
  3. #======= ELEMENTS =======
  4. $emptyTags = 'BASE|BR|HR|IMG|INPUT|ISINDEX|LINK|META|NEXTID';
  5. $pairTags = 'A|ADDRESS|B|BLOCKQUOTE|BODY|CITE|CODE|DD|DIR|DL|DT|EM|FORM|H1|H2'.
  6.             '|H3|H4|H5|H6|HEAD|HTML|I|KBD|LI|LISTING|MENU|OL|OPTION|P'.
  7.             '|PLAINTEXT|PRE|SAMP|SELECT|STRONG|TEXTAREA|TITLE|TT|UL|VAR|XMP';
  8. $deprecatedTags = 'XMP|LISTING|PLAINTEXT';
  9. $omitStartTags = 'BODY|HEAD|HTML';
  10. $omitEndTags = 'BODY|DD|DT|HEAD|HTML|LI|OPTION|P|PLAINTEXT';
  11. #$maybeEmpty = 'A|ADDRESS|B|BLOCKQUOTE|BODY|CITE|CODE|DD|DT|EM|FORM|H1|H2|H3'.
  12. #              '|H4|H5|H6|I|KBD|LI|LISTING|OPTION|P|PLAINTEXT|PRE|SAMP|STRONG'.
  13. #              '|TEXTAREA|TITLE|TT|VAR|XMP';
  14. $maybeEmpty = 'LISTING|PLAINTEXT|PRE|TEXTAREA|XMP';
  15. %requiredTags = (
  16.   'HEAD' => 'TITLE',
  17.   'HTML' => 'HEAD|BODY',
  18. );
  19. %onceonlyTags = (
  20.   'HEAD' => 'TITLE|ISINDEX|BASE|NEXTID',
  21.   'HTML' => 'HEAD|BODY|PLAINTEXT',
  22. );
  23. $sequencialTags = 'HTML';
  24. %tagsElements = (
  25.   'A'          => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|#PCDATA|H6'.
  26.                   '|H5|H4|H3|H2|H1',
  27.   'ADDRESS'    => 'P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  28.   'B'          => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  29.   'BLOCKQUOTE' => 'ADDRESS|HR|ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU'.
  30.                   '|DIR|OL|UL|P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR'.
  31.                   '|IMG|A|#PCDATA|H6|H5|H4|H3|H2|H1',
  32.   'BODY'       => 'ADDRESS|HR|ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU'.
  33.                   '|DIR|OL|UL|P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR'.
  34.                   '|IMG|A|#PCDATA|H6|H5|H4|H3|H2|H1',
  35.   'CITE'       => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  36.   'CODE'       => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  37.   'DD'         => 'ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR|OL|UL'.
  38.                   '|P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A'.
  39.                   '|#PCDATA',
  40.   'DIR'        => 'LI',
  41.   'DL'         => 'DD|DT',
  42.   'DT'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  43.   'EM'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  44.   'FORM'       => 'ADDRESS|HR|ISINDEX|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR'.
  45.                   '|OL|UL|P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A'.
  46.                   '|#PCDATA|H6|H5|H4|H3|H2|H1|INPUT|SELECT|TEXTAREA',
  47.   'H1'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  48.   'H2'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  49.   'H3'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  50.   'H4'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  51.   'H5'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  52.   'H6'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  53.   'HEAD'       => 'TITLE|ISINDEX|BASE|NEXTID|META|LINK',
  54.   'HTML'       => 'HEAD|BODY|PLAINTEXT',
  55.   'I'          => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  56.   'KBD'        => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  57.   'LI'         => 'ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR|OL|UL'.
  58.                   '|P|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A'.
  59.                   '|#PCDATA',
  60.   'LISTING'    => '%literal',
  61.   'MENU'       => 'LI',
  62.   'OL'         => 'LI',
  63.   'OPTION'     => '#PCDATA',
  64.   'P'          => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  65.   'PLAINTEXT'  => '%literal',
  66.   'PRE'        => 'CITE|VAR|KBD|SAMP|CODE|STRONG|EM|I|B|TT|BR|HR|A|#PCDATA',
  67.   'SAMP'       => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  68.   'SELECT'     => 'OPTION',
  69.   'STRONG'     => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  70.   'TEXTAREA'   => '#PCDATA',
  71.   'TITLE'      => '#PCDATA',
  72.   'TT'         => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  73.   'UL'         => 'LI',
  74.   'VAR'        => 'I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|BR|IMG|A|#PCDATA',
  75.   'XMP'        => '%literal',
  76. );
  77. %excludedElems = (
  78.   'A'        => 'A',
  79.   'DIR'      => 'P|UL|OL|DIR|MENU|DL|PRE|XMP|LISTING|BLOCKQUOTE|FORM|ISINDEX',
  80.   'FORM'     => 'FORM',
  81.   'MENU'     => 'P|UL|OL|DIR|MENU|DL|PRE|XMP|LISTING|BLOCKQUOTE|FORM|ISINDEX',
  82.   'SELECT'   => 'INPUT|SELECT|TEXTAREA',
  83.   'TEXTAREA' => 'INPUT|SELECT|TEXTAREA',
  84.   'TITLE'    => 'META|LINK',
  85. );
  86. %includedElems = (
  87.   'FORM' => 'INPUT|SELECT|TEXTAREA',
  88.   'HEAD' => 'META|LINK',
  89. );
  90. #======= ATTRIBUTES =======
  91. %tagsAttributes = (
  92.   'A' => {
  93.     'HREF'    => '%URL', # org:CDATA
  94.     'METHODS' => 'NAMES',
  95.     'NAME'    => 'CDATA',
  96.     'REL'     => '%linkType',
  97.     'REV'     => '%linkType',
  98.     'TITLE'   => 'CDATA',
  99.     'URN'     => 'CDATA',
  100.   },
  101.   'BASE' => {
  102.     'HREF' => '%URL', # org:CDATA
  103.   },
  104.   'DIR' => {
  105.     'COMPACT' => 'COMPACT',
  106.   },
  107.   'DL' => {
  108.     'COMPACT' => 'COMPACT',
  109.   },
  110.   'FORM' => {
  111.     'ACTION'  => 'CDATA',
  112.     'ENCTYPE' => '%Content-Type',
  113.     'METHOD'  => 'GET|POST',
  114.   },
  115.   'IMG' => {
  116.     'ALIGN' => 'TOP|MIDDLE|BOTTOM',
  117.     'ALT'   => 'CDATA',
  118.     'ISMAP' => 'ISMAP',
  119.     'SRC'   => '%URL', # org:CDATA
  120.   },
  121.   'INPUT' => {
  122.     'ALIGN'     => 'TOP|MIDDLE|BOTTOM',
  123.     'CHECKED'   => 'CHECKED',
  124.     'MAXLENGTH' => 'NUMBER',
  125.     'NAME'      => 'CDATA',
  126.     'SIZE'      => 'CDATA',
  127.     'SRC'       => '%URL', # org:CDATA
  128.     'TYPE'      => 'TEXT|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|IMAGE|HIDDEN',
  129.     'VALUE'     => 'CDATA',
  130.   },
  131.   'LINK' => {
  132.     'HREF'    => '%URL', # org:CDATA
  133.     'METHODS' => 'NAMES',
  134.     'REL'     => '%linkType',
  135.     'REV'     => '%linkType',
  136.     'TITLE'   => 'CDATA',
  137.     'URN'     => 'CDATA',
  138.   },
  139.   'MENU' => {
  140.     'COMPACT' => 'COMPACT',
  141.   },
  142.   'META' => {
  143.     'CONTENT'    => 'CDATA',
  144.     'HTTP-EQUIV' => 'NAME',
  145.     'NAME'       => 'NAME',
  146.   },
  147.   'NEXTID' => {
  148.     'N' => 'CDATA',
  149.   },
  150.   'OL' => {
  151.     'COMPACT' => 'COMPACT',
  152.   },
  153.   'OPTION' => {
  154.     'SELECTED' => 'SELECTED',
  155.     'VALUE'    => 'CDATA',
  156.   },
  157.   'PRE' => {
  158.     'WIDTH' => 'NUMBER',
  159.   },
  160.   'SELECT' => {
  161.     'MULTIPLE' => 'MULTIPLE',
  162.     'NAME'     => 'CDATA',
  163.     'SIZE'     => 'NUMBER',
  164.   },
  165.   'TEXTAREA' => {
  166.     'COLS' => 'NUMBER',
  167.     'NAME' => 'CDATA',
  168.     'ROWS' => 'NUMBER',
  169.   },
  170.   'UL' => {
  171.     'COMPACT' => 'COMPACT',
  172.   },
  173. );
  174. %requiredAttrs = (
  175.   'A'        => 'NAME|HREF',
  176.   'BASE'     => 'HREF',
  177.   'IMG'      => 'SRC',
  178.   'LINK'     => 'HREF',
  179.   'META'     => 'CONTENT',
  180.   'NEXTID'   => 'N',
  181.   'SELECT'   => 'NAME',
  182.   'TEXTAREA' => 'NAME&ROWS&COLS',
  183. );
  184. #======= ENTITIES =======
  185. %refEntities = (
  186.   'AElig'  => 'Æ',
  187.   'Aacute' => 'Á',
  188.   'Acirc'  => 'Â',
  189.   'Agrave' => 'À',
  190.   'Aring'  => 'Å',
  191.   'Atilde' => 'Ã',
  192.   'Auml'   => 'Ä',
  193.   'Ccedil' => 'Ç',
  194.   'ETH'    => 'Ð',
  195.   'Eacute' => 'É',
  196.   'Ecirc'  => 'Ê',
  197.   'Egrave' => 'È',
  198.   'Euml'   => 'Ë',
  199.   'Iacute' => 'Í',
  200.   'Icirc'  => 'Î',
  201.   'Igrave' => 'Ì',
  202.   'Iuml'   => 'Ï',
  203.   'Ntilde' => 'Ñ',
  204.   'Oacute' => 'Ó',
  205.   'Ocirc'  => 'Ô',
  206.   'Ograve' => 'Ò',
  207.   'Oslash' => 'Ø',
  208.   'Otilde' => 'Õ',
  209.   'Ouml'   => 'Ö',
  210.   'THORN'  => 'Þ',
  211.   'Uacute' => 'Ú',
  212.   'Ucirc'  => 'Û',
  213.   'Ugrave' => 'Ù',
  214.   'Uuml'   => 'Ü',
  215.   'Yacute' => 'Ý',
  216.   'aacute' => 'á',
  217.   'acirc'  => 'â',
  218.   'acute'  => '´',
  219.   'aelig'  => 'æ',
  220.   'agrave' => 'à',
  221.   'amp'    => '&',
  222.   'aring'  => 'å',
  223.   'atilde' => 'ã',
  224.   'auml'   => 'ä',
  225.   'brvbar' => '¦',
  226.   'ccedil' => 'ç',
  227.   'cedil'  => '¸',
  228.   'cent'   => '¢',
  229.   'copy'   => '©',
  230.   'curren' => '¤',
  231.   'deg'    => '°',
  232.   'divide' => '÷',
  233.   'eacute' => 'é',
  234.   'ecirc'  => 'ê',
  235.   'egrave' => 'è',
  236.   'eth'    => 'ð',
  237.   'euml'   => 'ë',
  238.   'frac12' => '½',
  239.   'frac14' => '¼',
  240.   'frac34' => '¾',
  241.   'gt'     => '>',
  242.   'iacute' => 'í',
  243.   'icirc'  => 'î',
  244.   'iexcl'  => '¡',
  245.   'igrave' => 'ì',
  246.   'iquest' => '¿',
  247.   'iuml'   => 'ï',
  248.   'laquo'  => '«',
  249.   'lt'     => '<',
  250.   'macr'   => '¯',
  251.   'micro'  => 'µ',
  252.   'middot' => '·',
  253.   'nbsp'   => ' ',
  254.   'not'    => '¬',
  255.   'ntilde' => 'ñ',
  256.   'oacute' => 'ó',
  257.   'ocirc'  => 'ô',
  258.   'ograve' => 'ò',
  259.   'ordf'   => 'ª',
  260.   'ordm'   => 'º',
  261.   'oslash' => 'ø',
  262.   'otilde' => 'õ',
  263.   'ouml'   => 'ö',
  264.   'para'   => '¶',
  265.   'plusmn' => '±',
  266.   'pound'  => '£',
  267.   'quot'   => '"',
  268.   'raquo'  => '»',
  269.   'reg'    => '®',
  270.   'sect'   => '§',
  271.   'shy'    => '­',
  272.   'sup1'   => '¹',
  273.   'sup2'   => '²',
  274.   'sup3'   => '³',
  275.   'szlig'  => 'ß',
  276.   'thorn'  => 'þ',
  277.   'times'  => '×',
  278.   'uacute' => 'ú',
  279.   'ucirc'  => 'û',
  280.   'ugrave' => 'ù',
  281.   'uml'    => '¨',
  282.   'uuml'   => 'ü',
  283.   'yacute' => 'ý',
  284.   'yen'    => '¥',
  285.   'yuml'   => 'ÿ',
  286. );
  287. %refParams = (
  288.   'Content-Type' => 'CDATA+',
  289.   'linkType'     => 'NAMES',
  290.   'literal'      => 'CDATA',
  291.   'URL'          => '&URL',
  292. );
  293.  
  294. 1;
  295.