code: Object processNUMBER(
            StylesheetHandler handler, String uri, String name, String rawName, String value, ElemTemplateElement owner)
              throws org.xml.sax.SAXException
    {
  
  
  	if (getSupportsAVT()) 
  	{
  		Double val;
  		AVT avt = null;
  	    try
  	    {
  	      avt = new AVT(handler, uri, name, rawName, value, owner);
  	      
  	      // If this attribute used an avt, then we can't validate at this time.
  	      if (avt.isSimple()) 
  	      {
  	      	val = Double.valueOf(value);
  	      }
  	    }
  	    catch (TransformerException te)
  	    {
  	      throw new org.xml.sax.SAXException(te);
  	    } 
  	    catch (NumberFormatException nfe)
  	    {
  	     	handleError(handler,XSLTErrorResources.INVALID_NUMBER, new Object[] {name, value}, nfe);
              return null;
  	    }
  	    return avt;
  	
  	} 
  	else
      {
  	    try
  	    {
  	      return Double.valueOf(value);
  	    }
  	    catch (NumberFormatException nfe)
  	    {
              handleError(handler,XSLTErrorResources.INVALID_NUMBER, new Object[] {name, value}, nfe);
              return null;
  	    }
      }    
    }
docs: Process an attribute string of type T_NUMBER into
  a double value.
  
  @param handler non-null reference to current StylesheetHandler that is constructing the Templates.
  @param uri The Namespace URI, or an empty string.
  @param name The local name (without prefix), or empty string if not namespace processing.
  @param rawName The qualified name (with prefix).
  @param value A string that can be parsed into a double value.
  @param number
  
  @return A Double object.
  
  @throws org.xml.sax.SAXException that wraps a
  {@link javax.xml.transform.TransformerException}
  if the string does not contain a parsable number.