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 |