元素xsl:mode不能直接出现在xsl:stylesheet中

问题描述 投票:0回答:1

在我的xslt 3.0中使用<axsl:mode on-no-match="shallow-copy"/>时出现此错误。 lib - > saxon-ee:9.7.0.4

Error at /xsl:stylesheet/xsl:mode[1] 
  XTSE0010: Element xsl:mode must not appear directly within xsl:stylesheet
Error at /xsl:stylesheet/xsl:mode[1] 
  XTSE0010: Element xsl:mode must not appear directly within xsl:stylesheet
Error at /xsl:stylesheet/xsl:mode[1] 
  XTSE0010: Unknown XSLT element: mode

当我使用最新的SaxonEE9-8-0-14时,我不知道如何使用Serializer. net.sf.saxon.s9api.Serializer

// destination
            Serializer serializer = new Serializer(); // This worked with 9.7 but errors with 9.8
            serializer.setOutputWriter(writer);
            serializer.setOutputProperty(Serializer.Property.METHOD, "xml");
            serializer.setOutputProperty(Serializer.Property.OMIT_XML_DECLARATION, "yes");
            serializer.setOutputProperty(Serializer.Property.ENCODING, "UTF-8");
            transformer.setDestination(serializer);

请帮忙

java saxon
1个回答
0
投票

最新版本是Saxon 9.8。之前的9.7是在XSLT 3.0建议最终确定之前发布的,因此只有在明确请求时才能使用XSLT 3.0功能(例如在样式表上设置version =“3.0”)。

Serializer的独立构造函数在9.6和9.7中被弃用,赞成使用工厂方法Processor.newSerializer(),公共构造函数最终在9.8中删除。这是因为除非Serializer能够访问支持ConfigurationProcessor,否则它无法做任何需要考虑配置设置的事情。

© www.soinside.com 2019 - 2024. All rights reserved.