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

  1. # HTML2.x (i18n)
  2.  
  3. #======= ELEMENTS =======
  4. $emptyTags = 'BASE|BR|HR|IMG|INPUT|ISINDEX|LINK|META|NEXTID';
  5. $pairTags = 'A|ADDRESS|B|BDO|BLOCKQUOTE|BODY|CITE|CODE|DD|DIR|DL|DT|EM|FORM'.
  6.             '|H1|H2|H3|H4|H5|H6|HEAD|HTML|I|KBD|LI|LISTING|MENU|OL|OPTION|P'.
  7.             '|PLAINTEXT|PRE|Q|SAMP|SELECT|SPAN|STRONG|SUB|SUP|TEXTAREA|TITLE'.
  8.             '|TT|UL|VAR|XMP';
  9. $deprecatedTags = 'XMP|LISTING|PLAINTEXT';
  10. $omitStartTags = 'BODY|HEAD|HTML';
  11. $omitEndTags = 'BODY|DD|DT|HEAD|HTML|LI|OPTION|P|PLAINTEXT';
  12. #$maybeEmpty = 'A|ADDRESS|B|BLOCKQUOTE|BODY|CITE|CODE|DD|DT|EM|FORM|H1|H2|H3'.
  13. #              '|H4|H5|H6|I|KBD|LI|LISTING|OPTION|P|PLAINTEXT|PRE|Q|SAMP|SPAN'.
  14. #              '|STRONG|SUB|SUP|TEXTAREA|TITLE|TT|VAR|XMP';
  15. $maybeEmpty = 'LISTING|PLAINTEXT|PRE|TEXTAREA|XMP';
  16. %requiredTags = (
  17.   'HEAD' => 'TITLE',
  18.   'HTML' => 'HEAD|BODY',
  19. );
  20. %onceonlyTags = (
  21.   'HEAD' => 'TITLE|ISINDEX|BASE|NEXTID',
  22.   'HTML' => 'HEAD|BODY|PLAINTEXT',
  23. );
  24. $sequencialTags = 'HTML';
  25. %tagsElements = (
  26.   'A'          => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  27.                   '|BR|IMG|#PCDATA|H6|H5|H4|H3|H2|H1',
  28.   'ADDRESS'    => 'P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  29.                   '|EM|BR|IMG|A|#PCDATA',
  30.   'B'          => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  31.                   '|BR|IMG|A|#PCDATA',
  32.   'BDO'        => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  33.                   '|BR|IMG|A|#PCDATA',
  34.   'BLOCKQUOTE' => 'ADDRESS|HR|ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU'.
  35.                   '|DIR|OL|UL|P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP'.
  36.                   '|CODE|STRONG|EM|BR|IMG|A|#PCDATA|H6|H5|H4|H3|H2|H1',
  37.   'BODY'       => 'ADDRESS|HR|ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU'.
  38.                   '|DIR|OL|UL|P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP'.
  39.                   '|CODE|STRONG|EM|BR|IMG|A|#PCDATA|H6|H5|H4|H3|H2|H1',
  40.   'CITE'       => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  41.                   '|BR|IMG|A|#PCDATA',
  42.   'CODE'       => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  43.                   '|BR|IMG|A|#PCDATA',
  44.   'DD'         => 'ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR|OL|UL'.
  45.                   '|P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  46.                   '|EM|BR|IMG|A|#PCDATA',
  47.   'DIR'        => 'LI',
  48.   'DL'         => 'DD|DT',
  49.   'DT'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  50.                   '|BR|IMG|A|#PCDATA',
  51.   'EM'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  52.                   '|BR|IMG|A|#PCDATA',
  53.   'FORM'       => 'ADDRESS|HR|ISINDEX|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR'.
  54.                   '|OL|UL|P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE'.
  55.                   '|STRONG|EM|BR|IMG|A|#PCDATA|H6|H5|H4|H3|H2|H1|INPUT|SELECT'.
  56.                   '|TEXTAREA',
  57.   'H1'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  58.                   '|BR|IMG|A|#PCDATA',
  59.   'H2'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  60.                   '|BR|IMG|A|#PCDATA',
  61.   'H3'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  62.                   '|BR|IMG|A|#PCDATA',
  63.   'H4'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  64.                   '|BR|IMG|A|#PCDATA',
  65.   'H5'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  66.                   '|BR|IMG|A|#PCDATA',
  67.   'H6'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  68.                   '|BR|IMG|A|#PCDATA',
  69.   'HEAD'       => 'TITLE|ISINDEX|BASE|NEXTID|META|LINK',
  70.   'HTML'       => 'HEAD|BODY|PLAINTEXT',
  71.   'I'          => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  72.                   '|BR|IMG|A|#PCDATA',
  73.   'KBD'        => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  74.                   '|BR|IMG|A|#PCDATA',
  75.   'LI'         => 'ISINDEX|FORM|BLOCKQUOTE|LISTING|XMP|PRE|DL|MENU|DIR|OL|UL'.
  76.                   '|P|SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG'.
  77.                   '|EM|BR|IMG|A|#PCDATA',
  78.   'LISTING'    => '%literal',
  79.   'MENU'       => 'LI',
  80.   'OL'         => 'LI',
  81.   'OPTION'     => '#PCDATA',
  82.   'P'          => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  83.                   '|BR|IMG|A|#PCDATA',
  84.   'PLAINTEXT'  => '%literal',
  85.   'PRE'        => 'BDO|SPAN|CITE|VAR|KBD|SAMP|CODE|STRONG|EM|I|B|TT|BR|HR|A'.
  86.                   '|#PCDATA',
  87.   'Q'          => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  88.                   '|BR|IMG|A|#PCDATA',
  89.   'SAMP'       => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  90.                   '|BR|IMG|A|#PCDATA',
  91.   'SELECT'     => 'OPTION',
  92.   'SPAN'       => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  93.                   '|BR|IMG|A|#PCDATA',
  94.   'STRONG'     => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  95.                   '|BR|IMG|A|#PCDATA',
  96.   'SUB'        => '#PCDATA',
  97.   'SUP'        => '#PCDATA',
  98.   'TEXTAREA'   => '#PCDATA',
  99.   'TITLE'      => '#PCDATA',
  100.   'TT'         => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  101.                   '|BR|IMG|A|#PCDATA',
  102.   'UL'         => 'LI',
  103.   'VAR'        => 'SUB|SUP|BDO|Q|SPAN|I|B|TT|CITE|VAR|KBD|SAMP|CODE|STRONG|EM'.
  104.                   '|BR|IMG|A|#PCDATA',
  105.   'XMP'        => '%literal',
  106. );
  107. %excludedElems = (
  108.   'A'        => 'A',
  109.   'DIR'      => 'P|UL|OL|DIR|MENU|DL|PRE|XMP|LISTING|BLOCKQUOTE|FORM|ISINDEX',
  110.   'FORM'     => 'FORM',
  111.   'MENU'     => 'P|UL|OL|DIR|MENU|DL|PRE|XMP|LISTING|BLOCKQUOTE|FORM|ISINDEX',
  112.   'SELECT'   => 'INPUT|SELECT|TEXTAREA',
  113.   'TEXTAREA' => 'INPUT|SELECT|TEXTAREA',
  114.   'TITLE'    => 'META|LINK',
  115. );
  116. %includedElems = (
  117.   'FORM' => 'INPUT|SELECT|TEXTAREA',
  118.   'HEAD' => 'META|LINK',
  119. );
  120. #======= ATTRIBUTES =======
  121. %tagsAttributes = (
  122.   'A' => {
  123.     'CHARSET' => 'NAME',
  124.     'CLASS'   => 'NAMES',
  125.     'DIR'     => 'LTR|RTL',
  126.     'HREF'    => '%URL', # org:CDATA
  127.     'ID'      => 'ID',
  128.     'LANG'    => '%lang', #org:NAME
  129.     'METHODS' => 'NAMES',
  130.     'NAME'    => 'CDATA',
  131.     'REL'     => '%linkType',
  132.     'REV'     => '%linkType',
  133.     'TITLE'   => 'CDATA',
  134.     'URN'     => 'CDATA',
  135.   },
  136.   'ADDRESS' => {
  137.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  138.     'CLASS' => 'NAMES',
  139.     'DIR'   => 'LTR|RTL',
  140.     'ID'    => 'ID',
  141.     'LANG'  => '%lang', #org:NAME
  142.   },
  143.   'B' => {
  144.     'CLASS' => 'NAMES',
  145.     'DIR'   => 'LTR|RTL',
  146.     'ID'    => 'ID',
  147.     'LANG'  => '%lang', #org:NAME
  148.   },
  149.   'BASE' => {
  150.     'HREF' => '%URL', # org:CDATA
  151.   },
  152.   'BDO' => {
  153.     'CLASS' => 'NAMES',
  154.     'DIR'   => 'LTR|RTL',
  155.     'ID'    => 'ID',
  156.     'LANG'  => '%lang', #org:NAME
  157.   },
  158.   'BLOCKQUOTE' => {
  159.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  160.     'CLASS' => 'NAMES',
  161.     'DIR'   => 'LTR|RTL',
  162.     'ID'    => 'ID',
  163.     'LANG'  => '%lang', #org:NAME
  164.   },
  165.   'BODY' => {
  166.     'CLASS' => 'NAMES',
  167.     'DIR'   => 'LTR|RTL',
  168.     'ID'    => 'ID',
  169.     'LANG'  => '%lang', #org:NAME
  170.   },
  171.   'CITE' => {
  172.     'CLASS' => 'NAMES',
  173.     'DIR'   => 'LTR|RTL',
  174.     'ID'    => 'ID',
  175.     'LANG'  => '%lang', #org:NAME
  176.   },
  177.   'CODE' => {
  178.     'CLASS' => 'NAMES',
  179.     'DIR'   => 'LTR|RTL',
  180.     'ID'    => 'ID',
  181.     'LANG'  => '%lang', #org:NAME
  182.   },
  183.   'DD' => {
  184.     'CLASS' => 'NAMES',
  185.     'DIR'   => 'LTR|RTL',
  186.     'ID'    => 'ID',
  187.     'LANG'  => '%lang', #org:NAME
  188.   },
  189.   'DIR' => {
  190.     'ALIGN'   => 'LEFT|RIGHT|CENTER|JUSTIFY',
  191.     'CLASS'   => 'NAMES',
  192.     'COMPACT' => 'COMPACT',
  193.     'DIR'     => 'LTR|RTL',
  194.     'ID'      => 'ID',
  195.     'LANG'    => '%lang', #org:NAME
  196.   },
  197.   'DL' => {
  198.     'CLASS'   => 'NAMES',
  199.     'COMPACT' => 'COMPACT',
  200.     'DIR'     => 'LTR|RTL',
  201.     'ID'      => 'ID',
  202.     'LANG'    => '%lang', #org:NAME
  203.   },
  204.   'DT' => {
  205.     'CLASS' => 'NAMES',
  206.     'DIR'   => 'LTR|RTL',
  207.     'ID'    => 'ID',
  208.     'LANG'  => '%lang', #org:NAME
  209.   },
  210.   'EM' => {
  211.     'CLASS' => 'NAMES',
  212.     'DIR'   => 'LTR|RTL',
  213.     'ID'    => 'ID',
  214.     'LANG'  => '%lang', #org:NAME
  215.   },
  216.   'FORM' => {
  217.     'ACTION'  => 'CDATA',
  218.     'CLASS'   => 'NAMES',
  219.     'DIR'     => 'LTR|RTL',
  220.     'ENCTYPE' => '%Content-Type',
  221.     'ID'      => 'ID',
  222.     'LANG'    => '%lang', #org:NAME
  223.     'METHOD'  => 'GET|POST',
  224.   },
  225.   'H1' => {
  226.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  227.     'CLASS' => 'NAMES',
  228.     'DIR'   => 'LTR|RTL',
  229.     'ID'    => 'ID',
  230.     'LANG'  => '%lang', #org:NAME
  231.   },
  232.   'H2' => {
  233.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  234.     'CLASS' => 'NAMES',
  235.     'DIR'   => 'LTR|RTL',
  236.     'ID'    => 'ID',
  237.     'LANG'  => '%lang', #org:NAME
  238.   },
  239.   'H3' => {
  240.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  241.     'CLASS' => 'NAMES',
  242.     'DIR'   => 'LTR|RTL',
  243.     'ID'    => 'ID',
  244.     'LANG'  => '%lang', #org:NAME
  245.   },
  246.   'H4' => {
  247.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  248.     'CLASS' => 'NAMES',
  249.     'DIR'   => 'LTR|RTL',
  250.     'ID'    => 'ID',
  251.     'LANG'  => '%lang', #org:NAME
  252.   },
  253.   'H5' => {
  254.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  255.     'CLASS' => 'NAMES',
  256.     'DIR'   => 'LTR|RTL',
  257.     'ID'    => 'ID',
  258.     'LANG'  => '%lang', #org:NAME
  259.   },
  260.   'H6' => {
  261.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  262.     'CLASS' => 'NAMES',
  263.     'DIR'   => 'LTR|RTL',
  264.     'ID'    => 'ID',
  265.     'LANG'  => '%lang', #org:NAME
  266.   },
  267.   'HEAD' => {
  268.     'CLASS' => 'NAMES',
  269.     'DIR'   => 'LTR|RTL',
  270.     'ID'    => 'ID',
  271.     'LANG'  => '%lang', #org:NAME
  272.   },
  273.   'HR' => {
  274.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  275.   },
  276.   'HTML' => {
  277.     'CLASS' => 'NAMES',
  278.     'DIR'   => 'LTR|RTL',
  279.     'ID'    => 'ID',
  280.     'LANG'  => '%lang', #org:NAME
  281.   },
  282.   'I' => {
  283.     'CLASS' => 'NAMES',
  284.     'DIR'   => 'LTR|RTL',
  285.     'ID'    => 'ID',
  286.     'LANG'  => '%lang', #org:NAME
  287.   },
  288.   'IMG' => {
  289.     'ALIGN' => 'TOP|MIDDLE|BOTTOM',
  290.     'ALT'   => 'CDATA',
  291.     'CLASS' => 'NAMES',
  292.     'DIR'   => 'LTR|RTL',
  293.     'ID'    => 'ID',
  294.     'ISMAP' => 'ISMAP',
  295.     'LANG'  => '%lang', #org:NAME
  296.     'SRC'   => 'CDATA',
  297.   },
  298.   'INPUT' => {
  299.     'ACCEPT'         => 'CDATA',
  300.     'ACCEPT-CHARSET' => 'CDATA',
  301.     'ALIGN'          => 'TOP|MIDDLE|BOTTOM',
  302.     'CHECKED'        => 'CHECKED',
  303.     'CLASS'          => 'NAMES',
  304.     'DIR'            => 'LTR|RTL',
  305.     'ID'             => 'ID',
  306.     'LANG'           => '%lang', #org:NAME
  307.     'MAXLENGTH'      => 'NUMBER',
  308.     'NAME'           => 'CDATA',
  309.     'SIZE'           => 'CDATA',
  310.     'SRC'            => 'CDATA',
  311.     'TYPE'           => 'TEXT|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|IMAGE'.
  312.                         '|HIDDEN|FILE',
  313.     'VALUE'          => 'CDATA',
  314.   },
  315.   'ISINDEX' => {
  316.     'CLASS' => 'NAMES',
  317.     'DIR'   => 'LTR|RTL',
  318.     'ID'    => 'ID',
  319.     'LANG'  => '%lang', #org:NAME
  320.   },
  321.   'KBD' => {
  322.     'CLASS' => 'NAMES',
  323.     'DIR'   => 'LTR|RTL',
  324.     'ID'    => 'ID',
  325.     'LANG'  => '%lang', #org:NAME
  326.   },
  327.   'LI' => {
  328.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  329.     'CLASS' => 'NAMES',
  330.     'DIR'   => 'LTR|RTL',
  331.     'ID'    => 'ID',
  332.     'LANG'  => '%lang', #org:NAME
  333.   },
  334.   'LINK' => {
  335.     'CHARSET' => 'NAME',
  336.     'CLASS'   => 'NAMES',
  337.     'DIR'     => 'LTR|RTL',
  338.     'HREF'    => '%URL', # org:CDATA
  339.     'ID'      => 'ID',
  340.     'LANG'    => '%lang', #org:NAME
  341.     'METHODS' => 'NAMES',
  342.     'REL'     => '%linkType',
  343.     'REV'     => '%linkType',
  344.     'TITLE'   => 'CDATA',
  345.     'URN'     => 'CDATA',
  346.   },
  347.   'LISTING' => {
  348.     'CLASS' => 'NAMES',
  349.     'DIR'   => 'LTR|RTL',
  350.     'ID'    => 'ID',
  351.     'LANG'  => '%lang', #org:NAME
  352.   },
  353.   'MENU' => {
  354.     'ALIGN'   => 'LEFT|RIGHT|CENTER|JUSTIFY',
  355.     'CLASS'   => 'NAMES',
  356.     'COMPACT' => 'COMPACT',
  357.     'DIR'     => 'LTR|RTL',
  358.     'ID'      => 'ID',
  359.     'LANG'    => '%lang', #org:NAME
  360.   },
  361.   'META' => {
  362.     'CONTENT'    => 'CDATA',
  363.     'HTTP-EQUIV' => 'NAME',
  364.     'NAME'       => 'NAME',
  365.   },
  366.   'NEXTID' => {
  367.     'N' => 'CDATA',
  368.   },
  369.   'OL' => {
  370.     'ALIGN'   => 'LEFT|RIGHT|CENTER|JUSTIFY',
  371.     'CLASS'   => 'NAMES',
  372.     'COMPACT' => 'COMPACT',
  373.     'DIR'     => 'LTR|RTL',
  374.     'ID'      => 'ID',
  375.     'LANG'    => '%lang', #org:NAME
  376.   },
  377.   'OPTION' => {
  378.     'CLASS'    => 'NAMES',
  379.     'DIR'      => 'LTR|RTL',
  380.     'ID'       => 'ID',
  381.     'LANG'     => '%lang', #org:NAME
  382.     'SELECTED' => 'SELECTED',
  383.     'VALUE'    => 'CDATA',
  384.   },
  385.   'P' => {
  386.     'ALIGN' => 'LEFT|RIGHT|CENTER|JUSTIFY',
  387.     'CLASS' => 'NAMES',
  388.     'DIR'   => 'LTR|RTL',
  389.     'ID'    => 'ID',
  390.     'LANG'  => '%lang', #org:NAME
  391.   },
  392.   'PLAINTEXT' => {
  393.     'CLASS' => 'NAMES',
  394.     'DIR'   => 'LTR|RTL',
  395.     'ID'    => 'ID',
  396.     'LANG'  => '%lang', #org:NAME
  397.   },
  398.   'PRE' => {
  399.     'CLASS' => 'NAMES',
  400.     'DIR'   => 'LTR|RTL',
  401.     'ID'    => 'ID',
  402.     'LANG'  => '%lang', #org:NAME
  403.     'WIDTH' => 'NUMBER',
  404.   },
  405.   'Q' => {
  406.     'CLASS' => 'NAMES',
  407.     'DIR'   => 'LTR|RTL',
  408.     'ID'    => 'ID',
  409.     'LANG'  => '%lang', #org:NAME
  410.   },
  411.   'SAMP' => {
  412.     'CLASS' => 'NAMES',
  413.     'DIR'   => 'LTR|RTL',
  414.     'ID'    => 'ID',
  415.     'LANG'  => '%lang', #org:NAME
  416.   },
  417.   'SELECT' => {
  418.     'CLASS'    => 'NAMES',
  419.     'DIR'      => 'LTR|RTL',
  420.     'ID'       => 'ID',
  421.     'LANG'     => '%lang', #org:NAME
  422.     'MULTIPLE' => 'MULTIPLE',
  423.     'NAME'     => 'CDATA',
  424.     'SIZE'     => 'NUMBER',
  425.   },
  426.   'SPAN' => {
  427.     'CLASS' => 'NAMES',
  428.     'DIR'   => 'LTR|RTL',
  429.     'ID'    => 'ID',
  430.     'LANG'  => '%lang', #org:NAME
  431.   },
  432.   'STRONG' => {
  433.     'CLASS' => 'NAMES',
  434.     'DIR'   => 'LTR|RTL',
  435.     'ID'    => 'ID',
  436.     'LANG'  => '%lang', #org:NAME
  437.   },
  438.   'SUB' => {
  439.     'CLASS' => 'NAMES',
  440.     'DIR'   => 'LTR|RTL',
  441.     'ID'    => 'ID',
  442.     'LANG'  => '%lang', #org:NAME
  443.   },
  444.   'SUP' => {
  445.     'CLASS' => 'NAMES',
  446.     'DIR'   => 'LTR|RTL',
  447.     'ID'    => 'ID',
  448.     'LANG'  => '%lang', #org:NAME
  449.   },
  450.   'TEXTAREA' => {
  451.     'ACCEPT-CHARSET' => 'CDATA',
  452.     'CLASS'          => 'NAMES',
  453.     'COLS'           => 'NUMBER',
  454.     'DIR'            => 'LTR|RTL',
  455.     'ID'             => 'ID',
  456.     'LANG'           => '%lang', #org:NAME
  457.     'NAME'           => 'CDATA',
  458.     'ROWS'           => 'NUMBER',
  459.   },
  460.   'TITLE' => {
  461.     'CLASS' => 'NAMES',
  462.     'DIR'   => 'LTR|RTL',
  463.     'ID'    => 'ID',
  464.     'LANG'  => '%lang', #org:NAME
  465.   },
  466.   'TT' => {
  467.     'CLASS' => 'NAMES',
  468.     'DIR'   => 'LTR|RTL',
  469.     'ID'    => 'ID',
  470.     'LANG'  => '%lang', #org:NAME
  471.   },
  472.   'UL' => {
  473.     'ALIGN'   => 'LEFT|RIGHT|CENTER|JUSTIFY',
  474.     'CLASS'   => 'NAMES',
  475.     'COMPACT' => 'COMPACT',
  476.     'DIR'     => 'LTR|RTL',
  477.     'ID'      => 'ID',
  478.     'LANG'    => '%lang', #org:NAME
  479.   },
  480.   'VAR' => {
  481.     'CLASS' => 'NAMES',
  482.     'DIR'   => 'LTR|RTL',
  483.     'ID'    => 'ID',
  484.     'LANG'  => '%lang', #org:NAME
  485.   },
  486.   'XMP' => {
  487.     'CLASS' => 'NAMES',
  488.     'DIR'   => 'LTR|RTL',
  489.     'ID'    => 'ID',
  490.     'LANG'  => '%lang', #org:NAME
  491.   },
  492. );
  493. %requiredAttrs = (
  494.   'BASE'     => 'HREF',
  495.   'BDO'      => 'DIR',
  496.   'IMG'      => 'SRC',
  497.   'LINK'     => 'HREF',
  498.   'META'     => 'CONTENT',
  499.   'NEXTID'   => 'N',
  500.   'SELECT'   => 'NAME',
  501.   'TEXTAREA' => 'NAME&ROWS&COLS',
  502. );
  503. #======= ENTITIES =======
  504. %refEntities = (
  505.   'AElig'  => 'Æ',
  506.   'Aacute' => 'Á',
  507.   'Acirc'  => 'Â',
  508.   'Agrave' => 'À',
  509.   'Aring'  => 'Å',
  510.   'Atilde' => 'Ã',
  511.   'Auml'   => 'Ä',
  512.   'Ccedil' => 'Ç',
  513.   'ETH'    => 'Ð',
  514.   'Eacute' => 'É',
  515.   'Ecirc'  => 'Ê',
  516.   'Egrave' => 'È',
  517.   'Euml'   => 'Ë',
  518.   'Iacute' => 'Í',
  519.   'Icirc'  => 'Î',
  520.   'Igrave' => 'Ì',
  521.   'Iuml'   => 'Ï',
  522.   'Ntilde' => 'Ñ',
  523.   'Oacute' => 'Ó',
  524.   'Ocirc'  => 'Ô',
  525.   'Ograve' => 'Ò',
  526.   'Oslash' => 'Ø',
  527.   'Otilde' => 'Õ',
  528.   'Ouml'   => 'Ö',
  529.   'THORN'  => 'Þ',
  530.   'Uacute' => 'Ú',
  531.   'Ucirc'  => 'Û',
  532.   'Ugrave' => 'Ù',
  533.   'Uuml'   => 'Ü',
  534.   'Yacute' => 'Ý',
  535.   'aacute' => 'á',
  536.   'acirc'  => 'â',
  537.   'acute'  => '´',
  538.   'aelig'  => 'æ',
  539.   'agrave' => 'à',
  540.   'amp'    => '&',
  541.   'aring'  => 'å',
  542.   'atilde' => 'ã',
  543.   'auml'   => 'ä',
  544.   'brvbar' => '¦',
  545.   'ccedil' => 'ç',
  546.   'cedil'  => '¸',
  547.   'cent'   => '¢',
  548.   'copy'   => '©',
  549.   'curren' => '¤',
  550.   'deg'    => '°',
  551.   'divide' => '÷',
  552.   'eacute' => 'é',
  553.   'ecirc'  => 'ê',
  554.   'egrave' => 'è',
  555.   'eth'    => 'ð',
  556.   'euml'   => 'ë',
  557.   'frac12' => '½',
  558.   'frac14' => '¼',
  559.   'frac34' => '¾',
  560.   'gt'     => '>',
  561.   'iacute' => 'í',
  562.   'icirc'  => 'î',
  563.   'iexcl'  => '¡',
  564.   'igrave' => 'ì',
  565.   'iquest' => '¿',
  566.   'iuml'   => 'ï',
  567.   'laquo'  => '«',
  568.   'lrm'    => '‎',
  569.   'lt'     => '<',
  570.   'macr'   => '¯',
  571.   'micro'  => 'µ',
  572.   'middot' => '·',
  573.   'nbsp'   => ' ',
  574.   'not'    => '¬',
  575.   'ntilde' => 'ñ',
  576.   'oacute' => 'ó',
  577.   'ocirc'  => 'ô',
  578.   'ograve' => 'ò',
  579.   'ordf'   => 'ª',
  580.   'ordm'   => 'º',
  581.   'oslash' => 'ø',
  582.   'otilde' => 'õ',
  583.   'ouml'   => 'ö',
  584.   'para'   => '¶',
  585.   'plusmn' => '±',
  586.   'pound'  => '£',
  587.   'quot'   => '"',
  588.   'raquo'  => '»',
  589.   'reg'    => '®',
  590.   'rlm'    => '‏',
  591.   'sect'   => '§',
  592.   'shy'    => '­',
  593.   'sup1'   => '¹',
  594.   'sup2'   => '²',
  595.   'sup3'   => '³',
  596.   'szlig'  => 'ß',
  597.   'thorn'  => 'þ',
  598.   'times'  => '×',
  599.   'uacute' => 'ú',
  600.   'ucirc'  => 'û',
  601.   'ugrave' => 'ù',
  602.   'uml'    => '¨',
  603.   'uuml'   => 'ü',
  604.   'yacute' => 'ý',
  605.   'yen'    => '¥',
  606.   'yuml'   => 'ÿ',
  607.   'zwj'    => '‍',
  608.   'zwnj'   => '‌',
  609. );
  610. %refParams = (
  611.   'Content-Type' => 'CDATA+',
  612.   'linkType'     => 'NAMES',
  613.   'literal'      => 'CDATA',
  614.   'URL'          => '&URL',
  615.   'lang'         => '(?i)[A-Z]{1,8}(?:-[A-Z]{1,8})*',
  616. );
  617.  
  618. 1;
  619.