XSLT - новая строка / возврат каретки не отображается при развертывании (Oracle SOA 11g)
У меня есть таблица стилей XSL, которая должна преобразовывать XML в простой текст с помощью преобразования Oracle SOA 11g BPEL. Преобразование простого текста работает нормально, но всякий раз, когда я пытаюсь добавить новую строку или возврат каретки, вывод текста не отражает это. Я пробовал несколько способов добавить разрыв строки, но ни один из них не сработал. Это 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
При развертывании композита я заметил, что XSLT в хранилище MDS игнорирует разрывы строк, 

и т. д. и просто закрывает <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, однако текстовый вывод по-прежнему не показывает разрывов строк...
1 ответ
Ах, я такой новичок.:s Я смог сделать это со следующим:
<xsl:variable name="newline" select="'
'" />
Это также будет правильно отображаться в хранилище MDS.