2011-04-19 5 views
41

내부 XML을 전달하는 방법 :SOAP-UI는 -이 같은 웹 서비스에 요청을하고 SOAP-UI에서 매개 변수

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xxx="http://xxx.call/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <cotf:call_XXX> 
     <!--Optional:--> 
     <arg0> 
      <!--Optional:--> 
      <parameter1>some text</parameter1> 
      <!--Optional:--> 
      <parameter2>XML string</parameter1> 
     </arg0> 
     </cotf:call_XXX> 
    </soapenv:Body> 
</soapenv:Envelope> 

내가 알고 싶은 것은 내가 XML 문자열을 전달할 수있는 방법입니다 나는 XML 문자열을 넣으면 직접 요청 매개 변수로 XML 문자열 노드 ....

감사

+2

CDATA가 가능합니까? – Kangkan

답변

96

어느 쪽을지지 매개 변수 2 일부터 필요한 XML 개체를 인코딩 또는 CDATA를 사용합니다.

<arg0> 
    <!--Optional:--> 
    <parameter1>&lt;test>like this&lt;/test></parameter1> 
    <!--Optional:--> 
    <parameter2><![CDATA[<test>or like this</test>]]></parameter2> 
</arg0> 
+0

첫 번째 예제에서'>'를'>'으로 인코딩하지 않는 이유는 무엇입니까? '<' and '>'둘 다 인코딩해도 괜찮습니까? – ForguesR

+1

@ForguesR 인코딩'>'은 극한 상황에서만 필요합니다. 안전을 위해 콘텐츠의 일부인 경우 항상 인코딩하는 것이 좋습니다. 과거에는 일부 XML 유효성 검사기/파서가 유효한 XML 엔터티로 '>'을 인식하지 못했지만 아마도 쓰레기라고 말할 수 있습니다. https://www.w3.org/TR/1998/REC-xml-19980210 –

+0

CDATA 방법을 사용하는 경우 수신 측에서 특별한 것이 있습니까? 아니면 서비스에서 도움없이 올바르게 번역됩니까? – Bpainter

1

참고 :이 사람은 당신이 XElement로 paramater2를 선언하면 당신은 원시 XML

<test>or like this</test> 

로 보낼 수 있습니다 이전의 제공 .NET 프레임 워크 3.5 및

위의 단지 대안이다 데이터 유형

+0

'parameter2'가 XElement 데이터 유형이라는 원시 요청 (예 : Fiddler 또는 SoapUi 또는 Wizdler를 통해)을 지정하는 방법에 대한 아이디어가 있습니까? – drzaus

0

SoapObject.setInnerText("..."); 방법을 사용 요청 개체 CDATA를 전송합니다.

관련 문제