xsl-list
[Top] [All Lists]

Re: [xsl] JAXP: SAXResult.setSystemId()

2007-12-31 03:16:00
On 31/12/2007, Florent Georges <lists(_at_)fgeorges(_dot_)org> wrote:
  Hi

  First, I think JAXP questions are on topic here (as long
as they are about its XSLT part).  Please correct me if I am
wrong.

  I thought that the SAXResult.setSystemId(String) method
set the System ID of the SAX events thrown by the transform.
But the following code displays the System ID of the
stylesheet:

    public static void main(String[] args)
            throws TransformerException
    {
        // stylesheet and input sources
        Source style_src = ...;
        Source input = ...;

        // the stylesheet
        SAXTransformerFactory factory = new TransformerFactoryImpl();
        Templates style = factory.newTemplates(style_src);

        // the SAX handler
        ContentHandler handler = new DefaultHandler() {
            public void setDocumentLocator(Locator loc) {
                System.err.println(loc.getSystemId());
            }
        };

        // the result, encapsulating the handler
        SAXResult result = new SAXResult();
        result.setHandler(handler);
        result.setSystemId("http://sample.com/system-id";);

        // the transform
        style.newTransformer().transform(input, result);
    }

  Tested with Saxon 9.

  Did I mix up something?

Maybe...

Normally with a SAXTransformerFactory you set the result using

handler.setResult(...)

and start the transform by call parse on the XMLReader eg:

xmlReader.setContentHander(...)
xmlReader.parse(...)

...but you've used the "standard" way for a normal TransformerFactory
- I'm not sure the handler gets the events that way.

cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>