Lists Home |
Date Index |
On Tue, 2002-01-08 at 12:36, David Brownell wrote:
> > > In other words, what should happen is that any code that moves DOM to
> > > some other model such as SAX, XPath, or a text file should insert the
> > > necessary namespace declarations. What actually does happen though,
> > > is that such code often neglects to insert them ...
> > The only sane approach I've found is to use a visitor class to traverse
> > the document and maintain a list of namespace declarations that have
> > been made, so that when a new declaration is needed, it appears.
> Permit me to disagree that's the "only" sane approach.
> Counter-example: SAX pipeline components can monitor namespace
> usage and declarations, patching in new prefix declarations as needed.
> I happen to prefer that approach; it's generally useful, since DOM isn't
> the only framework that's "low fidelity" with respect to such information.
> Components like that (not necessarily, or IMO desirably an XMLFilter)
> are good to re-use...
That approach definitely works for SAX - where there's no "sane" way to
create a visitor class anyway - but it's liable to produce an enormous
number of namespace declarations if the originals have been stripped.
(Hardly an unusual circumstance.)
As there's no way to climb back 'up' a level and add one declaration
that can apply to all the children, it's the most reasonable, of course.
I wasn't talking about SAX so much as the DOM issues about which
Elliotte was complaining, so sanity is relative as usual. When the tree
is available, it seems smart to use it.
Ring around the content, a pocket full of brackets
Errors, errors, all fall down!