问题标签 [xproc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - Xproc:将动态href传递给
我有一个在输入上运行 XSLT 的管道,然后通过一个<p:http-request>
步骤将该结果放入数据库中。
这里棘手的一点是,我需要使用<p:xslt>
XML 输出中的元数据来构建动态 href。
这里是我想要实现的伪代码:
正如您在该<p:variable>
步骤中看到的,我正在尝试构建一个字符串并使用该<p:xslt>
步骤的输出 XML 中的属性值构造它,并将其输入到我<c:request>
的步骤的 href 选项中。
我尝试在<p:attribute match>
之前添加一个更改 href 属性的步骤,<p:http-request>
但它没有获取我需要的/*/@name
and/*/@number
值:
xpath - XProc - 如何将子管道重复特定次数
我想重复 XProc 子管道给定的次数。(在我的用例中,子管道由一个执行步骤组成,它在先前创建的 .tex 文件上运行 LaTeX)
我的代码的简化版本如下所示,到目前为止没有结果:
我不知道 p:iteration-source 元素中的 XPath-2.0 表达式是否存在问题。但是,以下工作并给出正确的结果“消息:3”:
我的 exec-step 在 for-each 循环之外进行了测试并且可以工作。我在 Oxygen 16.0 下使用 Calabash。
xml - XProc 和 CDATA
我有一个 XSLT,可以在节点内创建一些 CDATA。
XML:
XSLT:
这个通过 Saxon 执行的转换返回:
我知道我将 XML 包装在 CDATA 中,这有点荒谬。但这是我正在使用的 API 所期望的,所以我别无选择,只能遵循这种模式。
现在我试图将此转换包含在更大的 XProc 管道中:
返回(使用最新版本的葫芦):
XProc 似乎不支持 disable-output-escaping 属性。
我继续尝试了一些 XProc 函数,包括 p:unescape-markup 和 p:string-replace 的各种组合,但我找不到不会对我的其余输出产生不利影响的解决方案。
有什么想法我可以尝试下一步吗?
ftp - XProc 从 FTP 访问 XML 数据(带身份验证)
我的目标是通过 XProc 访问位于 FTP 服务器上的 XML 文档。这个特定的 FTP 服务器需要身份验证。
我在 Java 8 上使用最新版本的 Calabash (1.1.6-96)。
当不需要身份验证时,以下 XProc 可以完美运行:
但是,如果您尝试访问需要身份验证的 FTP 服务器:
Calabash 将返回错误:
错误:如果 ap:document 元素引用的资源不存在、无法访问或不是格式良好的 XML 文档,则为动态错误。
表示它无法访问该文档。
奇怪的是,我安装了旧版本的 Oxygen (16.0),它带有旧版本的 Calabash (1.0.*),而第二个使用身份验证的 XProc 运行良好。因此,Calabash 内部要么发生了一些变化,要么与旧的 Oxygen/Calabash 配置相关的其他一些东西使它工作。
我也对访问此文件的替代方法持开放态度。我已经尝试换掉了<p:document>
,<p:http-request>
但这并没有成功。
exist-db - 来自 eXist-db 中 XProcxq 模块的错误
我们正在运行 eXist-db 3.0 版并想尝试在其中运行 XProc。
我们发现 XProcxq 模块现在是 eXist 的一部分:http ://exist-db.org/exist/apps/doc/extensions.xml#module_xprocxq
然而,在尝试使用它时,我们得到了下面的错误,并想知道是否有人对我们可能出错的地方提出建议?
正如链接到的模块页面顶部所指定的,我们将模块添加到 conf.xml 文件并重新启动 eXist。(这可能是我们出错的地方,但这是我们的猜测)
这是我们添加的模块在 conf.xml 中的样子:
这是我尝试使用的简单启动 XQuery:
这是错误: 加载模块 xproc 时发现错误:从“ http://xproc.net/xproc ”加载模块“ http://xproc.net/xproc ”时出现 IO 异常
xml - 具有多个 http 请求步骤的 XProc 管道
我有一个包含两个http-request
步骤的 XProc 管道。第一个http-request
检索包含一系列 RDF/XML 文档的 XML 文档。一个xquery
步骤仅提取 RDF/XML,然后我想将其发布到第二个中的 SPARQL 端点http-request
。在最后一步中,我想再次从 SPARQL 端点检索数据,以便进行进一步处理。
我尝试按照类似问题的解决方案进行操作,但我收到一个错误(在 XML Calabash 中),说明Expression could not be evaluated: c:request/c:body: Prefix c has not been declared.
这是当前管道,它正在通过 XForms 提交给 Calabash Piperack 服务:
如果我将step@match
属性中的 XPath 更改为,则前缀错误消失并且 post 提交正常工作。但是有没有办法用前缀做到这一点?p:insert
/*[local-name() = 'request']/*[local-name() = 'body']
最后,该rdf-load
步骤在其他步骤完成之前执行,但我需要它始终最后执行。rdf-load
鉴于该步骤没有从其他步骤直接输入,我该怎么做?
xquery - xproc: p:xquery 具有多个输入文档
根据XProc:W3C 建议p:xquery 只获取一个输入文档和参数(只能是原子的,对吗?)
如果我的查询有多个输入文档(来自前面的步骤),我真的必须先存储它们并将它们加载到查询中吗?
xslt - 将 document() 参数传递给 XProc 管道中的 xslt
我已经建立了一个 XProc 管道,其中我有一个<p:xslt>
步骤。在这个样式表的参数中,我有一个参数是 document() 节点:
这是 km_to_dita.xsl 样式表:
因此,我通过以下步骤在我的管道中调用此 XSLT(出于演示目的,它使用 a 进行设置,<p:inline>
但旨在绑定到步骤的结果端口):
但是在使用 XML Calabash(在 oXygenXML 中)运行它时它会失败,引发的错误是(对不起,这是我所拥有的所有信息)但是已经确定它<p:with-param name="graphics-reference-names">
是导致此错误的原因):
无效的
任何想法?
pipeline - 如何在 BaseX 中实现 XProc
我正在开展一个项目,在将数据摄取到 BaseX 数据库时,我必须执行多个步骤。为了方便起见,我想在 XProc 中定义这些步骤。特别是我们需要 DOCX 到 DocBook 和 DocBook 到 DOC 的转换。
我的 BaseX 版本是 8.6.44。我试过https://github.com/fgeorges/calabash-basex-steps但不支持。我试图将一些 jar 导入 BaseX 但无法正常工作。
请帮助我在 BaseX 上启动 XProc。