Hi!
Here a problem from someone (me) new to xalan:
I'm working on a tool that generates  an XSLT automatically and then
puts it to xalan for applying it to a (given) XML-document.
I build the DOM for the XSLT somehow like:

  DocumentBuilderFactory dFactory =
DocumentBuilderFactory.newInstance();
  DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
  Document dummyDoc = dBuilder.newDocument();
  Element root = dummyDoc.createElement( "xsl:stylesheet" );
  root.setAttribute( "version", "1.1" );
  root.setAttribute( "xmlns:xsl", 
                     "http://www.w3.org/1999/XSL/Transform"; );
  Element el1 = dummyDoc.createElement( "xsl:template" );
  el1.setAttribute( "match", "title" );
  Element el2 = dummyDoc.createElement( "hr" );
  el1.appendChild( el2 );
  root.appendChild( el1 );
  dummyDoc.appendChild( root );

(shortened example - I don't think you would like to read my whole code
here... ;-) ) 

So I get a DOM-tree of my XSLT which I can print out on screen and be
happy, so far. But when I call xalan with:

  DOMSource xslDomSource = new DOMSource( dummyDoc);
  xslDomSource.setSystemId("blah");
  TransformerFactory tFactory = TransformerFactory.newInstance();
  Transformer transformer = tFactory.newTransformer(xslDomSource);

I get at this point a "ParserConfigurationException" telling "stylesheet
requires attribute: version" and talking about some "Line 0; Column 0;".
The stylesheet-element has a version-attribute, as you can see in the
code above. The "Line 0; Column 0;" lets me guess the problem isn't the
stylesheet but the created DOM itself. 
When I use a DOM read from a file as in the DOM2DOM-example from the
xalan-samples, everything works fine - but I have to use my
in-memory-contructed XSLT.

Does anybody have an idea, what I made wrong or where the problem lies?

Thanks

Martin Sparenberg

Reply via email to