I get an exception:
javax.xml.transform.TransformerException: stylesheet requires
attribute: version
when I execute xalan with a DOMSource like so:
public static void main(String[] args){
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
Source xsl = new DOMSource(dBuilder.parse(new File(workingDir,
"input.xsl")));
//Source xsl = new StreamSource(new File(workingDir, "input.xsl"));
Source input = new DOMSource(dBuilder.parse(new File(workingDir,
"input.xml")));
StreamResult output = new StreamResult(new File(workingDir,
"output.xml"));
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(xsl);
transformer.transform(input, output);
}
but when I execute xalan with a StreamSource it works fine. Here is my
input.xsl file:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lxslt="http://xml.apache.org/xslt" xmlns:customMap="CustomSplit"
extension-element-prefixes="customMap" version="1.0">
<lxslt:component prefix="customMap" elements="customSplit1 customSplit2
customSplit3">
<lxslt:script lang="javaclass" src
="xalan://org.eclipse.xml.xslt.experiment7.CustomSplit"/>
</lxslt:component>
<xsl:template match="/">
<DstRoot>
<DstElement1><customMap:customSplit1/></DstElement1>
<DstElement2><customMap:customSplit2/></DstElement2>
<DstElement3><customMap:customSplit3/></DstElement3>
</DstRoot>
</xsl:template>
</xsl:stylesheet>
Any ideas why this does not work?
I'm using xalan-j_2_3_1on windows NT.