
通过创建包含 Java™ 服务提供程序插件的 XPath 函数 Java 归档 (JAR) 文件,定义您的定制 XPath 扩展函数。
每个 XPath 函数都作为静态 Java 方法来实现,其中应用了以下类型映射:
| XPath 类型 | Java 类型 |
|---|---|
| 字符串 (string) | java.lang.String |
| 数字 | java.lang.Number |
| 布尔值 | java.lang.Boolean 或 boolean |
| 对象 (object) | commonj.sdo.DataObject |
| 节点集 | java.util.List |
public static String createDelimitedString(List list, String del) {
StringBuilder sb = new StringBuilder();
if (list.size()< 0) {
sb.append(list.get(0));
for (int i=1; i<list.size(); i++) {
sb.append(del);
sb.append(list.get(i));
}
}
return sb.toString();
}
有关实现 Java 服务提供程序接口的信息,请参阅位于参考:Java API 和 SPI 的 com.ibm.bpm.xpath.spi 包中 XPathExtensionFunctionPlugin 接口的 Javadoc。
import com.ibm.bpe.xpath.spi.XPathExtensionFunctionDescriptor;
import com.ibm.bpe.xpath.spi.XPathExtensionFunctionPlugin;
public class MyXPathExtensionFunctionPlugin implements XPathExtensionFunctionPlugin {
@Override
public XPathExtensionFunctionDescriptor[] getXPathFunctions() {
return new XPathExtensionFunctionDescriptor[]{
new XPathExtensionFunctionDescriptor("createDelimitedString",
"http://org.custom.xpath",
"abc",
"org.custom.xpath.XPathExtensionFunctions",
new XPathExtensionFunctionDescriptor.ParameterType[]{XPathExtensionFunctionDescriptor.ParameterType.NODE_SET,
XPathExtensionFunctionDescriptor.ParameterType.STRING},
XPathExtensionFunctionDescriptor.ParameterType.STRING,
XPathExtensionFunctionDescriptor.ALL_EXPRESSION_TYPES)
};
}
}