2013-06-06 4 views
0

내가 좋아하는 나에게 데이터를 반환하는 WSO2의 DSS 서비스를 호출하고이 페이로드 동적으로 만드는 방법 : 내 ResponseOfGetIdentifier에서 지금WSO2에서 ESB

<payloadFactory> 
      <format> 
       <p:GetIdentifier xmlns:p="http://tempuri.org/"> 
        <xs:ID xmlns:xs="http://tempuri.org/">$1</xs:ID> 
       </p:GetIdentifier > 
      </format> 
      <args> 
       <arg expression="get-property('ID')"/> 
      </args> 
     </payloadFactory> 
     <send receive="ResponseOfGetIdentifier"> 
      <endpoint key="IdentifierEP"/> 
     </send> 

:

<IdentifierCollection xmlns="http://tempuri.org/"> 
<Identifier> 
     <One>1</One> 
    <Two>2</Two> 
    <Three>3</Three> 
    </Identifier> 
</IdentifierCollection> 

내 ESB 코드가 DSS를 호출하려면 시퀀스 속성에있는 모든 데이터를 캡처하고 있습니다

내 dss 응답에는 하나의 itera 만 포함되어 있기 때문에 따라서 위의 코드 식별자 노드의 기 작동되지만 내 식별자 노드 수를 내 페이로드는 하나 개의 데이터를 취할 수 있기 때문에, 하나 이상의 즉

<IdentifierCollection xmlns="http://tempuri.org/"> 
<Identifier> 
     <One>1</One> 
    <Two>2</Two> 
    <Three>3</Three> 
    </Identifier> 
<Identifier> 
     <One>a</One> 
    <Two>b</Two> 
    <Three>c</Three> 
    </Identifier> 
</IdentifierCollection> 

때 그것은 두 번째 반복 데이터를 받아서 나에게 단 하나의 결과를 보여줍니다

<tns:ProductIdentifier xmlns:tns="http://globalArther.products.com"> 
    <IdentifierProducts> 
    <Product1>a</Product1> 
    <Product2>b</Product> 
    <Product3>c</Product3> 
    </IdentifierProducts> 
    </tns:ProductIdentifier> 

그러나 내가 원하는 내 응답으로 : 그래서 지금

<tns:ProductIdentifier xmlns:tns="http://globalArther.products.com"> 
     <IdentifierProducts> 
     <Product1>1</Product1> 
     <Product2>2</Product> 
     <Product3>3</Product3> 
     </IdentifierProducts> 
<IdentifierProducts> 
     <Product1>a</Product1> 
     <Product2>b</Product> 
     <Product3>c</Product3> 
     </IdentifierProducts> 
</tns:ProductIdentifier> 

내 질문에 내가 모든 iterat를 추가 할 즉, 내가 어떻게 내 페이로드 동적 즉을 할 수 할 수있는 방법입니다 내 페이로드의 이온. 답을 기다리고 있습니다. 미리 감사드립니다.

답변

1

페이로드는 정적입니다. 이를 위해서는 XSLT 조정자를 사용해야합니다. 즉, 반복 논리를 만들기 위해 XSLT 스크립트를 작성해야합니다.

관련 문제