# HTML4.0 Mobile

#======= ELEMENTS =======
$emptyTags = 'AREA|BR|HR|IMG|INPUT|LINK|META|PARAM';
$pairTags = 'A|ABBR|ACRONYM|ADDRESS|BDO|BLOCKQUOTE|BODY|BUTTON|CITE|CODE|DD'.
            '|DFN|DIV|DL|DT|EM|FIELDSET|FORM|H1|H2|H3|H4|H5|H6|HEAD|HTML|KBD'.
            '|LABEL|LEGEND|LI|MAP|OBJECT|OL|OPTGROUP|OPTION|P|PRE|Q|SAMP'.
            '|SELECT|SPAN|STRONG|STYLE|TEXTAREA|TITLE|UL|VAR';
$deprecatedTags = '';
$omitStartTags = '';
$omitEndTags = 'BODY|DD|DT|HEAD|LI|OPTION|P';
#$maybeEmpty = 'A|LEGEND|OBJECT|OPTION|STYLE|TEXTAREA|TITLE';
$maybeEmpty = 'OBJECT|STYLE|TEXTAREA';
%requiredTags = (
  'FIELDSET' => 'LEGEND|#000',
  'HEAD'     => 'TITLE',
  'HTML'     => 'HEAD|BODY',
);
%onceonlyTags = (
  'FIELDSET' => 'LEGEND',
  'HEAD'     => 'TITLE',
  'HTML'     => 'HEAD|BODY',
);
$sequencialTags = 'FIELDSET|HTML';
%tagsElements = (
  '#000'       => 'ADDRESS|FIELDSET|BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO'.
                  '|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|#PCDATA|HR|FORM|BLOCKQUOTE|DIV|DL|PRE'.
                  '|OL|UL|P',
  'A'          => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'ABBR'       => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'ACRONYM'    => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'ADDRESS'    => 'BDO|SPAN|Q|BR|OBJECT|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE'.
                  '|DFN|STRONG|EM|#PCDATA',
  'BDO'        => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'BLOCKQUOTE' => 'HR|FORM|BLOCKQUOTE|DIV|DL|PRE|OL|UL|P',
  'BODY'       => 'H6|H5|H4|H3|H2|H1|HR|FORM|BLOCKQUOTE|DIV|DL|PRE|OL|UL|P',
  'BUTTON'     => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'CITE'       => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'CODE'       => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'DD'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA|HR|FORM|BLOCKQUOTE|DIV|DL'.
                  '|PRE|OL|UL|P',
  'DFN'        => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'DIV'        => 'ADDRESS|BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE'.
                  '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|#PCDATA|HR|FORM'.
                  '|BLOCKQUOTE|DIV|DL|PRE|OL|UL|P',
  'DL'         => 'DD|DT',
  'DT'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'EM'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'FIELDSET'   => '#PCDATA|LEGEND|#000',
  'FORM'       => 'ADDRESS|FIELDSET|BUTTON|LABEL|TEXTAREA|SELECT|INPUT|BDO'.
                  '|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP'.
                  '|CODE|DFN|STRONG|EM|#PCDATA|HR|BLOCKQUOTE|DIV|DL|PRE|OL|UL'.
                  '|P',
  'H1'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'H2'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'H3'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'H4'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'H5'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'H6'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'HEAD'       => 'TITLE|STYLE|META|LINK',
  'HTML'       => 'HEAD|BODY',
  'KBD'        => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'LABEL'      => 'BUTTON|TEXTAREA|SELECT|INPUT|BDO|SPAN|Q|MAP|BR|OBJECT|IMG'.
                  '|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE|DFN|STRONG|EM'.
                  '|#PCDATA',
  'LEGEND'     => '#PCDATA',
  'LI'         => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA|HR|FORM|BLOCKQUOTE|DIV|DL'.
                  '|PRE|OL|UL|P',
  'MAP'        => 'AREA',
  'OBJECT'     => 'ADDRESS|BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE'.
                  '|VAR|KBD|SAMP|CODE|DFN|STRONG|EM|#PCDATA|HR|FORM'.
                  '|BLOCKQUOTE|DIV|DL|PRE|OL|UL|P|PARAM',
  'OL'         => 'LI',
  'OPTGROUP'   => 'OPTION',
  'OPTION'     => '#PCDATA',
  'P'          => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'PRE'        => 'BDO|SPAN|Q|BR|A|ACRONYM|ABBR|CITE|VAR|KBD|SAMP|CODE|DFN'.
                  '|STRONG|EM|#PCDATA',
  'Q'          => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'SAMP'       => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'SELECT'     => 'OPTION|OPTGROUP',
  'SPAN'       => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'STRONG'     => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
  'STYLE'      => '%StyleSheet',
  'TEXTAREA'   => '#PCDATA',
  'TITLE'      => '#PCDATA',
  'UL'         => 'LI',
  'VAR'        => 'BDO|SPAN|Q|MAP|BR|OBJECT|IMG|A|ACRONYM|ABBR|CITE|VAR|KBD'.
                  '|SAMP|CODE|DFN|STRONG|EM|#PCDATA',
);
%excludedElems = (
  'A'        => 'A',
  'ADDRESS'  => 'IMG|MAP',
  'BUTTON'   => 'A|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|FORM|FIELDSET',
  'DD'       => 'ADDRESS',
  'FIELDSET' => 'FIELDSET',
  'FORM'     => 'FORM',
  'LABEL'    => 'LABEL',
  'PRE'      => 'IMG|OBJECT|MAP',
  'TITLE'    => 'STYLE|META|LINK',
);
%includedElems = (
  'HEAD' => 'STYLE|META|LINK',
);
#======= ATTRIBUTES =======
%tagsAttributes = (
  'A' => {
    'ACCESSKEY' => '%Character',
    'CHARSET'   => '%Charset',
    'CLASS'     => '%Class',
    'DIR'       => 'LTR|RTL',
    'HREF'      => '%URI',
    'HREFLANG'  => '%LanguageCode',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'NAME'      => '%Name',
    'REL'       => '%LinkTypes',
    'REV'       => '%LinkTypes',
    'TABINDEX'  => 'NUMBER',
    'TITLE'     => '%Text',
    'TYPE'      => '%ContentType',
  },
  'ABBR' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'ACRONYM' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'ADDRESS' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'AREA' => {
    'ACCESSKEY' => '%Character',
    'ALT'       => '%Text',
    'CLASS'     => '%Class',
    'COORDS'    => '%Coords',
    'DIR'       => 'LTR|RTL',
    'HREF'      => '%URI',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'NOHREF'    => 'NOHREF',
    'SHAPE'     => 'RECT|CIRCLE|POLY|DEFAULT',
    'TABINDEX'  => 'NUMBER',
    'TITLE'     => '%Text',
  },
  'BDO' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'BLOCKQUOTE' => {
    'CITE'  => '%URI',
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'BODY' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'BR' => {
    'CLASS' => '%Class',
    'ID'    => 'ID',
    'TITLE' => '%Text',
  },
  'BUTTON' => {
    'ACCESSKEY' => '%Character',
    'CLASS'     => '%Class',
    'DIR'       => 'LTR|RTL',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'NAME'      => '%Name',
    'TABINDEX'  => 'NUMBER',
    'TITLE'     => '%Text',
    'TYPE'      => 'SUBMIT|RESET',
    'VALUE'     => 'CDATA',
  },
  'CITE' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'CODE' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'DD' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'DFN' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'DIV' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'DL' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'DT' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'EM' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'FIELDSET' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'FORM' => {
    'ACCEPT-CHARSET' => '%Charsets',
    'ACTION'         => '%URI',
    'CLASS'          => '%Class',
    'DIR'            => 'LTR|RTL',
    'ENCTYPE'        => '%ContentType',
    'ID'             => 'ID',
    'LANG'           => '%LanguageCode',
    'METHOD'         => 'GET|POST',
    'TITLE'          => '%Text',
  },
  'H1' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'H2' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'H3' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'H4' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'H5' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'H6' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'HEAD' => {
    'DIR'     => 'LTR|RTL',
    'LANG'    => '%LanguageCode',
    'PROFILE' => '%URIs',
  },
  'HR' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'HTML' => {
    'DIR'  => 'LTR|RTL',
    'LANG' => '%LanguageCode',
  },
  'IMG' => {
    'ALT'      => '%Text',
    'CLASS'    => '%Class',
    'DIR'      => 'LTR|RTL',
    'ID'       => 'ID',
    'LANG'     => '%LanguageCode',
    'LONGDESC' => '%URI',
    'SRC'      => '%URI',
    'TITLE'    => '%Text',
    'USEMAP'   => '%URI',
  },
  'INPUT' => {
    'ACCESSKEY' => '%Character',
    'CHECKED'   => 'CHECKED',
    'CLASS'     => '%Class',
    'DIR'       => 'LTR|RTL',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'MAXLENGTH' => 'NUMBER',
    'NAME'      => '%Name',
    'SIZE'      => 'CDATA',
    'TABINDEX'  => 'NUMBER',
    'TITLE'     => '%Text',
    'TYPE'      => 'TEXT|PASSWORD|CHECKBOX|RADIO|SUBMIT|RESET|HIDDEN',
    'VALUE'     => 'CDATA',
  },
  'KBD' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'LABEL' => {
    'ACCESSKEY' => '%Character',
    'CLASS'     => '%Class',
    'DIR'       => 'LTR|RTL',
    'FOR'       => 'IDREF',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'TITLE'     => '%Text',
  },
  'LEGEND' => {
    'ACCESSKEY' => '%Character',
    'CLASS'     => '%Class',
    'DIR'       => 'LTR|RTL',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'TITLE'     => '%Text',
  },
  'LI' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'LINK' => {
    'CHARSET'  => '%Charset',
    'CLASS'    => '%Class',
    'DIR'      => 'LTR|RTL',
    'HREF'     => '%URI',
    'HREFLANG' => '%LanguageCode',
    'ID'       => 'ID',
    'LANG'     => '%LanguageCode',
    'MEDIA'    => '%MediaDesc',
    'REL'      => '%LinkTypes',
    'REV'      => '%LinkTypes',
    'TITLE'    => '%Text',
    'TYPE'     => '%ContentType',
  },
  'MAP' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'NAME'  => '%Name',
    'TITLE' => '%Text',
  },
  'META' => {
    'CONTENT'    => 'CDATA',
    'DIR'        => 'LTR|RTL',
    'HTTP-EQUIV' => 'NAME',
    'LANG'       => '%LanguageCode',
    'NAME'       => 'NAME',
    'SCHEME'     => 'CDATA',
  },
  'OBJECT' => {
    'CLASS'    => '%Class',
    'CLASSID'  => '%URI',
    'CODEBASE' => '%URI',
    'CODETYPE' => '%ContentType',
    'DATA'     => '%URI',
    'DECLARE'  => 'DECLARE',
    'DIR'      => 'LTR|RTL',
    'ID'       => 'ID',
    'LANG'     => '%LanguageCode',
    'NAME'     => '%Name',
    'STANDBY'  => '%Text',
    'TABINDEX' => 'NUMBER',
    'TITLE'    => '%Text',
    'TYPE'     => '%ContentType',
    'USEMAP'   => '%URI',
  },
  'OL' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'OPTGROUP' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LABEL' => '%Text',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'OPTION' => {
    'CLASS'    => '%Class',
    'DIR'      => 'LTR|RTL',
    'ID'       => 'ID',
    'LABEL'    => '%Text',
    'LANG'     => '%LanguageCode',
    'SELECTED' => 'SELECTED',
    'TITLE'    => '%Text',
    'VALUE'    => 'CDATA',
  },
  'P' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'PARAM' => {
    'ID'        => 'ID',
    'NAME'      => '%Name',
    'TYPE'      => '%ContentType',
    'VALUE'     => 'CDATA',
    'VALUETYPE' => 'DATA|REF|OBJECT',
  },
  'PRE' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'Q' => {
    'CITE'  => '%URI',
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'SAMP' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'SELECT' => {
    'CLASS'    => '%Class',
    'DIR'      => 'LTR|RTL',
    'ID'       => 'ID',
    'LANG'     => '%LanguageCode',
    'MULTIPLE' => 'MULTIPLE',
    'NAME'     => '%Name',
    'SIZE'     => 'NUMBER',
    'TABINDEX' => 'NUMBER',
    'TITLE'    => '%Text',
  },
  'SPAN' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'STRONG' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'STYLE' => {
    'DIR'   => 'LTR|RTL',
    'LANG'  => '%LanguageCode',
    'MEDIA' => '%MediaDesc',
    'TITLE' => '%Text',
    'TYPE'  => '%ContentType',
  },
  'TEXTAREA' => {
    'ACCESSKEY' => '%Character',
    'CLASS'     => '%Class',
    'COLS'      => 'NUMBER',
    'DIR'       => 'LTR|RTL',
    'ID'        => 'ID',
    'LANG'      => '%LanguageCode',
    'NAME'      => '%Name',
    'ROWS'      => 'NUMBER',
    'TABINDEX'  => 'NUMBER',
    'TITLE'     => '%Text',
  },
  'TITLE' => {
    'DIR'  => 'LTR|RTL',
    'LANG' => '%LanguageCode',
  },
  'UL' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
  'VAR' => {
    'CLASS' => '%Class',
    'DIR'   => 'LTR|RTL',
    'ID'    => 'ID',
    'LANG'  => '%LanguageCode',
    'TITLE' => '%Text',
  },
);
%requiredAttrs = (
  'AREA'     => 'ALT',
  'BDO'      => 'DIR',
  'FORM'     => 'ACTION',
  'IMG'      => 'SRC&ALT',
  'MAP'      => 'NAME',
  'META'     => 'CONTENT',
  'OPTGROUP' => 'LABEL',
  'PARAM'    => 'NAME',
  'STYLE'    => 'TYPE',
  'TEXTAREA' => 'ROWS&COLS',
);
#======= ENTITIES =======
%refEntities = (
  'AElig'    => '&#198;',
  'Aacute'   => '&#193;',
  'Acirc'    => '&#194;',
  'Agrave'   => '&#192;',
  'Alpha'    => '&#913;',
  'Aring'    => '&#197;',
  'Atilde'   => '&#195;',
  'Auml'     => '&#196;',
  'Beta'     => '&#914;',
  'Ccedil'   => '&#199;',
  'Chi'      => '&#935;',
  'Dagger'   => '&#8225;',
  'Delta'    => '&#916;',
  'ETH'      => '&#208;',
  'Eacute'   => '&#201;',
  'Ecirc'    => '&#202;',
  'Egrave'   => '&#200;',
  'Epsilon'  => '&#917;',
  'Eta'      => '&#919;',
  'Euml'     => '&#203;',
  'Gamma'    => '&#915;',
  'Iacute'   => '&#205;',
  'Icirc'    => '&#206;',
  'Igrave'   => '&#204;',
  'Iota'     => '&#921;',
  'Iuml'     => '&#207;',
  'Kappa'    => '&#922;',
  'Lambda'   => '&#923;',
  'Mu'       => '&#924;',
  'Ntilde'   => '&#209;',
  'Nu'       => '&#925;',
  'OElig'    => '&#338;',
  'Oacute'   => '&#211;',
  'Ocirc'    => '&#212;',
  'Ograve'   => '&#210;',
  'Omega'    => '&#937;',
  'Omicron'  => '&#927;',
  'Oslash'   => '&#216;',
  'Otilde'   => '&#213;',
  'Ouml'     => '&#214;',
  'Phi'      => '&#934;',
  'Pi'       => '&#928;',
  'Prime'    => '&#8243;',
  'Psi'      => '&#936;',
  'Rho'      => '&#929;',
  'Scaron'   => '&#352;',
  'Sigma'    => '&#931;',
  'THORN'    => '&#222;',
  'Tau'      => '&#932;',
  'Theta'    => '&#920;',
  'Uacute'   => '&#218;',
  'Ucirc'    => '&#219;',
  'Ugrave'   => '&#217;',
  'Upsilon'  => '&#933;',
  'Uuml'     => '&#220;',
  'Xi'       => '&#926;',
  'Yacute'   => '&#221;',
  'Yuml'     => '&#376;',
  'Zeta'     => '&#918;',
  'aacute'   => '&#225;',
  'acirc'    => '&#226;',
  'acute'    => '&#180;',
  'aelig'    => '&#230;',
  'agrave'   => '&#224;',
  'alefsym'  => '&#8501;',
  'alpha'    => '&#945;',
  'amp'      => '&#38;',
  'and'      => '&#8743;',
  'ang'      => '&#8736;',
  'aring'    => '&#229;',
  'asymp'    => '&#8776;',
  'atilde'   => '&#227;',
  'auml'     => '&#228;',
  'bdquo'    => '&#8222;',
  'beta'     => '&#946;',
  'brvbar'   => '&#166;',
  'bull'     => '&#8226;',
  'cap'      => '&#8745;',
  'ccedil'   => '&#231;',
  'cedil'    => '&#184;',
  'cent'     => '&#162;',
  'chi'      => '&#967;',
  'circ'     => '&#710;',
  'clubs'    => '&#9827;',
  'cong'     => '&#8773;',
  'copy'     => '&#169;',
  'crarr'    => '&#8629;',
  'cup'      => '&#8746;',
  'curren'   => '&#164;',
  'dArr'     => '&#8659;',
  'dagger'   => '&#8224;',
  'darr'     => '&#8595;',
  'deg'      => '&#176;',
  'delta'    => '&#948;',
  'diams'    => '&#9830;',
  'divide'   => '&#247;',
  'eacute'   => '&#233;',
  'ecirc'    => '&#234;',
  'egrave'   => '&#232;',
  'empty'    => '&#8709;',
  'emsp'     => '&#8195;',
  'ensp'     => '&#8194;',
  'epsilon'  => '&#949;',
  'equiv'    => '&#8801;',
  'eta'      => '&#951;',
  'eth'      => '&#240;',
  'euml'     => '&#235;',
  'euro'     => '&#8364;',
  'exist'    => '&#8707;',
  'fnof'     => '&#402;',
  'forall'   => '&#8704;',
  'frac12'   => '&#189;',
  'frac14'   => '&#188;',
  'frac34'   => '&#190;',
  'frasl'    => '&#8260;',
  'gamma'    => '&#947;',
  'ge'       => '&#8805;',
  'gt'       => '&#62;',
  'hArr'     => '&#8660;',
  'harr'     => '&#8596;',
  'hearts'   => '&#9829;',
  'hellip'   => '&#8230;',
  'iacute'   => '&#237;',
  'icirc'    => '&#238;',
  'iexcl'    => '&#161;',
  'igrave'   => '&#236;',
  'image'    => '&#8465;',
  'infin'    => '&#8734;',
  'int'      => '&#8747;',
  'iota'     => '&#953;',
  'iquest'   => '&#191;',
  'isin'     => '&#8712;',
  'iuml'     => '&#239;',
  'kappa'    => '&#954;',
  'lArr'     => '&#8656;',
  'lambda'   => '&#955;',
  'lang'     => '&#9001;',
  'laquo'    => '&#171;',
  'larr'     => '&#8592;',
  'lceil'    => '&#8968;',
  'ldquo'    => '&#8220;',
  'le'       => '&#8804;',
  'lfloor'   => '&#8970;',
  'lowast'   => '&#8727;',
  'loz'      => '&#9674;',
  'lrm'      => '&#8206;',
  'lsaquo'   => '&#8249;',
  'lsquo'    => '&#8216;',
  'lt'       => '&#60;',
  'macr'     => '&#175;',
  'mdash'    => '&#8212;',
  'micro'    => '&#181;',
  'middot'   => '&#183;',
  'minus'    => '&#8722;',
  'mu'       => '&#956;',
  'nabla'    => '&#8711;',
  'nbsp'     => '&#160;',
  'ndash'    => '&#8211;',
  'ne'       => '&#8800;',
  'ni'       => '&#8715;',
  'nontab'   => ' ',
  'not'      => '&#172;',
  'notin'    => '&#8713;',
  'nsub'     => '&#8836;',
  'ntilde'   => '&#241;',
  'nu'       => '&#957;',
  'oacute'   => '&#243;',
  'ocirc'    => '&#244;',
  'oelig'    => '&#339;',
  'ograve'   => '&#242;',
  'oline'    => '&#8254;',
  'omega'    => '&#969;',
  'omicron'  => '&#959;',
  'oplus'    => '&#8853;',
  'or'       => '&#8744;',
  'ordf'     => '&#170;',
  'ordm'     => '&#186;',
  'oslash'   => '&#248;',
  'otilde'   => '&#245;',
  'otimes'   => '&#8855;',
  'ouml'     => '&#246;',
  'para'     => '&#182;',
  'part'     => '&#8706;',
  'permil'   => '&#8240;',
  'perp'     => '&#8869;',
  'phi'      => '&#966;',
  'pi'       => '&#960;',
  'piv'      => '&#982;',
  'plusmn'   => '&#177;',
  'pound'    => '&#163;',
  'prime'    => '&#8242;',
  'prod'     => '&#8719;',
  'prop'     => '&#8733;',
  'psi'      => '&#968;',
  'quot'     => '&#34;',
  'rArr'     => '&#8658;',
  'radic'    => '&#8730;',
  'rang'     => '&#9002;',
  'raquo'    => '&#187;',
  'rarr'     => '&#8594;',
  'rceil'    => '&#8969;',
  'rdquo'    => '&#8221;',
  'real'     => '&#8476;',
  'reg'      => '&#174;',
  'rfloor'   => '&#8971;',
  'rho'      => '&#961;',
  'rlm'      => '&#8207;',
  'rsaquo'   => '&#8250;',
  'rsquo'    => '&#8217;',
  'sbquo'    => '&#8218;',
  'scaron'   => '&#353;',
  'sdot'     => '&#8901;',
  'sect'     => '&#167;',
  'shy'      => '&#173;',
  'sigma'    => '&#963;',
  'sigmaf'   => '&#962;',
  'sim'      => '&#8764;',
  'spades'   => '&#9824;',
  'sub'      => '&#8834;',
  'sube'     => '&#8838;',
  'sum'      => '&#8721;',
  'sup'      => '&#8835;',
  'sup1'     => '&#185;',
  'sup2'     => '&#178;',
  'sup3'     => '&#179;',
  'supe'     => '&#8839;',
  'szlig'    => '&#223;',
  'tau'      => '&#964;',
  'there4'   => '&#8756;',
  'theta'    => '&#952;',
  'thetasym' => '&#977;',
  'thinsp'   => '&#8201;',
  'thorn'    => '&#254;',
  'tilde'    => '&#732;',
  'times'    => '&#215;',
  'trade'    => '&#8482;',
  'uArr'     => '&#8657;',
  'uacute'   => '&#250;',
  'uarr'     => '&#8593;',
  'ucirc'    => '&#251;',
  'ugrave'   => '&#249;',
  'uml'      => '&#168;',
  'upsih'    => '&#978;',
  'upsilon'  => '&#965;',
  'uuml'     => '&#252;',
  'weierp'   => '&#8472;',
  'xi'       => '&#958;',
  'yacute'   => '&#253;',
  'yen'      => '&#165;',
  'yuml'     => '&#255;',
  'zeta'     => '&#950;',
  'zwj'      => '&#8205;',
  'zwnj'     => '&#8204;',
);
%refParams = (
  'Character'    => '[\x20-\x7E]',
  'Charset'      => 'CDATA+',
  'Charsets'     => 'CDATA+',
  'Class'        => 'CDATA+',
  'ContentType'  => 'CDATA+',
  'Coords'       => '(?:\d+(?:\s*,\s*|\s+))+\d+',
  'LanguageCode' => '(?i)[A-Z]{1,8}(?:-[A-Z]{1,8})*',
  'LinkTypes'    => 'CDATA+',
  'MediaDesc'    => 'CDATA+',
  'Name'         => 'CDATA+',
  'StyleSheet'   => 'CDATA',
  'Text'         => 'CDATA',
  'URI'          => '&URL',
  'URIs'         => '&URLs',
);

1;
