DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13106>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13106

Abbreviated syntax for Java extensions no longer works

           Summary: Abbreviated syntax for Java extensions no longer works
           Product: XalanJ2
           Version: 2.4
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: org.apache.xalan.xsltc
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


My stylesheet worked just fine up to and including under Xalan 2.3.1.  Since I 
moved to Xalan 2.4.0, I get errors.  I haven't changed anything in the 
stylesheet.  I can't find anything wrong with how I declared the extension, 
using the abbreviated notation discussed in the documentation.

    <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        version="1.0"
        xmlns:validator="xalan://com.jeantessier.diff.Validator"
        xmlns:listvalidator="xalan://com.jeantessier.diff.ListBasedValidator"
        exclude-result-prefixes="validator">

The error is, from running org.apache.xalan.xslt.Process with -edump:

org.apache.xpath.XPathProcessorException: Extension function 
xalan://com.jeantessier.diff.Validator : IsPackageAllowed is unknown
        at org.apache.xalan.extensions.ExtensionsTable.extFunction
(ExtensionsTable.java:241)
        at org.apache.xalan.transformer.TransformerImpl.extFunction
(TransformerImpl.java:460)
        at org.apache.xpath.functions.FuncExtFunction.execute
(FuncExtFunction.java:196)
        at org.apache.xpath.patterns.StepPattern.executePredicates
(StepPattern.java:765)
        at org.apache.xpath.patterns.StepPattern.execute(StepPattern.java:443)
        at org.apache.xalan.templates.TemplateList.getTemplateFast
(TemplateList.java:593)
        at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes
(ElemApplyTemplates.java:327)
        at org.apache.xalan.templates.ElemApplyTemplates.execute
(ElemApplyTemplates.java:215)
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)
        at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes
(ElemApplyTemplates.java:426)
        at org.apache.xalan.templates.ElemApplyTemplates.execute
(ElemApplyTemplates.java:215)
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)
        at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java:2147)
        at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java:1203)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:665)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1119)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1097)
        at org.apache.xalan.xslt.Process.main(Process.java:893)

I tried the full notation and it works fine.  It seems that somewhere between 
2.3.1 and 2.4.0, someone took out the abbreviated notation.

    <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        version="1.0"
        xmlns:lxslt="http://xml.apache.org/xslt";
        xmlns:validator="Validator"
        xmlns:listvalidator="ListBasedValidator"
        exclude-result-prefixes="validator listvalidator">

        <lxslt:component prefix="validator">
            <lxslt:script lang="javaclass" 
src="xalan://com.jeantessier.diff.Validator"/>
        </lxslt:component>

        <lxslt:component prefix="listvalidator">
            <lxslt:script lang="javaclass" 
src="xalan://com.jeantessier.diff.ListBasedValidator"/>
        </lxslt:component>

According to the documentation, these two forms should be equivalent, but one 
works and the other doesn't.

Reply via email to