[jdom-interest] Element Reference from Attribute

Patrick Dowler Patrick.Dowler at nrc.ca
Tue Nov 21 14:16:32 PST 2000


On Tue, 21 Nov 2000, Louis Tribble wrote:
> James Strachan wrote:
> > However I think we can have a usable standard base tree (such as the current
> > Element / Attribute singly linked tree implementation) and carefully thought
> > through additional layers of functionality (e.g. NavElement / NavAttribute
> > doubley linked tree for doing XPath and XInclude).
> > 
> 
> If the major difference between the layers is navigation towards the
> root, and if the hit is something like 10-20%, as Jason suggests, two
> layers is not worth the complications. Additionally, since navigation 
> towards the root seems necessary to solidly support XPath, XInclude, 
> XSL, etcetera, and since I cannot see the JCP standardizing an API that 
> doesn't support these standards, omitting this support does not seem
> like an option.

In a singly-linked version, you could write a Builder that tried to share 
references to Attributes. In some cases, this could give a great advantage
in memory consumption. For example, say I have a dataset written as:

<table>
  <row>
      <cell width=20>narrow</cell>
      <cell width=40>wide</cell>
  </row>
  <row>
     <cell width=20>narrow</cell>
      <cell width=40>wide</cell>
  </row>
  ...
</rable>

You could have only two distinct attributes: Attribute("width",20) and
Attribute("width",40). Normally, a table with 10k rows has 20k attribute
objects when it could have 2. If I was wriitng a servlet that processing
query results into an HTML table, I might want to make this sort of 
optimization. If I am writing a client GUI which reads a large table and
displays it, I would do the same with 10k objects that were effectively
the same.

> Removing the need to extend for upward navigation does not mean that
> the builders and hierarchy no longer need to be fully extensible, of
> course. 

True enough. 

--

Patrick Dowler
Canadian Astronomy Data Centre




More information about the jdom-interest mailing list