【发布时间】:2020-09-13 16:28:55
【问题描述】:
我已经问过这个问题before,但现在我正在尝试获取 XQuery 评估而不是 XSLT 转换的序列化属性。
使用此代码:
public static void main(String[] args) throws SaxonApiException {
Processor p = new Processor(false);
XQueryEvaluator e = p.newXQueryCompiler().compile(
"xquery version \"3.0\";" +
"declare namespace output = \"http://www.w3.org/2010/xslt-xquery-serialization\"; " +
"declare option output:encoding \"utf-8\";" +
"<x s='ó'/>").load();
ByteArrayOutputStream os = new ByteArrayOutputStream();
Serializer s = p.newSerializer(os);
e.setDestination(s);
e.run();
assert "utf-8".equals(s.getCombinedOutputProperties(null).getProperty("encoding")); //fails
}
原始问题的答案中提出的方法似乎不适用于此处,因为我无法从 XQueryEvaluator 实例化序列化程序,而 getDeclaredSerializationProperties 仅在 XSLT 上下文中可用。
我正在使用 Saxon 10 HE。
【问题讨论】:
-
您使用哪个版本的 Saxon 或您的目标是哪个版本?
-
我正在使用 Saxon 10 HE。