Node type 10 is a DOCTYPE node, which exists in DOM but not in the XPath data model.
 
If Saxon encounters a DOCTYPE node when navigating the tree, it generally ignores it. But here, judging from the stack trace, it looks as if a DOCTYPE node has been supplied as the value of a global parameter to the stylesheet. There's nothing Saxon can do with that, so it reports an error.
 
It might be that Saxon has reached the DOCTYPE by some other route and should have ignored it. It would be useful to know what you actually supplied as the value of the parameter, and what processing you perform on that value.
 
The bit of XSLT code you showed looks irrelevant to the problem.
 
Michael Kay
http://www.saxonica.com/


From: saxon-help-admin@lists.sourceforge.net [mailto:saxon-help-admin@lists.sourceforge.net] On Behalf Of Steen, H.J.L. van der
Sent: 22 June 2005 12:59
To: saxon-help@lists.sourceforge.net
Subject: [saxon] Error: Unsupported node type in DOM

During our tests to upgrade to XSLT2.0 using Saxon8b with Tomcat 5.5.9 we keep getting the following error:

java.lang.IllegalArgumentException: Unsupported node type in DOM! 10 instance [root: null]
        net.sf.saxon.dom.NodeWrapper.makeWrapper(NodeWrapper.java:102)
        net.sf.saxon.dom.NodeWrapper.makeWrapper(NodeWrapper.java:58)
        net.sf.saxon.dom.DocumentWrapper.wrap(DocumentWrapper.java:44)
        net.sf.saxon.dom.DOMObjectModel.wrapNode(DOMObjectModel.java:293)
        net.sf.saxon.dom.DOMObjectModel.convertObjectToXPathValue(DOMObjectModel.java:151)
        net.sf.saxon.value.Value.convertJavaObjectToXPath(Value.java:783)
        net.sf.saxon.instruct.Bindery.useGlobalParameter(Bindery.java:73)
        net.sf.saxon.instruct.GlobalParam.evaluateVariable(GlobalParam.java:36)
        net.sf.saxon.expr.VariableReference.evaluateVariable(VariableReference.java:221)
        net.sf.saxon.expr.VariableReference.iterate(VariableReference.java:194)
        net.sf.saxon.expr.ItemChecker.iterate(ItemChecker.java:83)
        net.sf.saxon.expr.PathExpression.iterate(PathExpression.java:664)
        net.sf.saxon.expr.PathExpression.iterate(PathExpression.java:664)
        net.sf.saxon.sort.DocumentSorter.iterate(DocumentSorter.java:65)
        net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:198)
        net.sf.saxon.instruct.SimpleNodeConstructor.expandChildren(SimpleNodeConstructor.java:100)
        net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:144)
        net.sf.saxon.instruct.Block.processLeavingTail(Block.java:330)
        net.sf.saxon.instruct.Instruction.process(Instruction.java:87)
        net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:155)
        net.sf.saxon.instruct.Template.expand(Template.java:98)
        net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:191)
        net.sf.saxon.instruct.CallTemplate.processLeavingTail(CallTemplate.java:216)
        net.sf.saxon.instruct.Block.processLeavingTail(Block.java:330)
        net.sf.saxon.instruct.Instruction.process(Instruction.java:87)
        net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:155)
        net.sf.saxon.instruct.Block.processLeavingTail(Block.java:330)
        net.sf.saxon.instruct.Instruction.process(Instruction.java:87)
        net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:155)
        net.sf.saxon.instruct.Template.expand(Template.java:98)
        net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
        net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:298)
        net.sf.saxon.Controller.transformDocument(Controller.java:1367)
        net.sf.saxon.Controller.transform(Controller.java:1195)
        org.apache.taglibs.standard.tag.common.xml.TransformSupport.doEndTag(Unknown Source)
        org.apache.jsp.contractonderwijs.index_jsp._jspx_meth_x_transform_8(org.apache.jsp.contractonderwijs.index_jsp:4373)

        org.apache.jsp.contractonderwijs.index_jsp._jspService(org.apache.jsp.contractonderwijs.index_jsp:810)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

The Tomcat console shows only the following warning:

Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
Warning: at xsl:variable on line 45 of :
  SXWN9001: A variable with no following sibling instructions has no effect

In essence, in a first stylesheet _site.xslt we are calling a template from another stylesheet _module.xslt:

----------------------
_site.xslt
-----------------------
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
...
    <!-- PAGECONTENT -->
    <xsl:template name="pagecontent">
        <xsl:comment>pagecontent</xsl:comment>
        <!-- call template page from imported xslt -->
         <xsl:call-template name="page">
           <xsl:with-param name="mystep" select="'1'"/>
         </xsl:call-template>
        <xsl:comment>//pagecontent</xsl:comment>
    </xsl:template>
...
</xsl:stylesheet>

----------------------
_module.xslt
-----------------------
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
...
    <!-- TEMPLATE: PAGE -->
    <xsl:template name="page">
        <xsl:param name="mystep"/>
        <h1><xsl:value-of select="$mystep"/></h1>
    </xsl:template>
...
</xsl:stylesheet>

Has anyone encountered this type of problem? I could not find any references in the forums.

Thanx,

Eric van der Steen
University of Amsterdam