code: void pushSpaceHandling(Attributes attrs)
      throws org.xml.sax.SAXParseException
    {    
      String value = attrs.getValue("xml:space");
      if(null == value)
      {
        m_spacePreserveStack.push(m_spacePreserveStack.peekOrFalse());
      }
      else if(value.equals("preserve"))
      {
        m_spacePreserveStack.push(true);
      }
      else if(value.equals("default"))
      {
        m_spacePreserveStack.push(false);
      }
      else
      {
        SAXSourceLocator locator = getLocator();
        ErrorListener handler = m_stylesheetProcessor.getErrorListener();
    
        try
        {
          handler.error(new TransformerException(XSLMessages.createMessage(XSLTErrorResources.ER_ILLEGAL_XMLSPACE_VALUE, null), locator)); //"Illegal value for xml:space", locator));
        }
        catch (TransformerException te)
        {
          throw new org.xml.sax.SAXParseException(te.getMessage(), locator, te);
        }
        m_spacePreserveStack.push(m_spacePreserveStack.peek());
      }
    }
docs: Push boolean value on to the spacePreserve stack depending on the value
  of xml:space=default/preserve.
  
  @param attrs list of attributes that were passed to startElement.