SOAPBinding.ParameterStyle.BARE 및 SOAPBinding.ParameterStyle.WRAPPED를 사용할 때 혼란 스럽습니다. 어떤 바인딩 스타일이 더 바람직한 지요. 차이점은 무엇입니까? 그들.SOAPBinding.ParameterStyle.BARE 및 SOAPBinding.ParameterStyle.WRAPPED를 사용하는 경우
1
A
답변
6
ParameterStyle.Bare 및 ParameterStyle.Wrapped는 요청 및 응답 메시지의 wsdl 정의에만 영향을줍니다.
예를 들어 우리는 2 개의 입력 "string1"과 "string2"가 있고 "rstring"으로 문자열을 반환하는 "test"메소드가있는 웹 서비스를 가지고 있습니다.
ParameterStyle.BARE 매개 변수의 이름은 wsdl에서 부분 이름으로 표시됩니다.
요청 메세지 :
<message name="test">
<part name="string1" element="tns:string1"/>
<part name="string2" element="tns:string2"/>
</message>
응답 메시지 :
하여 XSD 시험 및 testResponse에서<message name="testResponse">
<part name="rstring" element="tns:rstring"/>
</message>
는 아래와 같이 정의되고 직접 XSD에서 검사 및 시험 응답하에 요소를 참조하여 WSDL 엘리먼트 .
<xs:complexType name="test">
<xs:sequence>
<xs:element name="string1" type="xs:string" minOccurs="0"/>
<xs:element name="string2" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:complexType name="testResponse">
<xs:sequence>
<xs:element name="rstring" type="xs:string" minOccurs="0"/>
</xs:sequence>
귀하의 요청 및 응답 메시지 "결과"매개 변수 "를 출력으로 단일 입력에 싸여 될이 스타일에서
을 ParameterStyle.WRAPPED ". 그리고 그들은 xsd의 특정 요소를 그 안에있는 모든 요소에 대해 참조 할 것입니다.
요청 메시지 :
<message name="test">
<part name="parameters" element="tns:test"/>
</message>
응답 메시지 : XSD 테스트 및 testResponse에서
<message name="testResponse">
<part name="result" element="tns:testResponse"/>
</message>
은 상기와 동일하게 정의 될 것이다
, 위의 예에서<xs:complexType name="test">
<xs:sequence>
<xs:element name="string1" type="xs:string" minOccurs="0"/>
<xs:element name="string2" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:complexType name="testResponse">
<xs:sequence>
<xs:element name="rstring" type="xs:string" minOccurs="0"/>
</xs:sequence>
, 당신은 차이를 발견 할 수 있습니다. 이것이 wsdl에서 유일한 차이점입니다. 참고 : 위 예제에서는 문서 유형 비누 바인딩에 대해 설명합니다. RPC에서는 xsd가 포함되지 않으므로 RPC.Bare 만 적용됩니다.
관련 문제
- 1. SOAPBinding.ParameterStyle.BARE 대 SOAPBinding.ParameterStyle.WRAPPED : 요청시 더 적은 수의 매개 변수가 생성되었습니다.
- 2. 인터페이스를 사용하는 경우 및 추상 클래스를 사용하는 경우
- 3. wcf 및 asp.net을 사용하는 경우?
- 4. onResume 및 onPause를 사용하는 경우
- 5. soundpool 및 setOnLoadCompleteListener를 사용하는 경우
- 6. QNetworkAccessManager 및 QTcpServer를 사용하는 경우
- 7. Soapobject 및 SoapPrimitive를 사용하는 경우
- 8. /proc 및/dev를 사용하는 경우
- 9. xmlbeans를 사용하여 @WebService (SOAPBinding.ParameterStyle.BARE)를 JBoss EAP 6.1에 배포
- 10. 사용하는 경우?
- 11. C++에서 NSOperation 및 NSOperationQueue를 사용하는 경우
- 12. JFrame, JLabel 및 JPanel을 사용하는 경우
- 13. AWS CLI 및 EB CLI를 사용하는 경우
- 14. MPMoviePlayerController와 MPMovieScalingModeAspectFill 및 컨투어를 사용하는 경우
- 15. Runtime.maxMemory() 및 totalMemory()를 사용하는 경우
- 16. WPF에서 TemplateBinding 및 TemplatedParent를 사용하는 경우
- 17. sync 및 startAt에서 flexslider를 사용하는 경우
- 18. 모노로 mvc3 및 mysql.data를 사용하는 경우 예외
- 19. inorder, preorder 및 postorder traversal을 사용하는 경우
- 20. Silverlight에서 WriteableBitmap 및 BitmapImage를 사용하는 경우
- 21. OpenSession() 및 GetCurrentSession()을 사용하는 경우
- 22. Cancan 및 has_many 관계를 사용하는 경우 : create
- 23. JMS에서 동기 및 비동기 메시지를 사용하는 경우
- 24. sys.objects 및 sys.columns를 사용하는 경우 information_schema가 필요합니다.
- 25. doGet, doPost 및 service를 사용하는 경우
- 26. android에서 static 변수 및 sharedpreference를 사용하는 경우
- 27. 종속 관리 및 종속성을 사용하는 경우
- 28. Java Generics - "T"및 "?"를 사용하는 경우
- 29. Gradle에서 DomainObjectCollection 및 NamedDomainObjectCollection을 사용하는 경우?
- 30. ABAP에서 TYPE 및 LIKE를 사용하는 경우
http://stackoverflow.com/questions/5324051/webservices-bare-vs-wrapped와 중복되는 것으로 보입니다. – Suriya