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
 

Reply via email to