问题标签 [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 投票
2 回答
252 浏览

xslt-1.0 - XProc: XD0001 如果非 XML 资源在步骤输出中生成或到达步骤输入,则为动态错误

要求: 是在输出xml上添加正确的Doctype声明【输入xml的根元素可以是champlesection元素】

输入 XML:chapter.xml

XSLT 文件:test.xsl:

  1. 样式表只是将输入 xml 复制到输出并在所有元素上添加 @sec
  2. 样式表将正确的 doctype 声明添加到输出 xml,因为输入 xml 根元素可以是 <chapter> 或 <section> 元素

    /li>

预期输出.xml

使用任何 XSLT 引擎,转换工作都非常好,并且能够获得预期的输出

但是,如果转换是通过 XProc 完成的,我最终会出现以下错误。有人可以帮助解决此错误吗

err:XD0001 : XD0001 如果非 XML 资源在步骤输出中生成或到达步骤输入,则为动态错误。

XProc 文件:test.xpl

0 投票
1 回答
356 浏览

xproc - 如何在 XProc 中动态生成 doctype 声明?

要求:

  • 是在输出xml上添加正确的Doctype声明[输入xml的根元素可以是章节元素]。例如,考虑章节元素公共标识符是 PUBLIC“-//OASIS//DTD DocBook Chap XML V4.5//EN”,系统标识符是“chap.dtd”。与节元素公共标识符类似的是 PUBLIC“-//OASIS//DTD DocBook Sec XML V4.5//EN”,系统标识符是“sec.dtd”。

输入 XML1:chapter.xml

输入 XML2:section.xml

XSLT 文件:test.xsl:

样式表只是将输入 xml 复制到输出并在所有部分元素上添加 @sec 样式表将正确的 doctype 声明添加到输出 xml,因为输入 xml 根元素可以是或元素

输入 XML1 的预期 output.xml

输入 XML2 的预期 output.xml

使用任何 XSLT 引擎,转换工作都非常好,并且能够获得预期的输出

但是,如果转换是通过 XProc 完成的,我最终会出现以下错误。有人可以帮助解决此错误吗

err:XD0001 : XD0001 如果非 XML 资源在步骤输出中生成或到达步骤输入,则为动态错误。

XProc 文件:test.xpl

0 投票
2 回答
667 浏览

xml - 如何从 Java 以编程方式调用 XML Calabash

我找不到有关如何调用 XML Calabash(Xproc 实现)以从 Java 运行的示例或指示。要求很简单:

  1. 列表项 能够以编程方式指定输入和输出。
  2. List item 能够同时工作,因为我们希望它是一个在 Jetty Server 中运行的进程

    • 谢谢
0 投票
1 回答
1031 浏览

xml - 必须指定源文档或初始模板

我正在尝试运行以下涉及管道中 xslt 步骤序列的xproc代码。然而,尽管明确提到了“href”链接,但 Calabash 无法读取或获取源文档。

oXygen编辑器报如下错误:

E [Calabash XProc]“必须指定源文档或初始模板”

从控制台运行葫芦时出现以下错误:

2013 年 7 月 7 日下午 2:41:52 com.xmlcalabash.util.DefaultXProcMessageListener 错误严重:err:XD0011:XProc 错误 err:XD0011 2013 年 7 月 2:41:52 PM com.xmlcalabash.drivers.Main 错误严重:它如果 ap:document 元素引用的资源不存在、无法访问或不是格式良好的 XML 文档,则为动态错误。Mai 07, 2013 2:41:52 PM com.xmlcalabash.drivers.Main 错误严重:基础异常:net.sf.saxon.s9api.SaxonApiException:XML 解析器处理报告的 I/O 错误 C:stlConversionxprocstlxml.xpl:C :stlConversionx procstlxml.xpl (Das System kann die angegebene Datei nicht finden)

有人可以帮我解决这个错误吗?

这是我的 xproc 代码:



0 投票
2 回答
794 浏览

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

我正在尝试将调用 Saxon(8.9 版)的批处理文件转换为 XProc 管道(Calabash)。这是我的批处理调用:

参数 config 在样式表中以这种方式定义:

XProc 部分如下所示:

错误信息是这样的:

变量 $config 的值的必需项类型是 document-node();提供的值具有项目类型 xs:string

我知道该<p:exec>步骤,但我不想使用它,因为稍后将由其他 XSLT 转换生成配置文件。它也应被其他 XProc 步骤重用。

是否可以使用正确的参数类型调用 XSLT 样式表?谢谢你的帮助!

0 投票
1 回答
389 浏览

java - 从代码运行 Calabash XML

几天前我下载了 Calabash XML,并在命令提示符下轻松地运行它。然后我尝试从 Java 代码运行它,我注意到没有 API(例如 Calabash 主方法非常庞大,到处都有代码调用)。为了让它工作非常混乱,因为我必须将大块从 main 方法复制到包装类,并从 System.out 转移到字节数组输出流(并最终进入字符串),即

...

...

性能似乎非常非常慢,例如我运行了一个简单的过滤器 1000 次......

平均每次花费 17 毫秒,这看起来并不多,但我的 Spring REST 控制器调用 Mongo DB 和加密调用等平均需要 3/4 毫秒。

从代码运行 Calabash 时有人遇到过这种情况吗?我可以做些什么来加快速度吗?

例如,我每次都会调用它 -

这可以创建一次并重复使用吗?感谢任何帮助,因为我不想花钱来使用 Calamet,但真的想让 Xproc 从代码工作到可接受的性能。

0 投票
1 回答
355 浏览

xproc - Xproc(葫芦):执行顺序

我正在尝试编写一个需要按顺序执行多个 p:xslt 步骤的 xproc。首先,它将两个规范化的 XML 文件写入磁盘,然后第三个 p:xslt 应该将这些规范化的文件作为输入。

更新:第一个问题(第三个 p:xslt 在第二个 p:store 完成写入磁盘之前触发)通过在第二个 p:store 和第三个 p:xslt 之间添加显式连接来解决。(在下面的代码中修改)

更新 2下一个问题是我想用 pxf:delete 指令删除临时文件。这给出了相同的执行顺序问题: pxf:delete 在它应该删除的文件写入磁盘之前被触发。似乎在 pxf:delete 上没有 p:input 可能。因此,先前将步骤显式连接到最后一步的策略似乎是不可能的。任何想法如何强制 pxf:delete 等待?

(以下问题已修改,对混乱感到抱歉)

xproc 看起来像这样:

0 投票
2 回答
1137 浏览

xml - 使用 xslt 2.0 拆分 XML 并删除空属性

我想从 xml 中删除空属性,还需要根据特定元素对其进行拆分。我创建了两个 xsl 用于分别拆分和删除空属性,它工作正常。但我需要将这两个 xsl 组合起来,以便在删除空属性后,需要根据特定元素拆分 xml。

删除属性 xslt:

拆分 XSLT:

输入 XML:

output_one xml:

输出+_two Xml:

输出应该是两个单独的 xml 文件,其中应该有拆分的 xml 部分,并且需要删除空属性。

我已经尝试使用 Apply-templates、include 和 xml 管道,但我无法让它工作。

任何帮助将不胜感激。

0 投票
1 回答
158 浏览

xml - XProc:设置输出语言

我有一个 XSL 样式表,它在给定的语言环境中格式化日期。当我从 Oxygen 运行样式表时,输出如预期的那样是德语。当我对 saxon9he 或 xproc 使用命令行时,输出为英文。我想用德语代替。

源(任何源文件都可以)source.xml

XSL 文件transformation.xsl

和 XProc 文件 ( showdate.xpl):

这就是我从 Mac 终端运行 xproc 文件的方式:

结果是这样的:

而我想拥有

如何使用 xproc/calabash 获得我想要的结果?

0 投票
3 回答
485 浏览

xml - 使用 XProc 将 xml 文档的每个节点保存为文件

我得到了一个具有以下结构的 xml 文档

我想用结果创建一个 xproc 管道:

  • file1.txt 与 content1
  • file2.txt 与 content2
  • ...
  • fileN.txt 与 contentN

我的第一种方法是:

但是我得到了一个 DX0006 错误。

有人可以帮我吗?