问题标签 [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.

0 投票
3 回答
199 浏览

xproc - 如何使 p:xslt 聚合来自两个来源的输入

阅读下面的 XProc 问题后:

XSLT 与 XProc - 所需类型的参数绑定

将 document() 参数传递给 XProc 管道中的 xslt

在 XProc 中将 document-node() 类型参数传递给 XSLT 似乎是不可能的。

所以唯一的解决方法是:生成临时文件并将临时文件的 URL 作为参数传递给 XSLT。

看下面的例子:

大命令.xpl

最终计算.xsl

生成临时数据.xsl

源数据.xml

我的问题是:

这个解决方案是否有顺序或同步问题?

2018年有什么新的解决方案吗?

如何安全删除临时文件:temp-data.xml?

@grtjn

0 投票
1 回答
82 浏览

xproc - 序列输入到在 XProc 1.0 中?

XProc是否<p:filter>能够接受一系列文档作为输入?当我喂葫芦时:

它引发以下错误:

err:XD0006 : 2 个文档出现在“源”端口上。如果未指定序列,或值为 false,则这是一个动态错误,除非在声明的端口上恰好出现一个文档。

@sequence 指定,并且值为“true”。如果我从输入中删除第二个内联文档,则处理会成功完成。如果我留下这两个输入,但<p:filter>用其他接受序列的东西替换,比如<p:count>,它也会成功运行完成。

我很困惑,因为错误消息没有说<p:filter>不能接受序列;它告诉我指定一个序列,我已经做到了。并且由于 XPath 过滤可以应用于 XPathcollection()函数,所以不清楚(嗯,对我来说)为什么不能(至少在原则上)在 XProc 中过滤文档序列。

我也不确定如何阅读规范,其中说明了<p:filter>这一点:

除了选择表达式是动态计算的之外,此步骤的行为就像带有选择表达式的 p:input。

由于<p:input>可以接受一个序列,如果<p:filter>据说除了过滤之外的行为方式相同,这似乎意味着它<p:filter>也应该能够接受一个序列。

我认为选项是:

  1. <p:filter>接受多个输入,但我没有正确指定。
  2. <p:filter>不接受多个输入,并且错误消息和规范具有误导性,或者我未能正确理解它们。

我很高兴(好吧,愿意)在任何一种情况下都承认用户错误,但我会很感激澄清。

<p:wrap-sequence>是的,我可以通过使用将多个输入形成单个 XML 树来解决该问题,但我的问题是关于如何<p:filter>工作,而不是关于如何获得特定的结果结果。在我的实际代码中,读取和传递我的真实输入文档需要 1.5 秒,如果我添加包装它们的步骤,则需要 4.5 秒,我想节省 3 秒,特别是因为包装将是一个短暂的工作 -左右,因为无论如何我只是要提取内容并在过滤步骤之后得到多个文档。

0 投票
0 回答
67 浏览

xml - bash 到 xproc(unix 到 XML)

我正在尝试了解 xproc 的工作原理并将 bash 脚本转换为 xproc。

我习惯于 bash 脚本,但现在的想法是将所有内容都采用 XML 格式......

这是我的 bash 脚本:它在数组中创建一些信息,然后循环遍历其中一个数组以使用 cat 写入文件。

这是相应的xproc(我认为......)

是否有意义?我是 xproc 的新手——如何测试 xproc 的功能?

Filmsammlung.xml 看起来像这样:

0 投票
1 回答
59 浏览

xproc - XProc 3 可以处理任何 XPath 3.1 值/类型吗?

在阅读 XProc 3 时,我想知道像 XSLT 3 样式表这样的步骤是否可以返回任何类型的 XSLT 3 或 XPath 3.1 数据模型。

http://spec.xproc.org/master/head/xproc/#documents.9中的规范有一段说

如果结果是映射、数组或任何原子值,则创建 JSON 文档并使用内容类型 application/json。

我正在努力理解一般序列会发生什么,例如节点数组序列(例如 type array(node())*)或从原子类型到节点(例如 type )的映射序列,map(xs:string, node())*因为这不是 JSON 可以处理的类型,至少在我知道 JSON 或 XSLT 3 序列化规范允许 JSON 序列化的意义上不是。

关于 XProc 3 是否允许在步骤之间传递任何 XDM 3.1 序列的任何见解?

0 投票
2 回答
66 浏览

oxygenxml - 使用 xproc 文件,如何在氧气中逐步调试/跟踪?

我要学习 Xproc 语言。氧气软件是否具有使用 Xproc 脚本逐步调试/跟踪的能力?怎么办?谢谢。我的氧气编辑器版本是21.0。

还是有另一个IDE可以做到这一点?

0 投票
1 回答
150 浏览

xslt - 使用 xsl:result-document 时 XProc p:store href 变量

我正在使用 XProc 运行一个 XSLT,它会输出大量结果文档(使用 xsl:result-document)。我不确定如何在步骤中为@href 添加变量。我有以下 XProc:

如何在 XProc 中添加一个与 xsl:result-document 中的输出文件名匹配的变量?

XSLT 片段,如果需要:

0 投票
1 回答
87 浏览

gradle - 如何在 gradle 中使用 XProc 作为复制过滤器?

我有一个 XQuery 脚本,我想针对 gradle 复制任务中的所有文件作为过滤器运行它。我正在查看 XQJ 和 XProc。由于在 ml-gradle 中支持 Calabash 的实现,我决定走那条路。

是否有在 gradle 复制任务中使用 XProc 作为过滤器的示例?

这是我用于使用 xqDoc java 库生成 xqDoc 的 gradle 任务。我想要一些帮助来做类似的事情,但使用 XProc 作为过滤器。

0 投票
0 回答
51 浏览

xslt - 如何使用 XProc 复制 XSLT 转换的主输出和 xsl:result-document

我有一个 XProc 管道,它获取一个源文档并使用几个 <p:xslt> 步骤对其进行转换,沿途存储中间结果(我也需要这些)。

这非常简单并且效果很好。但在最后一步,输入已经是一个 html 文档,我的 xslt 看起来像这样:

现在,如果我使用 XSLT 直接运行此转换,则转换的主要输出将是一个文件,其中包含除 who 之外的所有div内容id="spec";并且第二个输出将是 的内容,根据 xsl:result-document 的要求div id="spec",它将进入。spec.html

不幸的是,XProc 没有为此创建输出xsl:result-document ,据我所知,它希望我们为此处理主要和次要输出端口。我已经多次阅读了规范和几个例子,但我仍然无法弄清楚应该相对简单的东西,如何从:

到 XProc 中的其他内容,这将给我两个不同的输出,并能够保存主要输出和辅助输出(là xsl:result-document)。

我将非常感谢您的提示或示例。

0 投票
0 回答
64 浏览

xslt - xsl:result-document 指令在使用 Calabash 调用样式表时引发错误

我有一个看起来像这样的 XSL 样式表:

(为简洁起见,省略了变量和其他模板。)

当我使用 Saxon 调用它时,一切运行正常,我最终得到了通过 xsl:result-document 创建的 x 个文档。

当它作为带有 Calabash 的 XProc 管道的一部分运行时,如下所示:

在转换过程中出现运行时错误:Cannot execute xsl:result-document while evaluating xsl:variable. 我尝试将代码精简到最低限度,但在调用xsl:result-document.

我不知道它指的是什么变量,我只能假设它是在管道内的某个地方创建的?

在 Oxygen XML Developer 中使用 Saxon EE 9.9.1.5 和 Calabash 1.1.30-99。

0 投票
1 回答
122 浏览

xml - 如何使用 XProc 的 p:http-request 发送 multipart/form-data POST 请求

我想使用multipart/form-data带有 XProcp:http-request功能的 POST 请求发送文档;需要多部分,因为也需要发送一些表单字段。我只是无法获取文件的内容(在我的情况下是 XSD 文件)来请求。

知道如何实现吗?

在 OxygenXML v23.1 中使用 xmlcalabash