code: public void endDocument() throws SAXException
    {
      charactersFlush();
  
      m_nextsib.setElementAt(NULL,m_currentDocumentNode);
  
      if (m_firstch.elementAt(m_currentDocumentNode) == NOTPROCESSED)
        m_firstch.setElementAt(NULL,m_currentDocumentNode);
  
      if (DTM.NULL != m_previous)
        m_nextsib.setElementAt(DTM.NULL,m_previous);
  
      m_parents = null;
      m_prefixMappings = null;
      m_contextIndexes = null;
  
      m_currentDocumentNode= NULL; // no longer open
      m_endDocumentOccured = true;
    }
docs: Receive notification of the end of the document.
  
  %REVIEW% Y'know, this isn't all that much of a deoptimization. We
  might want to consider folding the start/endDocument changes back
  into the main SAX2DTM so we don't have to expose so many fields
  (even as Protected).
  
  @throws SAXException Any SAX exception, possibly
  wrapping another exception.
  @see org.xml.sax.ContentHandler#endDocument