WSDL 유효성 검증

WS-I 유효성 검증자를 사용하여 기본 프로파일에 대해 WSDL 정의를 점검할 수 있습니다.

WS-I 기본 프로파일에 대한 자세한 정보는 WS-I를 참조하고 특히 WS-I 기본 프로파일 문서를 참조하십시오.

WS-I 유효성 검증기를 사용하여 기본 프로파일에 대해 WSDL 정의를 확인할 수 있습니다. WS-I 기본 프로파일 버전 1.1을 참조하십시오.

다음 방법 중 하나로 유효성 검증자를 실행할 수 있습니다.
  • 워크벤치에서 특정 .wsdl 자원에 대해 수동으로 실행

    이 옵션을 사용하면 WS-I 준수 문제점을 조사하고 수정할 수 있습니다. 모든 유효성 검증 문제는 태스크 목록 오류 및 경고로 표시됩니다.

  • WSDL을 가져오거나 생성할 때 자동으로 실행

    메시지 모델 마법사를 사용하여 WSDL 정의를 가져올 수 있습니다.

프로파일의 준수 레벨을 설정하여 유효성 검증자의 작동을 제어할 수 있습니다.
  1. 환경 설정 > 웹 서비스를 선택하십시오.
  2. 서비스 정책을 클릭하고 프로파일 준수를 확장하십시오.
  3. 다음 프로파일 중 하나를 선택하십시오.
    • WS-I AP 준수 레벨(WS-I Attachments Profile 1.0)
    • WS-I SSBP 준수 레벨(WS-I Simple SOAP Binding Profile 1.0)
  4. 준수 레벨 선택:
    • 복구 불가능하지만 경고만 알리는 것으로 처리되는 오류에 대해 유효성 검증자를 실행하려면 준수 제안을 선택하십시오. 기본 설정입니다.
    • 복구 불가능으로 처리되는 오류 및 경고에 대해 유효성 검증자를 실행하려면 준수 필요를 선택하십시오.
    • 유효성 검증자를 실행하지 않으려는 경우 준수 무시를 선택하십시오.

AP 선택은 SSBP 필드에 자동 적용되므로 AP 선택이 무시로 설정되지 않는 한 무시를 명시적으로 선택할 수 없습니다.

다음 용어는 WSDL 정의의 3개의 큰 카테고리를 나타냅니다.
  • document-literal은 결합 style="document"use="literal"을 의미합니다.
  • rpc-literal은 결합 style="rpc"use="literal"을 의미합니다.
  • rpc-encoded은 결합 style="rpc"use="encoded"을 의미합니다.
다음은 선행 용어를 사용하는 경우의 일반적인 유효성 검증 문제점입니다.
WSDL이 rpc로 인코딩됨
use="encoded"가 포함된 WSDL이 WS-I를 준수하지 않아 작동상 문제점으로 이어질 수 있습니다. 제품의 벤더에 따라 예상 SOAP 페이로드(payload)에 대한 가정이 다를 수 있기 때문입니다.

WS-I: (BP2406) soapbind:body, soapbind:fault, soapbind:headersoapbind:headerfault의 사용 속성에 "literal" 값이 없습니다.

WSDL은 문서 리터럴이지만 하나 이상의 WSDL 부분 정의가 XML 스키마 유형을 참조합니다.
document-literal WSDL에서 SOAP 본문 페이로드(payload)는 해당하는 WSDL 부분에 의해 참조되는 XML 스키마 요소입니다.

요소 대신 유형이 지정되면 SOAP 페이로드(payload)가 모호할 수 있고(페이로드 이름이 정의되지 않음) 상호 운용성 문제점이 발생할 가능성이 높습니다.

WS-I: (BP2012) document-literal 바인딩은 요소 속성이 없는 메시지 부분 요소를 참조하는 soapbind:body 요소를 포함합니다.

WSDL이 rpc 리터럴이거나 rpc로 인코딩되지만 하나 이상의 WSDL 부분 정의가 XML 스키마 유형을 참조합니다.
rpc 스타일 WSDL에서 SOAP 본문 페이로드(payload)는 WSDL 조작 이름이고 그 하위는 해당 조작에 대해 지정되는 WSDL 부분입니다.

유형 대신 요소가 지정되면 SOAP 메시지 페이로드(payload)가 모호할 수 있고(페이로드(payload) 이름이 WSDL 부분 이름이거나 XML 스키마 요소 이름임) 상호 운용성 문제점이 발생할 가능성이 높습니다.

WS-I: (BP2013) rpc 리터럴 바인딩은 유형 속성이 없는 메시지 부분 요소를 참조하는 soapbind:body 요소를 포함합니다.

WSDL이 XML 스키마 유형을 참조하는 SOAP 헤더, headerfault 또는 결함 정의를 포함합니다.
rpc 스타일 WSDL에서 SOAP 본문은 위에서 설명한 대로 XML 스키마 유형을 통해 올바르게 정의됩니다.

그러나 SOAP 헤더 및 결함은 본문과 같은 방식으로 rpc 함수 호출에 해당하지 않습니다.

특히 헤더 또는 결함에 대한 '매개변수' 개념이 없고 모호하지 않도록 하려면 헤더 또는 결함이 항상 XML 스키마 측면에서 정의되어야 합니다. 실질적으로 WSDL의 헤더 및 결함 정의는 항상 document-literal입니다.

WS-I: (BP2113) soapbind:header, soapbind:headerfault 또는 soapbind:fault 요소는 "요소" 속성만 사용하여 정의되지 않는 wsd:part 요소를 참조합니다.

WSDL이 rpc 리터럴이거나 rpc로 인코딩되지만 조작에 대해 네임스페이스가 지정되지 않았습니다.
rpc 스타일 WSDL에서 SOAP 메시지 페이로드(payload)는 WSDL 바인딩의 일부로 지정되는 네임스페이스에 의해 규정된 WSDL 조작 이름입니다.

네임스페이스가 지정되지 않으면 SOAP 메시지 페이로드(payload)가 모호할 수 있고(페이로드(payload) 이름이 네임스페이스에 있거나 WSDL의 대상 네임스페이스와 같은 다른 네임스페이스를 사용하도록 기본값 지정되었을 수 있음) 상호 운용성 문제점이 발생할 가능성이 높습니다.

WS-I: (BP2020) rpc 리터럴 바인딩이 네임스페이스 속성이 없거나 절대 URI가 아닌 네임스페이스 속성 값을 가지는 soapbind:body 요소를 포함합니다.

WSDL에는 SOAP/JMS 바인딩이 포함됩니다.
WSDL이 SOAP/JMS 전송 URI를 사용하는 경우 WS-I 준수가 아닙니다. 엄격한 WS-I 유효성 검증을 사용하는 경우 오류가 표시됩니다. 엄격한 WS-I 유효성 검증을 사용 안함으로 설정하려면 > 환경 설정 > 통합 개발 > WSDL > 유효성 검증 을 클릭하고 WS-I BP 1.1: SOAP/JMS를 전송 URI로 허용을 선택하십시오. 기본적으로 엄격한 WS-I 유효성 검증은 사용 안함으로 설정됩니다.
다음 조치를 구현하면 웹 서비스 상호 운용성이 향상됩니다.
  • 가능한 경우 문서 스타일 WSDL을 사용하십시오.
  • rpc 스타일 WSDL이 필요한 경우 리터럴 인코딩을 사용하십시오.
  • rpc 인코딩된 WSDL을 사용해야 하는 경우 WSDL 조작 정의가 올바른 네임스페이스 속성에 의해 규정되는지 확인하십시오.