Is that because you're looking at the doc for Attributes, rather than
AttributesImpl?

See the documentation for AttributesImpl:

   http://www.megginson.com/SAX/Java/javadoc/index.html

I'm pretty sure this is what Xalan-J uses.

Dave




                                                                                       
                           
                    Paul Winder                                                        
                           
                    <pwinder@arbo        To:     [EMAIL PROTECTED], 
[EMAIL PROTECTED]               
                    rtext.com>           cc:     [EMAIL PROTECTED], 
[EMAIL PROTECTED],                 
                                         [EMAIL PROTECTED], 
[EMAIL PROTECTED], (bcc: David N            
                    06/20/2001           Bertoni/CAM/Lotus)                            
                           
                    03:32 PM             Subject:     Re: Using the id() function with 
SAX input                  
                    Please                                                             
                           
                    respond to                                                         
                           
                    xalan-dev                                                          
                           
                                                                                       
                           
                                                                                       
                           



I would be happy to do something like that (although it would be much nicer

to do something global
up front).

However, I'm using the Java version, and I find nothing in the API
corresponding to attrs.addAttribute().  I see lots of methods for _getting_

type information, but none for setting it.

Paul

At 03:01 PM 6/20/01 -0400, [EMAIL PROTECTED] wrote:

>I'm not sure I understand the problem.  If you're pushing SAX events to a
>ContentHandler, then you must be constructing the attributes, so can't you
>just create an attribute with the proper type?  Then, any ContentHandler
>implementation that understands ID attributes will detect that the
>attribute is an ID and do the right thing.
>
>I don't know what implementation of the SAX Attributes class you are
using,
>but in Xalan-C++, this would look something like this, assuming that my
>string literals are proper Unicode:
>
>void
>foo(ContentHandler*   handler)
>{
>      XalanAttributesImpl   attrs;
>
>      attrs.addAttribute("foo", "ID", "val");
>
>      handler->startElement("", "foo", "foo", attrs);
>      handler->endElement("", "foo", "foo");
>}
>
>Or am I misunderstanding what you're trying to do?
>
>Dave
>
>
>
>
>
>                     Paul
> Winder
>
>                     <pwinder@arbo        To:     [EMAIL PROTECTED]

 >
>                     rtext.com>           cc:
> [EMAIL PROTECTED], [EMAIL PROTECTED],
>                                          [EMAIL PROTECTED], (bcc:
> David N Bertoni/CAM/Lotus)
>                     06/20/2001           Subject:     Re: Using the id()
> function with SAX input
>                     01:35
> PM
>
>                     Please
 >
>                     respond
> to
>
>                     xalan-dev
 >
>
>
>
>
>
>
>
>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
> >






Reply via email to