|
Subject: Re: [xsl] JAXP: SAXResult.setSystemId() From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Mon, 31 Dec 2007 10:15:29 +0000 |
On 31/12/2007, Florent Georges <lists@xxxxxxxxxxxx> 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/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] JAXP: SAXResult.setSystemId(), Florent Georges | Thread | RE: [xsl] JAXP: SAXResult.setSystem, Michael Kay |
| Re: [xsl] Exception : Could not com, Kamal Bhatt | Date | Re: [xsl] Exception : Could not com, Charanpreet Arora |
| Month |