当前位置: 首页 > 知识库问答 >
问题:

Saxon和文档功能

相高谊
2023-03-14

我正在将一些XSLT(更具体地说是schematron验证规则)从使用Altova转换为Saxon。NET(Saxon HE version=“9.7.0.4”)作为XSLT处理器。然而,我遇到了一个无法解决的问题。

问题在于document()函数。在我的XSLT中,我有:

<sch:let name="params" value="document('https://some_web_address')"/>

此URL返回XSLT使用的参数的XML。问题是,这在Altova中有效,但在我开始使用Saxon时不起作用(返回空)。净额

在尝试了doc可用()/unparsed-text可用()函数后,来自URL的XML似乎没有返回true。但是,如果我为返回的xml数据创建一个xml文件,请将其放在本地目录(我的XSLT的本地)中并指定xslt的完整路径,unparsed-text可用()函数返回true,但doc可用()仍然返回false。我甚至创建了一个小型虚拟XML示例

<?xml version="1.0" encoding="UTF-8"?>
<parameters>
  <parameter>100</parameter>
</parameters>

XML有效,但返回的结果相同(doc-available()=false,unparsed-text-available()=true)

我在这里查看了其他一些相关问题(XSLT Document()函数导致Saxon错误/属性字符串不能用作文件路径),但没有一个完全解决我的问题。

此问题可能与XSLT工作表的基URI有关,因此我运行:base-uri(.)和state-base-uri(),但都返回空。

所以我的问题是:

  • 是否可以使用URL(web URI)作为Saxon. NET文档()的参数?
  • 如果没有,我做错了什么,其中doc-able()为false,但unparsed-text-able()对有效的xml文件返回true(如上所示)?

对我来说,理想的解决方案是使用URL,但它可以降级为使用本地文件。如果有人能帮我,我将不胜感激。

共有1个答案

何睿范
2023-03-14

好吧,经过很长时间的研究,我发现这是一件非常愚蠢的事情。

问题是在我们使用Saxon的代码中。我们设置的网络:

xsltExecutable.InputXmlResolver = null

不知什么原因。应该是的

xsltExecutable.InputXmlResolver = new XmlUrlResolver();

因为XMLURLSolver是从外部源提取数据的工具。

我是在尝试设置一个小型schematron测试用例时发现这一点的,该测试用例在命令行中运行良好,但在中不起作用。NET应用程序。

这篇文章也有帮助:如何使用Saxon-HE中的XSLT fn: Document函数来读取XML字符串?

谢谢各位

 类似资料:
  • 文档功能为用户提供了一种以层级结构组织 Markdown 文件的方法。 文档的 ID 每份文档都对应了一个唯一的 id。默认情况下,文档的 id 就是该文档相对于文档根目录(即 docs 目录)的的文件名(不带扩展名)。 例如,greeting.md 的 id 是 greeting,而 guide/hello.md 的 id 是 guide/hello。 website # 网站根目录 └──

  • 文档插件可以使用任何常见的 Markdown 功能,并拥有一些特定于该文档插件的 markdown 功能。 Markdown frontmatter Markdown 文档拥有自己特定的 Markdown frontmatter 属性 引用其它文档 如果需要引用另一个文档文件,则可以使用被引用文档的文件名。Docusaurus 会将文件路径转换为最终的网站路径(并去掉 .md 扩展名)。 例如,如

  • Saxon 是一个 XSLT 和XQuery处理器。它是使用 XML 文档和样式表作为输入,然后生成结果文档作为输出的程序,它还包括了一个串行化器,用于将结果树转换成 XML、HTML 或纯文本。 功能和特点 ◆ 对功能进行组合 ◆ 支持对多个输出文件 ◆ 临时树的完全处理能力 ◆ 支持节点序列和简单值 ◆ 正则表达式处理 ◆ 支持新的XPath结构 ◆ 支持指定的排序序列 ◆ 许多新函数和运算符 ◆ 支持新的数据类型

  • 本文向大家介绍PHPExcel导出2003和2007的excel文档功能示例,包括了PHPExcel导出2003和2007的excel文档功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHPExcel导出2003和2007的excel文档功能。分享给大家供大家参考,具体如下: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,e

  • 问题内容: 我有一个使用jquery的子导航-用户单击顶层列表项,例如触发下拉菜单的“服务”。通过单击“服务”链接可以切换下拉菜单。我做到了,以便用户可以单击屏幕上的任意位置以将下拉列表切换到关闭状态。但是,由于该站点具有响应能力,因此我希望用户能够单击(触摸)屏幕上的任何位置以关闭下拉菜单,但是我的问题是它无法在触摸设备上正常工作。 我的文档单击代码设置为: 我假设document.click可

  • 轻推一种智能工作方式, 人人都能在轻推上,轻松交流推进协作,轻推将常用社交IM功能与工作场景结合,打造专为工作者定制的即时沟通工具,功能丰富,上手简单。