2011-04-19 14 views
41

içindeki xml geçmesine nasılSABUN-UI - Böyle bir web hizmeti için bir istek yapıyorum SABUN-arayüzünde parametresi

<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> 

Bilmek istiyorum ben bir XML dizesi geçirmek nasıl olduğunu Ben XML dizesi koyarsanız doğrudan o istek parametreleri olarak XML dizesi düğümleri ....

Teşekkür

+2

CDATA mümkün mü? – Kangkan

cevap

96

ya varsayar parametresi 2 beri gerekli XML girdileri kodlamak veya CDATA da kullanabilirsiniz.

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

İlk örnekte '>' '' >' ile kodlama neden yapılmıyor? Her iki <' and '> 'kodlamak tamam mı? – ForguesR

+1

@ForguesR Kodlama '>' sadece bazı aşırı durumlarda gereklidir. Güvenliğiniz için, her zaman içeriğin bir parçası olduğunda onu kodlamak iyi olabilir. Geçmişte, bazı XML geçerlilik denetleyicilerinin/ayrıştırıcılarının geçerli bir XML öğesi olarak > 'tanımamış olması muhtemeldir, ancak çöplükten bahsediyor olabilirim. https://www.w3.org/TR/1998/REC-xml-19980210 –

+0

Eğer CDATA yöntemini kullanırsak, alıcı ucunda özel bir ihtiyaç var mı, yoksa servis yardımı olmadan doğru bir şekilde çevrilecek mi? – Bpainter

1

NOT: Bu bir sen XElement olarak paramater2 bildirirseniz Çiğ xml

<test>or like this</test> 

olarak gönderebilirsiniz önceki sağlanan .NET framework 3.5 ve

Yukarıda yalnızca bir alternatiftir veri türü

+0

İşlenmemiş bir istekte (yani, Fiddler veya SoapUi veya Wizdler aracılığıyla) 'parametre2' XElement veri türü olarak nasıl belirtilir? – drzaus

0

CDATA'yı bir istek nesnesine göndermek için SoapObject.setInnerText("..."); yöntemini kullanın.

İlgili konular