some of question is if
xslt processor (i use xalan) build full tree of data before start
transform ?
Depends on the processor and how you've configured it.
If you're reading from SAX, Xalan normally does build a full DTM model of
the source document immediately. It can be told to build that model
incrementally, as the stylesheet/xpath actually calls for nodes; see
Xalan's documentation for a discussion of the trade-offs in that approach.
If you're reading from DOM, Xalan incrementally builds a DTM "proxy" to
access your DOM. This is lighter-weight than a complete DTM would be. It
still doesn't run as quickly as we'd like and burns more memory than we'd
like, and we're working on improvements to that section of the processor.
See also archives of the Xalan mailing list, searching for the key words
"streaming", "pruning", and "filtering", to see past design discussion of
what we're doing now and some of what we're investigating as future
refinements to the model.
Summary: If you already have a DOM in memory, use a DOMSource to pass that
to Xalan and let us Do The Right Thing. If you have some other type of
model in memory, your best bet is currently to serialize it to SAX and
hand us a SAXSource. If you don't already have a model in memory, your
best bet is to obtain/generate a SAX stream, wrap that in a SAXSource, and
let us read that.
______________________________________
Joe Kesselman / IBM Research
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list