16     public static function instance($prototype = null) {
 
   17         static $instance = null;
 
   18         if ($prototype !== null) {
 
   19             $instance = $prototype;
 
   20         } elseif ($instance === null || $prototype == 
true) {
 
   41         $allowed_schemes = 
$config->get(
'URI.AllowedSchemes');
 
   42         if (!
$config->get(
'URI.OverrideAllowedSchemes') &&
 
   43             !isset($allowed_schemes[$scheme])
 
   48         if (isset($this->schemes[$scheme])) 
return $this->schemes[$scheme];
 
   49         if (!isset($allowed_schemes[$scheme])) 
return;
 
   51         $class = 
'HTMLPurifier_URIScheme_' . $scheme;
 
   52         if (!class_exists($class)) 
return;
 
   53         $this->schemes[$scheme] = 
new $class();
 
   54         return $this->schemes[$scheme];
 
   62     public function register($scheme, $scheme_obj) {
 
   63         $this->schemes[$scheme] = $scheme_obj;