使用Java API为XSLT程序提供参数

Mir*_*nda 1 java xslt saxon transformer-model

我想做的是:

setParameter(String name, String value)
Run Code Online (Sandbox Code Playgroud)

但API是:

void setParameter(QName name, XdmValue value)
Run Code Online (Sandbox Code Playgroud)

我找不到任何正确创建XdmValue和QName的例子,我发现的例子都使用了这个函数/ api的不同版本.

Mic*_*Kay 6

通常,参数的名称不在命名空间中,因此您可以使用构造函数构造QName new QName("p").如果参数值是字符串,则可以使用构造值new XdmAtomicValue("value").所以你的例子减少到了

setParameter(new QName(name), new XdmAtomicValue(value))
Run Code Online (Sandbox Code Playgroud)

在设计这样的API时,必须仔细判断如何平衡为常见的简单情况提供"快捷"方法所带来的简单性,以及拥有数以万计的方法所带来的复杂性.所以我提供了new QName(string),但我没有提供setParameter(string, string).