\section{\module{xml.dom.pulldom} ---
         Support for building partial DOM trees}

\declaremodule{standard}{xml.dom.pulldom}
\modulesynopsis{Support for building partial DOM trees from SAX events.}
\moduleauthor{Paul Prescod}{paul@prescod.net}

\versionadded{2.0}

\module{xml.dom.pulldom} allows building only selected portions of a
Document Object Model representation of a document from SAX events.


\begin{classdesc}{PullDOM}{\optional{documentFactory}}
  \class{xml.sax.handler.ContentHandler} implementation that ...
\end{classdesc}


\begin{classdesc}{DOMEventStream}{stream, parser, bufsize}
  ...
\end{classdesc}


\begin{classdesc}{SAX2DOM}{\optional{documentFactory}}
  \class{xml.sax.handler.ContentHandler} implementation that ...
\end{classdesc}


\begin{funcdesc}{parse}{stream_or_string\optional{,
                        parser\optional{, bufsize}}}
  ...
\end{funcdesc}


\begin{funcdesc}{parseString}{string\optional{, parser}}
  ...
\end{funcdesc}


\begin{datadesc}{default_bufsize}
  Default value for the \var{busize} parameter to \function{parse()}.
  \versionchanged[The value of this variable can be changed before
                  calling \function{parse()} and the new value will
                  take effect]{2.1}
\end{datadesc}


\subsection{DOMEventStream Objects \label{domeventstream-objects}}


\begin{methoddesc}[DOMEventStream]{getEvent}{}
  ...
\end{methoddesc}

\begin{methoddesc}[DOMEventStream]{expandNode}{node}
  ...
\end{methoddesc}

\begin{methoddesc}[DOMEventStream]{reset}{}
  ...
\end{methoddesc}
