Just to finish the thread, heres a working example:
First off (because its shorter) the code for the transformer:
//custom xmlReader that 'fakes' sax events
XMLReader xr = new awXmlReader();
//transformer than can take the sax events
SAXTransformerFactory stf =
(SAXTransformerFactory)TransformerFactory.newInstance();
TransformerHandler th = stf.newTransformerHandler(new StreamSource(xsl));
//kick off the transform using a dummy string
th.setResult(new StreamResult(System.out));
xr.setContentHandler(th);
xr.parse("dummy");
Thats it, quite simple really. The xmlreader is as follows, with no-ops on all
the methods except parse(String), which reports the fictional elements.
cheers
andrew
public class awXmlReader implements XMLReader {
private ContentHandler m_contentHandler = null;
public ContentHandler getContentHandler() {
return m_contentHandler;
}
public void setContentHandler(ContentHandler handler) {
m_contentHandler = handler;
}
public void parse(InputSource i) {
}
public void parse(String s) {
try {
m_contentHandler.startDocument();
m_contentHandler.startElement("", "foo", "foo", new
AttributesImpl());
m_contentHandler.startElement("", "bar", "bar", new
AttributesImpl());
m_contentHandler.endElement("", "bar", "bar");
m_contentHandler.endElement("", "foo", "foo");
m_contentHandler.endDocument();
} catch (SAXException e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
public boolean getFeature(String s) {
return true;
}
public void setFeature(String s, boolean b) {
}
public java.lang.Object getProperty(String s) {
return new java.lang.Object();
}
public void setProperty(String s, java.lang.Object o) {
}
public void setEntityResolver(EntityResolver e) {
}
public EntityResolver getEntityResolver() {
return null;
}
public void setDTDHandler(DTDHandler d) {
}
public DTDHandler getDTDHandler() {
return null;
}
public void setErrorHandler(ErrorHandler e) {
}
public ErrorHandler getErrorHandler() {
return null;
}
}
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.470 / Virus Database: 268 - Release Date: 08/04/2003