私の要件は、セカンダリ ポートで 1 つの XML ファイルといくつかの HTML ファイルを生成することです。XProc でいくつかのステップを構成しました。
サンプルコードは次のとおりです。
<p:xslt name="create-document">
<p:input port="stylesheet">
<p:document href="stylesheet.xsl" />
</p:input>
</p:xslt>
<p:for-each>
<p:iteration-source>
<p:pipe step="create-document" port="secondary" />
</p:iteration-source>
<p:store>
<p:with-option name="doctype-public" select="'-//W3C//DTD XHTML 1.0 Frameset//EN'" />
<p:with-option name="doctype-system" select="'http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd'" />
<p:with-option name="encoding" select="'UTF-8'" />
<p:with-option name="media-type" select="'text/html'" />
<p:with-option name="method" select="'xhtml'" />
<p:with-option name="omit-xml-declaration" select="'no'" />
</p:store>
</p:for-each>
ここでの問題は、HTML ファイルが正しく生成されることです。XML ファイルが生成されますが、XML コンテンツを表示できません。代わりに、すべてを HTML 形式で表示します。これは<p:store>
、上記のコード スニペットが原因です。
どのように2つの<p:store>
ステップがありますか?(1 つは HTML 用、もう 1 つは XML 用)