2014-11-04 3 views
2

SOAP 메시지에서 XML 문서를 보내는 가장 정확한 방법을 동료에게 안내하려고하지만 주제에 대해 전문가가 아닙니다. 그것은 CDATA 섹션을 사용하여 해결할 수있는 것처럼 보이지만 기본 gSOAP 시리얼 라이저는 '<'및 '>'을 모두 인코딩하여 '도움'합니다. 예를 들어SOAP 메시지 내에서 XML을 보내는 방법

, 우리가 보내려고 : 수신기도 gSOAP을 기반으로 한 경우

<xml> 
    <tag> 
     <content> 
      &lt;![CDATA[&lt;xml&gt;&lt;tag&gt;Text!&lt;/tag&gt;&lt;/xml&gt;]]&gt; 
     </content> 
    </tag> 
</xml> 

것은 우리가 투명하게 나타날 수 있습니다 실제로 보내지는 무엇

<xml> 
    <tag> 
     <content> 
      <![CDATA[<xml><tag>Text!</tag></xml>]]> 
     </content> 
    </tag> 
</xml> 

더 같이이다 CDATA 표식을 필요로하지 않고도 그걸 가지고 도망 갈 수는 있지만 그럴 수는 없습니다. 리시버는 일부 PHP 코드이므로 html_entity_decode를 사용하면 효과가있을 수 있지만 잘못된 느낌이 들거나 모든 경우에 작동하지 않을 수 있습니다.

필자는 필드에 다른 유형 (현재 'xsd : string')을 지정하여 벙어리 직렬 변환기를 사용하고 CDATA 마커와 내용을 보존하는 것이 해결책이 될 것으로 기대하고 있습니다.

나는 이것을 해결할 수있는 간단하고 정확한 방법이있는 경우 사내에서 휠 재발 명을 피하고 싶습니다.

답변