s9api 与带有 saxon-b 的 trax
我收到了一个包含以下两者的 shell 脚本:
java -cp $(CLASSPATH) net.sf.saxon.Transform -xsl:$(CMS_ROOT)/$(TRANSFORMS_DIR)/$(LOCALE_STYLESHEET) \ -it:root
等情况表示输出。
对于我来说,如何通过 trax 指定初始转换并不明显,所以我选择了 s9api。
您会发现,将基于输出文件的序列化器传递给 XmlTransformer 不会导致将基本输出 URI 设置为该文件。我必须添加:
transformer.getUnderlyingController().setBaseOutputURI(outputFile.toURI().toString());
所有这些都表明我最好与 trax 交谈并弄清楚如何指定初始转换和我需要的任何其他内容。任何人都可以以一种或另一种方式阐明这一点吗?
I was handed a shell script containing both:
java -cp $(CLASSPATH) net.sf.saxon.Transform -xsl:$(CMS_ROOT)/$(TRANSFORMS_DIR)/$(LOCALE_STYLESHEET) \ -it:root
and other cases that an output.
It wasn't obvious to me how to specify the initial transform through trax, so I went with the s9api.
Come to discover that passing a Serializer based on an output file to an XmlTransformer does not result in setting the base output URI to that file. I had to add:
transformer.getUnderlyingController().setBaseOutputURI(outputFile.toURI().toString());
All this suggests to me that I might be better off just talking to trax and figuring out how to specify an initial transform and anything else I need. Can anyone shed light one way or the other?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Saxon 9.2 及更高版本在 s9api
XsltTransformer
类上有一个setBaseOutputURI()
方法。对于 9.4,我将根据您的建议进行更改,尽可能使用序列化程序的目标 URI 作为输出基本 URI 的默认值。
Saxon 9.2 and later have a
setBaseOutputURI()
method on the s9apiXsltTransformer
class.For 9.4 I will make the change you suggest, of using the destination URI of the Serializer as a default for the output base URI when possible.