At 05:41 AM 8/11/2006, you wrote:
Jake,
Did you remove the LazyDOM from this release? Hopefully not :) What
code did you get rid of to use only Deferred Parsing?
Nope, didn't remove LazyDOM. And you are confusing "deferred node
expansion", which is the Xerces2 feature akin, to LazyDOM. As it
turns out, there there is a separate DOM for deferred node expansion
and there is no HTML implementation of it. It is not applicable to
usage with custom DOMs, so it is not an option. LazyDOM also seems a
bit more sophisticated than deferred node expansion, because with
LazyDOM, one can expand a node without expanding its parents. This
is not a feat that Xerces2 is capable of achieving.
As for deferred parsing, that is a feature added to XMLC-2.2 and was
originally intended to avoid generation of massive XMLC classes which
ended up failing to load in some early JVMs. Instead of building a
class that builds the DOM on the fly each time, the class is parsed
once and cached in memory. The document is cloned for each
request. Of course, when a lazyDOM document is cloned, its cloning
shouldn't take the full hit of a non-lazyDOM clone. Either way,
cloning it faster than parsing and takes advantage of the parser's
correctness in building the DOM. The manual building of the DOM
that XMLC did with Xerces1 simply doesn't fly with Xerces2. Xerces2
is much more strict and it's much simpler to let the Xerces2
DOMParser do its thing than doing it manually.
The template reloading kind of came as an added bonus and replaces
XMLC recompilation as the way to reload an XMLC class at runtime to
pick up changes to markup. The caching mechanism of Deferred Parsing
is the feature that makes me think it is a bit like your own caching
mechanism. I'll comment a little more about this in reply to your other email.
Jake
Chris
Jacob Kjome wrote:
It took a while, but I have committed initial support for Xerces2,
and xmlcommons-resolver, and NekoHTML to CVS HEAD. BTW, much of
what I had to do was get Xerces2 and xmlcommons-resolver in working
order for XMLC's use. I had to request some changes to Xerces2,
which were included in the 2.8.0 release (just some method
visibility). I actually submitted significant changes to
xmlcommons-resolver to get it into working order. The changes were
committed, but not yet released. I hope it will be released with
the next release of Xerces (I think 2.9.0). At that point, I'll
consider unwrapping the org.apache namespace from the
org.enhydra.apache namespace. Please try things out and let me
know what you think. keep in mind that this should be considered
alpha at this point. All you need to build is check out the HEAD
(note that I created an XMLC_2_2_XX_BRANCH to preserve 2.2.xx
functionality) and run "ant all-libs" to build the jars. Here's my
commit comments....
XMLC 2.3 changes
1. Move to Xerces2 and NekoHTML, dump Xerces1 and JTidy
2. Use Deferred Parsing exclusively. This gets rid of a lot of
code that we no longer have to maintain and provides one way of
doing things. Lightens up XMLC
3. DOMFactory now has getDocumentClassName(), which returns the
fully qualified class name of the document implementation being
represented by the factory. Got rid of createAccessorGenerator()
and createDocBuilderGenerator() methods, since the only ones used
now are the deferred parsing ones.
4. Using Xerces2 DOMParser to parse documents and letting it build
the DOM rather than building it manually. Must less code and less
chance of messing up correctness.
5. For now, wrapped up Xerces2 and xmlcommons Resolver into a jar
under the org.enhydra.apache namespace using JarJar. Did the same
with NekoHTML. This may change, but it's easier for now since XMLC
2.2 was modified to use Xerces under that package namespace.
TODO... clean up some of the comments, maybe dump XmlcStdFactory or
modify to be compatible with deferred parsing
Jake
--
You receive this message as a subscriber of the
<mailto:xmlc@xxxxxxxxxxxxx>xmlc@xxxxxxxxxxxxx mailing list.
To unsubscribe:
<mailto:xmlc-unsubscribe@xxxxxxxxxxxxx>mailto:xmlc-unsubscribe@xxxxxxxxxxxxx
For general help:
<mailto:sympa@xxxxxxxxxxxxx?subject=help>mailto:sympa@xxxxxxxxxxxxx?subject=help
ObjectWeb mailing lists service home page:
<http://www.objectweb.org/wws>http://www.objectweb.org/wws
--
You receive this message as a subscriber of the xmlc@xxxxxxxxxxxxx
mailing list.
To unsubscribe: mailto:xmlc-unsubscribe@xxxxxxxxxxxxx
For general help: mailto:sympa@xxxxxxxxxxxxx?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
--
You receive this message as a subscriber of the xmlc@xxxxxxxxxxxxx mailing list.
To unsubscribe: mailto:xmlc-unsubscribe@xxxxxxxxxxxxx
For general help: mailto:sympa@xxxxxxxxxxxxx?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
|
|