XSLT 2.0 xsl:separator属性的值在带有apache.xalan的Java 1.7中不起作用

XSLT 2.0 xsl:separator属性的值在带有apache.xalan的Java 1.7中不起作用,java,xslt,xalan,Java,Xslt,Xalan,XSLT 2.0 xsl:value of element separator属性似乎不适用于内置Java 1.7 XSLT处理器。以下是示例(从第4章略加编辑以缩小尺寸): XML文件 代码运行时,将生成以下输出文件: Chevrolet 。。。与书中描述的相反: Chevrolet, Ford, Volkswagen 我在UbuntuPrecise中使用Java 1.7,TransformerFactory实例的类名报告如下(在上面Java代码的a行中): 更新 我对XSLT文件中的se

XSLT 2.0 xsl:value of element separator属性似乎不适用于内置Java 1.7 XSLT处理器。以下是示例(从第4章略加编辑以缩小尺寸):

XML文件 代码运行时,将生成以下输出文件:

Chevrolet
。。。与书中描述的相反:

Chevrolet, Ford, Volkswagen
我在UbuntuPrecise中使用Java 1.7,TransformerFactory实例的类名报告如下(在上面Java代码的a行中):

更新
我对XSLT文件中的separator属性进行了实验,并将其重命名为separatorBOO,代码继续运行,没有任何抱怨,并生成完全相同的输出。因此,XSLT 2.0分隔符属性似乎根本无法识别???

您必须提供另一个工厂,因为Xalan不支持xslt2转换。
试着用撒克逊语。我想您只需要将jar放入类路径中,因为Java正在使用它的嵌入式版本,如果类路径中没有提供程序。

是的,将saxon9he.jar放入运行时类路径中,trickis saxon是唯一支持xslt2转换的库吗??
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;

public class FooMain {
    public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {
        TransformerFactory factory = TransformerFactory.newInstance();
        System.out.println("transformer factory class: "+factory.getClass()); // line-a
        Source xslt = new StreamSource(new File("transform.xslt"));
        Transformer transformer = factory.newTransformer(xslt);                                                                                                                                                                     
        Source text = new StreamSource(new File("input.xml"));
        transformer.transform(text, new StreamResult(new File("output.html")));
    }
}
Chevrolet
Chevrolet, Ford, Volkswagen
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl