2017-11-01 14 views
0

반복 요소의 배열이 아닌 XML 요소에 name="xxxxxx" 속성을 추가하는 데 성공합니다.XMLNS 용 XMLNSC에서 속성을 XML 배열로 설정

예를 들어, 나는> 다음 줄에 A 원소 <Broker name="xxxxxx"를 만들 수 있습니다

SET OutputRoot.XMLNSC.SystemDetails.BrokerDetails.Broker.(XMLNSC.Attribute)name = 
FIELDVALUE(InputRoot.XMLNSC.broker.(XMLNSC.Attribute)name); 

을 그리고 다음 줄에 XML 요소의 배열을 만들 수 있습니다

SET OutputRoot.XMLNSC.SystemDetails.BrokerDetails.Servers.Server[] = 
    SELECT ITEM FIELDVALUE(A.(XMLNSC.Attribute)name) 
    FROM InputRoot.XMLNSC.broker.executionGroups.executionGroup[] AS A; 

제공 :

하지만 두 가지 방법을 결합하여 원하는 것을 만들 수 없습니다. 다음 :

<SystemDetails> 
    <BrokerDetails> 
      <Broker name="xxxxxx" /> 
      <Servers> 
       <Server name="xxx1" /> 
       <Server name="xxx2" /> 
       <Server name="xxx3" /> 
       <Server name="xxx4" /> 
      </Servers> 
    </BrokerDetails> 
</SystemDetails> 

어떤 도움을 주시면 감사하겠습니다.

+0

생각해보십시오. 실행 그룹 요소 (예 : FOR 루프)를 반복하고 SET에 의해 해당 서버 요소를 수동으로 생성하면됩니다. 선택의 출력 형식을 변경할 방법이 없습니다. –

답변

1

하나의 select 명령문으로 출력을 생성 할 수는 없지만 2 개의 출력을 사용할 수 있습니다.

SET OutputRoot.XMLNSC.SystemDetails.BrokerDetails.Broker.(XMLNSC.Attribute)name = 
    SELECT ITEM R.(XMLNSC.Attribute)name FROM InputRoot.XMLNSC.broker AS R; 

SET OutputRoot.XMLNSC.SystemDetails.BrokerDetails.Servers.Server[] = 
    SELECT FIELDVALUE(A.(XMLNSC.Attribute)name) AS (XMLNSC.Attribute)name FROM 
     InputRoot.XMLNSC.broker.executionGroups.executionGroup[] AS A; 

다음 결과를 얻는다.

<SystemDetails> 
    <BrokerDetails> 
     <Broker name="DEV.ADAP2B"/> 
     <Servers> 
      <Server name="JumpStart"/> 
      <Server name="SMUDGER"/> 
     </Servers> 
    </BrokerDetails> 
</SystemDetails> 

서버 목록과 함께 브로커 요소의 스칼라 값을 혼합 할 때 하나의 select 문에서 수행 할 수 있을지 확신하지 않습니다.