Oracle SOA 11g BPEL 変換を使用して XML をプレーン テキストに変換する XSL スタイル シートがあります。プレーン テキストの変換は正常に機能していますが、新しい行またはキャリッジ リターンを追加しようとすると、テキスト出力にそれが反映されません。改行を追加する方法をいくつか試しましたが、どれもうまくいきませんでした。これは、テスト目的で使用している XSLT です。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="urn:oracle:b2b:X12/V4010/850" version="1.0">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/a:Transaction-850">
<!-- New line -->
<xsl:variable name='newline'><xsl:text>
</xsl:text></xsl:variable>
<xsl:value-of select="a:Internal-Properties/a:Data-Structure/a:Property[@Name='InterchangeUsageIndicator']" />
<xsl:text>
</xsl:text>
<xsl:value-of select="$newline" />
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text>2000ITITM</xsl:text>
</xsl:template>
</xsl:stylesheet>
オンライン XSLT テスト ツールで試してみると、期待どおりの出力が得られます。
P
2000ITITM
コンポジットをデプロイすると、MDS リポジトリの XSLT が改行や s などを無視し、タグ

を閉じるだけであることに気付きました。<xsl:text/>
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="urn:oracle:b2b:X12/V4010/850" version="1.0">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/a:Transaction-850">
<xsl:variable name="newline">
<xsl:text/>
</xsl:variable>
<xsl:value-of select="a:Internal-Properties/a:Data-Structure/a:Property[@Name='InterchangeUsageIndicator']"/>
<xsl:text/>
<xsl:value-of select="$newline"/>
<xsl:text/>
<xsl:text/>
<xsl:text>2000ITITM</xsl:text>
</xsl:template>
</xsl:stylesheet>
そのため、次の出力が得られます。
P2000ITITM
改行文字を無視する理由がわからないので、ガイダンスをいただければ幸いです。
ご協力いただき、ありがとうございました。
編集:次のように連結しようとしました:
<xsl:value-of select="concat('36','
')"/>
<xsl:value-of select="concat('24','
')"/>
...MDSリポジトリで見るとそのまま表示されますが、テキスト出力にはまだ改行が表示されていません...