2014-01-17 2 views

답변

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 만 적용됩니다.

관련 문제