2015-04-07 6 views
0

У меня есть таблица стилей XSL, которая должна преобразовывать XML в простой текст с использованием преобразования Oracle SOA 11g BPEL. Преобразование простого текста работает нормально, но всякий раз, когда я пытаюсь добавить новую строку или возврат каретки, вывод текста не отражает этого. Я попробовал несколько способов добавить разрыв строки, но ни один из них не сработал. Это XSLT, я использую для тестирования:XSLT - новая строка/перенос Возврат не отображается при развертывании (Oracle SOA 11g)

<?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>&#xd;</xsl:text> 
    <xsl:value-of select="$newline" /> 
    <xsl:text>&#xA;</xsl:text> 
    <xsl:text>&#13;</xsl:text> 
    <xsl:text>&#10;</xsl:text> 
    <xsl:text>2000ITITM</xsl:text> 

</xsl:template> 

</xsl:stylesheet> 

Когда я попробовать его в онлайн-инструмент тест XSLT, он дает выход, как ожидалось:

P 




2000ITITM 

Когда я раскрываю композит Я заметил, что XSLT в хранилище MDS игнорирует разрывы строк, &#xA с, и т.д., и только закрывает <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> 

и так, из-за этого, он просто Г VES мне следующий вывод:

P2000ITITM 

Я понятия не имею, почему это игнорируя символы новой строки, так что любые указания будут оценены.

Спасибо вам за помощь и время!


Edit: Я попытался конкатенации следующим образом:

<xsl:value-of select="concat('36','&#xA;')"/> 
<xsl:value-of select="concat('24','&#xD;')"/> 

... который показывает, как это когда я смотрю на него в хранилище МДС, однако выводимый текст еще не показывает никаких разрывов строк. ..

ответ

0

А я такой новичок. : s Мне удалось это сделать:

<xsl:variable name="newline" select="'&#xD;&#xA;'" /> 

Это будет отображаться правильно и в репозитории MDS.