2017-02-06 13 views
1

当我使用在我的XSLT文件下面,撒克逊当我运行通过CLI转化带有.htm扩展名的文件输出的xsl:输出媒体类型与所述命令行

<xsl:output method="html" 
     version="5.0" 
     doctype-system="about:legacy-compat" 
     encoding="UTF-8" 
     indent="yes" 
     media-type="text/html"/> 

然而并使用!media-type = text/html传递输出参数撒克逊输出带有xml扩展名的文件

下面是我使用的命令,我是否做错了什么?

java -jar /Users/Stephane/XSLT_DEV/saxon/saxon9he.jar -s:/Users/Stephane/XSLT_DEV/S1000D/xml/ -o:/Users/Stephane/XSLT_DEV/S1000D/html/ -xsl:$file cssPath='../xslt/assets' imagesPath='graphics/' !method='html' !version='5.0' !encoding='UTF-8' !indent='yes' !media-type='text/html'; 
+0

我猜CLI =命令行界面,不是通用语言基础结构。你让我感到困惑了一段时间。 –

+0

@MichaelKay确实请接受我对此混淆的道歉。 –

回答

0

自动生成的输出文件名只发生在一个特定的情况:在您使用命令行来处理输入文件的目录下生成的输出文件的目录。它根据xsl:output/@media-type的值作出决定,忽略命令行上提供的!media-type的任何值。没有特别的原因,但它就是这样。值将是“.xml”,“.html”或“.txt”。

在所有其他情况下,输出文件的名称正是您选择的名称。

+0

感谢您的回答,我想要做的是不使用元素,因为我需要将该文件另存为XML(用于QA目的)以及HTML(可视化)。我在Sublime Text中运行一个构建过程。当我从我的转换文件中删除元素并通过命令行使用!media-type时,Saxon将该文件保存为扩展名为.xml的文件,而不是.html –

+0

对不起,但这是它的工作方式。您始终可以拥有一个仅包含xsl:输出和xsl:import的虚拟顶级模块。 –

+0

谢谢。我没有考虑这样做,因为我已经有一个顶级域名文件与进口。我要改变我的文件架构来做到这一点。 –