XALANを使ってXSLTでXMLを変換したい。拡張機能を使用したいのですが、この機能は SAXON のように Java ソースに追加する必要があります。
方法:
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 でクラスを追加することは許可されていません。
ありがとう!!