2017-07-25 3 views
0

私はJavaを初めて使用しています。私はCatch output stream of xsl result-document [同様のシナリオを持っているが、私は、HREFと基本パラメータとして渡すために何を理解していないのです。..saxon OutputURIResolverをJavaで実装するには?

マイXSLT(結果-文書)として、以下:

<xsl:template match="/" mode="create-text-file"> 
     <xsl:param name="book-name" tunnel="yes"/> 

     <xsl:result-document href="{$book-name}.xml" 
      doctype-public=" test" 
      doctype-system="test.dtd"> 
      <xsl:apply-templates/> 
     </xsl:result-document> 
    </xsl:template> 

別の:

<xsl:result-document href="{$book-name}.opf" 
          doctype-public="" 
          doctype-system="" 
          indent="yes"> 

      <xsl:apply-templates mode="#current"/> 
     </xsl:result-document> 

ブックの名前のようになっているパラメータ:あなたは私のwiを説明していただけます

<xsl:template match="document-node()"> 
     <xsl:variable name="book-name" select="tps:get-file-name(document-uri(/))"/> 

この結果 - 文書?

ありがとうございます。

答えて

0

OutputURIResolverはコールバックです。つまり、resolve()メソッドの実装を指定すると、Saxonは実装を呼び出します。だから、あなたはメソッドを呼び出さないので、ベースとhrefの引数として渡すべきものについて心配する必要はありません、サクソンは行います。通常、href引数は、xsl:result-documentへの呼び出しのhref属性の(展開された)値として供給され、ベース値は "基本出力URI"になります。デフォルト値は主出力として指定されたファイルです(コマンド行では-oオプション)。

+0

私はコマンドライン引数を使用していないときに、フォルダパスまたはカスタムロケーションをベースとして指定できますか?私が理解していることは、xslt zipパッケージを抽出した場合(私のシナリオによると)、OutputURIResolverはhref値を得ることです。 – user2490093

+0

s9apiインタフェースを使用する場合、 'XsltTransformer.setBaseOutputURI()'を使って基本出力URIを設定できます。 JAXPはXSLT 1.0用に設計されているため、JAXPには同等の機能はありません。 –