- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Java/Xalan 以及来自 https://sourceforge.net/projects/docbook/files/docbook-xsl/1.76.1/ 的官方 Docbook XSL 文件的混合将一些 Docbook XSL 转换为 HTML以及一些提供一些自定义和覆盖的本地 xsl 文件。
我想阻止我的应用程序必须下载外部资源或访问本地文件。所以我实现了一个扩展 URIResolver 接口(interface)的类。
问题是resolve(final String href, final String base)
函数没有提供足够的信息来识别正在请求的特定文件。
例如,使用 <xsl:import href="../../../xsl/html.xsl"/>
从 xsl 文件导入本地覆盖文件之一。在本例中,我的解析器类的 href 参数设置为 ../../../xsl/html.xsl,这很好。然后 html.xsl 文件导入一个名为 defaults.xsl 的文件。 href 参数仅设置为defaults.xsl,base 参数设置为null。
这之后可能会导入 http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl ,在这种情况下,href 参数设置为 http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl 。但是,如果 docbook.xsl 导入名为 defaults.xsl 的文件,则 href 参数也会设置为 defaults.xsl,并且 base 设置为 null。
问题在于 href 和 base 参数不能唯一标识资源,并且您也无法通过观察前面的 href 的顺序来猜测正在请求哪个文件。是否有一些技巧可以准确找出正在请求文件的上下文?
最佳答案
您创建转换的源是否有系统 ID?如果不是,这可能是您的 URI 解析器中的基数始终为 null 的原因。
如果您要从输入流创建转换,则可以手动将系统 ID 分配给源。如果需要,您可以生成一个人工 URI,并在 URI 解析器中使用该人工 URI 来映射回基本 URI。另外,请确保您在 URI 解析器中创建的源也具有系统 ID,否则从这些文件导入的资源也会出现相同的问题。
关于java - URIResolver、Docbook 和 XSL 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800514/
我有一个 Java 中的 XSLT 转换器(实际上是它的 Apache FOP 渲染为 PDF),我已经在其中设置了一个自定义 URIResolver(用于“servlet-context:”URI)
我正在尝试使用 Java/Xalan 以及来自 https://sourceforge.net/projects/docbook/files/docbook-xsl/1.76.1/ 的官方 Docbo
我需要使用多个源进行 XSLT 转换以生成一个 XML 文件。 例如:我有一个要转换的 XML 消息,一个要进行转换的 XSL 文件,以及一个由 XSL 文件导入的文档片段。 如果我只使用一个 doc
我开始使用 xml3d.tools.js ,它似乎不再更新了。实际上,库在执行这部分时失败了: oldRefNode = XML3D.URIResolver.resolveLocal(oldRef);
在Java XML 转换包中,有一个称为URIResolver 的概念。 ,它是“实现此接口(interface)的对象,处理器可以调用该接口(interface)将 document()、xsl:i
我正在尝试创建一个简单的“Hello”网络服务,但出现以下错误: type Exception report message Servlet.init() for servlet AxisServle
在 Maven 构建期间,配置为使用 Maven XML 插件,使用 document() 函数加载同级 XML 文档的 XSL 样式表无法使用相对引用找到文件并生成错误。我使用 Saxon-HE 9
我是一名优秀的程序员,十分优秀!