我想通過XSLT使用XALAN轉換XML。現在,我想使用一個擴展功能,該功能必須在Java源代碼中SAXON補充,如:XALAN寄存器擴展功能像SAXON
方法:
TransformerFactory tFactory = TransformerFactory.newInstance();
Configuration c = ((net.sf.saxon.TransformerFactoryImpl) tFactory).getConfiguration();
c.registerExtensionFunction(new FooExtension());
FooExtension:
public class FooExtension extends ExtensionFunctionDefinition {
private static final long serialVersionUID = -8143237239412146617L;
@Override
public SequenceType[] getArgumentTypes() {
return new SequenceType[] { SequenceType.EMPTY_SEQUENCE };
}
@Override
public StructuredQName getFunctionQName() {
return new StructuredQName("ns", "http://namespace", "generate-guid");
}
}
但它是如何做的工作原理在XALAN(?FunctionTable?,?FunctionResolver?,?URIResolver?)中,我必須通過源代碼完成,我不允許在XSLT中添加類。
謝謝!
謝謝,但我不允許使用xmlns在xslt中添加類名。 (已經寫在問題中) – user274342 2010-07-07 11:24:21