DOM Confusion

Ray ray at guiworks.com
Thu Apr 30 16:29:53 BST 1998


> >My confusion comes from the fact that XMLNode doesn't inherit from
> >Node in the DOM spec. Thus, XMLNode doesn't have functions on
> >it like Node.getFirstChild(), or does it?
> 
> This was a typo (mine!).  XMLNode should have been defined to inherit from
> Node.  Sorry for all the confusion this has caused.

Thanks for the correction Mike. The typo also extends to the
Java language bindings on the W3C site (and also, I think both IBM 
XML4j and SAXDOM have this mistake too)

> >So why not dispense with XMLNode altogether and make the Node
> >interface implement these functions? Simply define that expandEntities
> >is "always true" for HTML documents, or some such.
> 
> Something like that is under consideration; I can't be more specific
> because the methods for doing this have not been nailed down yet.

 No problem. Too bad you guys don't have the luxury of using function
overloading. :)


> >3) extra nit: the function names are overly verbose and option #2
> >would solve it.
> Whimper .... the function names are verbose because of the astonishingly
> complex web of constraints that they must satisfy.  "Brevity" is actually
> one consideration, but less important than clarity, internal consistency,
> avoiding clashes with existing APIs in widespread use, compatibility with
> the name scoping scheme in ECMAScript .... etc.  

I realize that, and I'm glad you guys are taking that into
consideration.  One of the problems I had on my last project was that
I was using Lark, and I wanted to override the Element that Lark used
to build trees (I had my reasons for letting Lark build the tree,
relating to some third party code I had to interoperate with) with a
subclass that implemented swing.tree.TreeNode, however TreeNode
defines

public abstract Enumeration children()

but Lark's Element defines

public Vector children()

And as you know, you can't overload based on return types :(



In such cases, Java's inner classes yield a solution, which is to
use internal delegate classes

public class SuperNode implements TreeNode
{
  public Node getDOMNode() { ... }
  
  class DOMAdapter implements Node { .... }
}



-Ray

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list