code: public static boolean isPubid(int ch)
     {
        return 0x09 == ch
           || 0x0a == ch // LF
           || 0x0d == ch // CR
           || ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || ('0' <= ch && ch <= '9') || '-' == ch || '\'' == ch
           || '(' == ch || ')' == ch || '+' == ch || ',' == ch || '.' == ch || '/' == ch || ':' == ch || '=' == ch
           || '?' == ch || ';' == ch || '!' == ch || '*' == ch || '#' == ch || '$' == ch || '@' == ch || '_' == ch
           || '%' == ch;
     }
docs: Returns true if the specified character is a valid Pubid character as defined by production
  [13] in the XML 1.0 specification. <b>PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] |
  [-'()+,./:=?;!*#@$_%]</b>
  
  @param ch
  The character to check.