DOM Level 2

Hi,

I am using Tamino 2.3.1.1 on Windows 2k which comes with taminoclient.jar. Use of the Java API can be limited when using from within a framework which expects DOM2 objects. I remember somebody mentioning a (unsupported) download package for DOM2 compliance. Can anybody point me to a location I can get it? Also I heard of a new upcoming Java API. Does somebody know when it will be available and what the difference is?

TIA
Guido

Thanks anyway!
I guess the difference is support of SAX API which is great.
Now I have another question.
When using SAX, is the DOM tree in memory completely prevented. When is retrieval of the result initiated:
- on TaminoClient.query() or
- on TaminoResult.getResultasEvents()
???

TIA
Guido

If you set up the API for SAX a DOM tree is NOT built. The Query result is cached as a string buffer and on request SAX events are generated from it.(as I understand it).

You can subsequently change your mind and ask for a DOM representation but the API makes a new DOM instance specially for you each time you do this.

This may seem a bit heavy rather than generating SAX events on the fly but in performance checks the overhead appeared to be minimal.

Here is an extract form the documentation

public class TaminoResult
extends java.lang.Object
implements TaminoResultInfo, java.util.Enumeration, java.io.Serializable
This delivers the complete Tamino response.

With the default construction of this result object by the TaminoClient using the DOM API, the result is represented as a DOM object (provided it can successfully be parsed). This has two uses: (a) To provide a DOM object to faciliate method calls like createElement, which are only implemented by the DOM Object. (b) For diagnostic purposes.

If the construction of this result object is by the TaminoClient using the SAX API, the result is represented by a StringBuffer object produced through a SAX parser. The user can then access the result, at either the complete result or individual document level, as a DOM object or a StringBuffer object or receive the corresponding SAX events.

The construction of the result object can be readily checked with the isDomApiGenerated() method call.

NOTE A DOM object is available however this result object is constructed. However, the DOM object returned from the SAX API construction is a new DOM object, parsed from the original result StringBuffer, every time it is requested by a getResultAsDOM() or getDocumentAsDOM(n) method call and the user must keep a pointer to a DOM object that is modified. A DOM API constructed result object contains a DOM, and a pointer to that DOM object is passed back whenever the getDocument() method is called. To emphasize this difference the getDocument() method is only available in DOM API generated result objects, otherwise it returns a null. The different methods available to each of the types of result are highlighted in the method summary.

This class represents the result of a Tamino operation

Thank you Nigel,
your explanation is very helpful and much appreciated.
As I understand it this new extended API is unsupported. I guess it doesn’t impact forward compliance since it is based on HTTP and the HTTP interface is unlikely to change. So what does it mean that it’s not officially supported?
This is important for us as we build a partner application.

Will there be another Java API with a new/redesigned interface?
When will it be available?

Thanks
Guido

There is a Tamino API for Java in the works - Perhaps someone else on this group could give the release date.

It has a different object model from that of the API inside the Tamino Client Browser. So you if you build an application with these classes. it would have to be modified to use the new API.

We originally built the Browser and its API to provide ourselves with SAX2 and DOM2 experience and verify some ideas we had aboiut XLink support - and to build applications that need SAX2 and DOM2 etc.

In particular, this API isn’t a bridge between theTamino DOM API and the new Tamino API for Java.

So I’d just use it for one off demos and experiments.

I’m busy developing an integration between our Java software and Tamino but I need either a flat text dump or a DOM level 2 tree. Whare can I find the mentioned unsupported API?

Cheers,

Hans

See the posting 14 items below this one, titled Tamino Client Browser.