m_docIsEmpty = false;
    public void startElement(        String namespaceURI,        String localName,        String name,        Attributes atts)        throws org.xml.sax.SAXException    {        if (m_inEntityRef)            return;        if (m_needToCallStartDocument)        {            startDocumentInternal();            m_needToCallStartDocument = false;        }        else if (m_cdataTagOpen)            closeCDATA();        try        {            if ((true == m_needToOutputDocTypeDecl)                && (null != getDoctypeSystem()))            {                outputDocTypeDecl(name, true);            }            m_needToOutputDocTypeDecl = false;                    /* before we over-write the current elementLocalName etc.             * lets close out the old one (if we still need to)             */            if (m_elemContext.m_startTagOpen)            {                closeStartTag();                m_elemContext.m_startTagOpen = false;            }            if (namespaceURI != null)                ensurePrefixIsDeclared(namespaceURI, name);                            m_ispreserve = false;            if (shouldIndent() && m_startNewLine)            {                indent();            }            m_startNewLine = true;            final java.io.Writer writer = m_writer;            writer.write('<');            writer.write(name);        }        catch (IOException e)        {            throw new SAXException(e);        }        // process the attributes now, because after this SAX call they might be gone        if (atts != null)            addAttributes(atts);                    m_elemContext = m_elemContext.push(namespaceURI,localName,name);        m_isprevtext = false;        if (m_tracer != null)            firePseudoAttributes();    }