问题标签 [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.
xslt-1.0 - XProc: XD0001 如果非 XML 资源在步骤输出中生成或到达步骤输入,则为动态错误
要求: 是在输出xml上添加正确的Doctype声明【输入xml的根元素可以是chample或section元素】
输入 XML:chapter.xml
XSLT 文件:test.xsl:
- 样式表只是将输入 xml 复制到输出并在所有元素上添加 @sec
样式表将正确的 doctype 声明添加到输出 xml,因为输入 xml 根元素可以是 <chapter> 或 <section> 元素
/li>
预期输出.xml
使用任何 XSLT 引擎,转换工作都非常好,并且能够获得预期的输出
但是,如果转换是通过 XProc 完成的,我最终会出现以下错误。有人可以帮助解决此错误吗
err:XD0001 : XD0001 如果非 XML 资源在步骤输出中生成或到达步骤输入,则为动态错误。
XProc 文件:test.xpl
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
xml - 如何从 Java 以编程方式调用 XML Calabash
我找不到有关如何调用 XML Calabash(Xproc 实现)以从 Java 运行的示例或指示。要求很简单:
- 列表项 能够以编程方式指定输入和输出。
List item 能够同时工作,因为我们希望它是一个在 Jetty Server 中运行的进程
- 谢谢
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 代码:
xslt - XSLT 与 XProc - 所需类型的参数绑定
我正在尝试将调用 Saxon(8.9 版)的批处理文件转换为 XProc 管道(Calabash)。这是我的批处理调用:
参数 config 在样式表中以这种方式定义:
XProc 部分如下所示:
错误信息是这样的:
变量 $config 的值的必需项类型是 document-node();提供的值具有项目类型 xs:string
我知道该<p:exec>
步骤,但我不想使用它,因为稍后将由其他 XSLT 转换生成配置文件。它也应被其他 XProc 步骤重用。
是否可以使用正确的参数类型调用 XSLT 样式表?谢谢你的帮助!
java - 从代码运行 Calabash XML
几天前我下载了 Calabash XML,并在命令提示符下轻松地运行它。然后我尝试从 Java 代码运行它,我注意到没有 API(例如 Calabash 主方法非常庞大,到处都有代码调用)。为了让它工作非常混乱,因为我必须将大块从 main 方法复制到包装类,并从 System.out 转移到字节数组输出流(并最终进入字符串),即
...
...
性能似乎非常非常慢,例如我运行了一个简单的过滤器 1000 次......
平均每次花费 17 毫秒,这看起来并不多,但我的 Spring REST 控制器调用 Mongo DB 和加密调用等平均需要 3/4 毫秒。
从代码运行 Calabash 时有人遇到过这种情况吗?我可以做些什么来加快速度吗?
例如,我每次都会调用它 -
这可以创建一次并重复使用吗?感谢任何帮助,因为我不想花钱来使用 Calamet,但真的想让 Xproc 从代码工作到可接受的性能。
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 看起来像这样:
xml - 使用 xslt 2.0 拆分 XML 并删除空属性
我想从 xml 中删除空属性,还需要根据特定元素对其进行拆分。我创建了两个 xsl 用于分别拆分和删除空属性,它工作正常。但我需要将这两个 xsl 组合起来,以便在删除空属性后,需要根据特定元素拆分 xml。
删除属性 xslt:
拆分 XSLT:
输入 XML:
output_one xml:
输出+_two Xml:
输出应该是两个单独的 xml 文件,其中应该有拆分的 xml 部分,并且需要删除空属性。
我已经尝试使用 Apply-templates、include 和 xml 管道,但我无法让它工作。
任何帮助将不胜感激。
xml - XProc:设置输出语言
我有一个 XSL 样式表,它在给定的语言环境中格式化日期。当我从 Oxygen 运行样式表时,输出如预期的那样是德语。当我对 saxon9he 或 xproc 使用命令行时,输出为英文。我想用德语代替。
源(任何源文件都可以)source.xml
:
XSL 文件transformation.xsl
:
和 XProc 文件 ( showdate.xpl
):
这就是我从 Mac 终端运行 xproc 文件的方式:
结果是这样的:
而我想拥有
如何使用 xproc/calabash 获得我想要的结果?
xml - 使用 XProc 将 xml 文档的每个节点保存为文件
我得到了一个具有以下结构的 xml 文档
我想用结果创建一个 xproc 管道:
- file1.txt 与 content1
- file2.txt 与 content2
- ...
- fileN.txt 与 contentN
我的第一种方法是:
但是我得到了一个 DX0006 错误。
有人可以帮我吗?