|
| <prev next> |
ElemApplyTemplates implementation: msg#00000java.helma.antville.user
Hi, I am developing an incremental(not in meaning as is Xalan) XSLT processor called Darwin(http://tstudva.googlepages.com/darwin-anincrementalxsltprocessor), based on Xalan trunk. I have some questions about Xalan implementation details. As I understand every template element has execute method, which is called to execute template element including children (direct). But sometimes there is a difference. 1, In ElemApplyTemplates when matching node against template there is code case DTM.TEXT_NODE: // if(rth.m_elemIsPending || // rth.m_docPending) // rth.flushPending(true); transformer .pushPairCurrentMatched( sroot .getDefaultTextRule(), child); transformer .setCurrentElement(sroot .getDefaultTextRule()); // dtm.dispatchCharactersEvents(child, // chandler, false); dtm.dispatchCharactersEvents( child, rth, false); transformer.popCurrentMatched(); continue; There is some default template, sroot.getDefaultTextRule(), but it is not executed and instead direct call to dtm.dispatchCharactersEvents(child, rth,false); is performed. Why?(optimization?) 2, In ElemApplyTemplates after template is found, is set on stacks and so on and params are processed, follows code with comment // And execute the child templates. // Loop through the children of the template, // calling execute on // each of them. for (ElemTemplateElement t = template.m_firstChild; t != null; t = t.m_nextSibling) { xctxt.setSAXLocator(t); try { transformer .pushElemTemplateElement(t); t.execute(transformer, null); } finally { transformer .popElemTemplateElement(); } } which directly executes children of matched template insted of executing template. Why? PS:Same mail I have sent on xalan dev mailing list, but I haven't received any response. Thanks for help, Xalan fan :) Tomas Studva |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Next by Date: | Re: ElemApplyTemplates implementation, David Bertoni |
|---|---|
| Next by Thread: | Re: ElemApplyTemplates implementation, David Bertoni |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |