Hi Scott,
Sorry to pester you with this, but we have code freeze in a day or so and
this is a must fix.
Ideally I'd like to have a global solution, such as the attributeDecl()
method I mentioned below.
Failing that, there is an alternative that John Dreystadt and I discussed
that combines David Bertoni's response and yours.
Basically, after the startElement() method of the TransformerHandler is
called, we would specify the ID attribute of the element just created:
myTransformerHandler.startElement(theElement, itsAttributes);
currentElement = (Element)<<?>>.getCurrentNode();
<<?>>.SetIDAttribute(idString, currentElement);
This seems clearcut. My problem is <<?>>: this is an StreeDomBuilder, but
how do I derive this from the TransformerHandler?
Also, will I have to change this when Stree goes away?
As to the attributeDecl() concept, for that I need a SourceTreeHandler; how
do I derive that from the TransformerHandler?
It sure would be nice if the TransformerHandler, along with its many other
hats, wore that of a Declhandler...
Paul
At 11:15 AM 6/20/01 -0400, Paul Winder wrote:
>At 05:34 PM 6/19/01 -0400, [EMAIL PROTECTED] wrote:
>
>>Xalan just looks at the incoming attributes and watches for those of type
>>ID. A validating parser should set the right type if it has access to the
>>DTD. If you are manufacturing input, just set the right type when you
>>create the attribute. Xalan does very little -- nothing for you purposes,
>>with the DTDHandler.
>
>How about the attributeDecl() method in the DeclHandler interface, which
>is implemented by
>SourceTreeHandler--would that do what I need?
>
>If so, what would I specify for the first argument, ename? Would I have
>to call the function for each
>element for which I wanted the attribute recognized as an ID attribute, or
>is there a wildcard value?
>
>Paul
>
>>-scott
>>
>>
>>
>>
>>
>> Paul Winder
>> <pwinder@arbo To: [EMAIL PROTECTED]
> >
>> rtext.com> cc: (bcc: Scott Boag/CAM/Lotus)
>> Subject: Using the id()
>> function with SAX input
>> 06/19/2001
> >
>> 04:10 PM
>> Please
> >
>> respond to
>> xalan-dev
> >
>>
>>
>>
>>
>>
>>
>>Hi all,
>>
>>We are using Xalan 2.1.0 with SAX input from our SGML/XML editor. So far,
>>it's working great, but I found a possible limitation today that worries
>>me.
>>
>>In our editor we can apply links and link targets to an XML Docbook
>>document, as <link> tags with href attributes and anchor tags with id
>>attributes, respectively. We are processing the document using Norm
>>Walsh's XSLDocbook10 (version 1.4) stylesheet. Norm uses the id() function
>>
>>to locate the target node for a link.
>>
>>The problem is that the id() function relies on an ID attribute designated
>>in the DTD. Since we are using SAX input, Xalan does not have the DTD, and
>>
>>therefore does not have a designated ID attribute, so the id() function
>>always comes up with no matches.
>>
>>Is there any other way to designate the ID attribute to Xalan aside from
>>the DTD?
>>
>>Failing that, is there a way to give Xalan the DTD for the document when
>>the input is through SAX? I looked at the LexicalHandler interface, and
>>there is mention of sending the "external DTD subset" in a startEntity()
>>event using the special name "[dtd]", but it isn't clear to me if this
>>would do what I need or how to do it.
>>
>>Any help would be appreciated.
>>
>>Paul Winder
>>Arbortext
>