WSDL 사용

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

WSDL(Web Service Description Language)은 HTTP 끝점에서 노출되는 RPC 함수에 대한 웹 인터페이스 정의를 정의하며 끝점에 대한 SQL 일괄 처리 기능을 설명합니다. 클라이언트는 SQL Server 인스턴스에서 WSDL 응답을 요청한 후 이 응답을 사용하여 WSDL 형식을 지원하도록 구성된 HTTP 끝점을 통해 서버에 대해 RPC 및 SQL 일괄 처리 요청을 생성할 수 있습니다. WSDL 응답은 실제로는 요청 시 끝점과 관련된 RPC 함수를 바탕으로 동적으로 생성된 XML 문서입니다.

[!참고]

WSDL에 대한 배경 정보를 보려면 W3C(World Wide Web Consortium) 웹 사이트(http://www.w3c.org)에서 WSDL 1.1 사양을 참조하십시오.

WSDL을 지원하도록 구성된 HTTP 끝점에서는 WSDL 요청을 전송한 클라이언트에 응답하는 데 다음 WSDL 구성 중 하나를 사용하도록 지정할 수 있습니다.

  • 기본 WSDL

  • 사용자 지정 WSDL

기본 WSDL 옵션을 제공하도록 구성된 경우 SQL Server에서는 기본 또는 확장 WSDL과 단순 WSDL의 두 WSDL 형식을 지원합니다.

위의 WSDL 문서 모두 끝점에서 지원되는 메서드를 정의하지만 기본 WSDL은 XSD(XML 스키마)의 추가 기능을 사용하여 끝점에서 사용할 수 있거나 끝점에서 노출되는 메서드, 데이터 형식, 매개 변수 및 반환 값에 대해 보다 자세한 설명을 제공합니다.

단순 WSDL 형식은 기본 데이터 형식만 요구하는 매우 기본적인 XSD 스키마를 사용하며, 이전 버전 클라이언트와의 호환성을 위해 필요합니다. 기본 및 단순 WSDL 모두 특정 클라이언트에 맞는 적절한 WSDL 콘텐츠를 제공하지 않을 경우에는 필요에 맞게 사용자 지정한 WSDL 버전을 제공하도록 서버를 업데이트할 수 있습니다.

WSDL 응답은 WSDL 요청을 전송한 웹 서비스 클라이언트가 HTTP 끝점에 처음 연결할 때 SQL Server 인스턴스에서 생성 및 반환합니다.

SQL Server의 WSDL 지원 방법

끝점이 정의된 경우에는 해당 끝점에 대해 서버에서 WSDL의 웹 프로그래밍 가능한 기능을 정의하는 WSDL 응답을 생성 및 반환할지 여부를 지정하는 데 CREATE ENDPOINTTransact-SQL 문의 WSDL 인수가 사용됩니다. WSDL=NONE 값을 사용하여 끝점이 설정된 경우에는 서버에서 WSDL 응답을 반환하지 않습니다.

끝점을 만들 때 WSDL=DEFAULT를 지정하여 기본 WSDL 생성을 지정한 경우에는 서버에서 반환하는 WSDL의 형식이 HTTP 끝점 연결 시 클라이언트가 사용한 URL 문자열에 따라 달라집니다. 클라이언트는 다음 URL 형식 중 하나를 사용하여 WSDL을 요청할 수 있습니다.

  • 기본 WSDL

    http://server/endpoint_path?wsdl URL을 사용하여 끝점에 연결할 때 반환되는 확장 WSDL 응답의 완전한 버전입니다. 이 형식은 XSD 파생 형식을 사용하여 더 복잡한 SQL 형식에 대한 매핑을 지원합니다. 자세한 내용은 기본 WSDL을 참조하십시오.

  • 단순 WSDL

    모든 SQL Server 시스템 데이터 형식을 네이티브 XSD 형식에 매핑하는 기본 WSDL의 단순화된 버전입니다. http://server/endpoint_path?wsdlsimple을 URL로 사용하여 끝점에 연결할 때 반환됩니다. 자세한 내용은 단순 WSDL을 참조하십시오.

  • 사용자 지정 WSDL

    SQL Server 인스턴스가 반환하는 기본 또는 단순 WSDL 버전 모두 클라이언트에 적합하지 않은 경우에는 사용자 지정 WSDL을 지정할 수 있습니다. 이 옵션을 사용하려면 코드를 추가로 디자인 및 구현해야 합니다. 이 경우 HTTP 기반 쿼리에서 사용자 지정 WSDL 형식을 지정하는 클라이언트에 대해 사용자 지정 WSDL 콘텐츠를 생성 및 반환하는 데 저장 프로시저를 사용할 수 있습니다. 자세한 내용은 사용자 지정 WSDL 지원 구현을 참조하십시오.

WSDL 콘텐츠

WSDL(Web Services Description Language) 인스턴스는 WSDL 네임스페이스(https://schemas.xmlsoap.org/wsdl)를 명시하고 웹 서비스 집합을 네트워크 끝점 또는 포트의 모음으로 정의하는 루트 <definitions> 요소가 포함된 XML 문서입니다. 일반적인 WSDL 문서에는 다음과 같은 최상위 구조가 있습니다.

<wsdl:definitions>
  <wsdl:types>...</wsdl:types>
  <wsdl:message>...<wsdl:message/>
  <wsdl:portType>...</wsdl:portType>
  <wsdl:binding>...</wsdl:binding>
  <wsdl:service>...<wsdl:service>
<wsdl:definitions>

WSDL 형식을 간단하게 보여 주는 위 코드를 보면 알 수 있듯이 WSDL 문서 내의 주요 섹션을 나타내는 데 몇 가지 요소가 사용됩니다. 다음 표에서는 각 요소의 역할에 대해 간략하게 설명합니다.

요소

설명

wsdl:types

XSD(XML 스키마) 또는 비슷한 다른 데이터 형식 시스템을 사용하여 생성된 데이터 형식 정의에 대한 컨테이너 요소

wsdl:message

전달되는 메시지 데이터에 대한 정의. 메시지는 여러 부분으로 구성될 수 있고 각 부분의 형식이 서로 다를 수 있습니다.

wsdl:portType

하나 이상의 끝점에 의해 지원되는 일반적인 작업 집합

wsdl:binding

특정 포트 유형에 대한 구체적 프로토콜 및 데이터 형식 사양

wsdl:service

관련 끝점의 모음

WSDL 지원에 사용되는 시스템 저장 프로시저

다음 시스템 저장 프로시저는 SQL Server의 네이티브 XML 웹 서비스에 포함되어 기본 및 단순 WSDL 구현을 지원하고 WSDL에 대한 응답으로 호출됩니다.

  • sp_http_generate_wsdl_defaultcomplexorsimple

  • sp_http_generate_wsdl_defaultsimpleorcomplex

  • sp_http_generate_wsdl_complex

  • sp_http_generate_wsdl_simple

이 저장 프로시저를 실행하려면 public 역할의 멤버 자격이 필요합니다. 위의 각 저장 프로시저는 카탈로그를 쿼리하여 끝점을 통해 웹 메서드로 노출되는 다른 저장 프로시저에 대한 정보를 가져옵니다. 사용자는 이러한 웹 메서드 저장 프로시저에 대한 사용 권한만 가지고 있으면 됩니다. 자세한 내용은 웹에 SQL 프로그래밍 기능 제공을 참조하십시오.