0

XSLT 変換を行う必要がある WSO2 ESB プロキシ サービスに取り組んでおり、xml から値のセクションを取得し、別の .dsb ファイルの結果と結合します。

これは、以下の価値を持つ私の財産です

*<xslt key="conf:/input/proxy_input_transform.xslt"/>
<property name="DETAILS" expression="//QUARTERLY_DATA" />
<QUARTERLY_DATA>
<ROW>
<SAP_CUST_ID>0000905133</SAP_CUST_ID>
<AOC_FLAG>N</AOC_FLAG>
<LOB>AppleCare</LOB>...."

ただし、アウトシーケンスで .dbs ファイルを呼び出した後に xlst が実行されると、

   <xslt key="conf:/output/proxy_output_transform.xslt" >
      <property name="details" expression value="get-property('DETAILS')"/>
   </xslt>

以下のように、変換された xml で値を取得します。

&lt;QUARTERLY_DATA>
&lt;ROW>
&lt;SAP_CUST_ID>0000905133&lt;/SAP_CUST_ID>
&lt;AOC_FLAG>N&lt;/AOC_FLAG>
&lt;LOB>AppleCare&lt;/LOB>....

「<」が「<」に変更される理由がわかりません。誰かがこれに関する彼らの発見を与えることができますか? 注: XML タグの代わりに単一の値を持つプロパティから値を正常に取得できました。xml をメッセージ コンテキストに配置する際に、プロパティで型を「OM」にすると機能しました。これが私のプロキシサービスです

    <?xml version="1.0" encoding="UTF-8"?>
 <proxy xmlns="http://ws.apache.org/ns/synapse" name="TQS_SIST_BILLING_PCH_N" transports="https http" startOnLoad="true" trace="enable" statistics="enable">
    <target>
    <inSequence onError="conf:/tqs/common/FaultHandler_Seq.xml">
        <property xmlns:sist="http://sist.tqs.ist.apple.com/sist_request" name="IN_SAP_SOLD_TO" expression="//sist:ACC_BILLING_REQ_PCH_FLAG_N/sist:CUST_SRCH_INPUT/sist:SAP_SOLD_TO"/>
        <xslt key="conf:/tqs/sist/billing_pch_n/proxy_input_transform.xslt"/>
          <property name="REQUEST" value="DETAILS_REQUEST"/>
            <property name="SAP_CUST_ID" expression="//ACC_BILLING_REQ_PCH_FLAG_N" type="OM"/>
                <send>
                    <endpoint key="conf:/tqs/sist/billing_pch_n/ds_endpoint.xml"/>
                </send>
     </inSequence>
    <outSequence onError="conf:/tqs/common/FaultHandler_Seq.xml">
        <switch source="get-property('REQUEST')">
            <case regex="DETAILS_REQUEST">
                <log level="custom">
                    <property name="sequence" value="outSequence - response from Details Service"/>
                </log>
                <property name="DETAILS" expression="//QUARTERLY_DATA"/>
                <log level="custom" separator=",">
                    <property name="DETAILS------at entry level" expression="get-property('DETAILS')"/>
                </log>
                <enrich>
                    <source type="property" clone="true" property="SAP_CUST_ID"/>
                    <target type="body"/>
                </enrich>
                <log level="full">
                    <property name="sequence" value="outSequence - request for Summary Service"/>
                </log>
                <property name="REQUEST" value="SUMMARY_REQUEST"/>
                <send>
                    <endpoint key="conf:/tqs/sist/billing_pch_n/ds_summary_endpoint.xml"/>
                </send>
            </case>
            <case regex="SUMMARY_REQUEST">
                <log level="full">
                    <property name="sequence" value="outSequence  - response from Summary Service"/>
                </log>
                <log level="custom" separator=",">
                    <property name="DETAILS------222222" expression="get-property('DETAILS')"/>
                </log>
                <xslt key="conf:/tqs/sist/billing_pch_n/proxy_output_transform.xslt">
                    <property name="details" expression="get-property('DETAILS')"/>
                </xslt>
                <send/>
            </case>
        </switch>


    </outSequence>
</target>

4

2 に答える 2

0

問題は xslt にあると思います。「出力メソッド」をテキストとして使用できます。 output method="xml"

例えば: <xsl:output method="xml" version="1.0" encoding="UTF-8" />

于 2013-02-09T14:23:40.430 に答える