Martin --

1)  Use setAttributeNS to set your attributes.
2)  I don't see where you've added the version attribute.  Be sure that
when you add it, it's in the default, not the XSLT, namespace:

  tempElement.setAttributeNS(null, "version", "1.0");

Gary

Martin Sparenberg wrote:
> 
> On Thu, 12 Jul 2001, [EMAIL PROTECTED] wrote:
> > >"DOM006 Hierarchy request error"
> >
> > That means you're trying to insert a node someplace that the DOM spec says
> > it doesn't belong -- eg, trying to insert a second root element, or trying
> > to make an element the child of a text node. Check and fix your application
> > code.
> >
> > >Xalan-FAQ where I found a sentence saying not to use
> > >"DOMImplementation.createDocument()"
> >
> > Uhm... Could you tell me where that statement appears? Either you misread
> > it and missed some contextual information, or it's misphrased...
> 
> http://xml.apache.org/xalan-j/faq.html#faq-7
> 
> Maybe I really misread it. I tried it again with
> "DOMImplementation.createDocument()" and then added the children not to the
> document itself but to an element I got with "Document.getDocumentElement()".
> But the effect is that I get en error, saying the attribute "version" of the
> element "stylesheet" would not be allowed. After it, he complains about the
> absence of the "version"-attribute. Do I have to tell him something about the
> xsl-Syntax (like naming a dtd) or can I do something for not needing to name
> such a document-definition?
> 
> My code looks now like:
>   private static final String NAMESPACE =
>       "http://www.w3.org/1999/XSL/Transform";;
>   ...
>   DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
>   dFactory.setNamespaceAware( true );
>   DocumentBuilder dBuilder =
>   dFactory.newDocumentBuilder();
>   DOMImplementation domImpl = dBuilder.getDOMImplementation();
>   xslDoc = domImpl.createDocument( NAMESPACE, "xsl:stylesheet", null );
>   tempElement = xslDoc.getDocumentElement();
>   tempElement.setAttribute( "xmlns:xsl",
>       "http://www.w3.org/1999/XSL/Transform"; );
> I then generate a subtree and apends it to tempElement. Then
>   DOMSource xslDomSource = new DOMSource( xslDoc );
>   Transformer transformer = tFactory.newTransformer(xslDomSource);
> 
> => Line 0; Column 0; Exception in thread "main"
> javax.xml.transform.TransformerConfigurationException: "version" attribute is
> not allowed on the xsl:stylesheet element!

Reply via email to