웹 서비스 설명 언어 도구(Wsdl.exe)
웹 서비스 설명 언어 도구는 XML Web services 및 XML Web services 클라이언트에서 사용할 수 있는 코드를 WSDL 계약 파일, XSD 스키마 및 .discomap 검색 파일로부터 생성합니다.
wsdl [options] {URL | path}
인수 | 설명 |
---|---|
URL |
WSDL 계약 파일(.wsdl), XSD 스키마 파일(.xsd) 또는 검색 문서(.disco)의 URL입니다. .discomap 검색 문서의 URL은 지정할 수 없습니다. |
path |
로컬 WSDL 계약 파일(.wsdl), XSD 스키마 파일(.xsd) 또는 검색 문서(.disco 또는 .discomap)의 경로입니다. |
옵션 | 설명 |
---|---|
/appsettingurlkey: key 또는 /urlkey: key |
코드를 생성할 때 URL 속성의 기본값을 읽는 데 사용할 구성 키를 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <appSettingUrlKey> 요소이며 문자열을 포함합니다. |
/appsettingbaseurl: baseurl 또는 /baseurl: baseurl |
URL 부분을 계산할 때 사용할 기본 URL을 지정합니다. 이 도구는 baseurl 인수에 대한 상대 URL을 WSDL 문서의 URL로 변환하여 URL 부분을 계산합니다. /appsettingurlkey 옵션도 함께 지정해야 합니다. /parameters 옵션을 사용하는 경우 이 값은 <appSettingBaseUrl> 요소이며 문자열을 포함합니다. |
/d[omain]:domain |
인증이 필요한 서버에 연결할 때 사용할 도메인 이름을 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <domain> 요소이며 문자열을 포함합니다. |
/l[anguage]:language |
생성된 프록시 클래스에 사용할 언어를 지정합니다. CS(C#; 기본값), VB(Visual Basic), JS(JScript) 또는 VJS(Visual J#)를 언어 인수로 지정할 수 있습니다. System.CodeDom.Compiler.CodeDomProvider 클래스를 구현하는 클래스의 정규화된 이름을 지정할 수도 있습니다. /parameters 옵션을 사용하는 경우 이 값은 <language> 요소이며 문자열을 포함합니다. |
/n[amespace]:namespace |
생성된 프록시 또는 템플릿의 네임스페이스를 지정합니다. 기본 네임스페이스는 전역 네임스페이스입니다. /parameters 옵션을 사용하는 경우 이 값은 <namespace> 요소이며 문자열을 포함합니다. 이 요소는 매개 변수 파일에 있어야 합니다. |
/nologo |
Microsoft 시작 배너를 표시하지 않습니다. /parameters 옵션을 사용하는 경우 이 값은 <nologo> 요소이며 true 또는 false를 포함합니다. |
/order |
파티클 멤버에 대해 명시적인 순서 식별자를 생성합니다. |
/o[ut]:filename or directoryname |
생성된 프록시 코드를 저장할 파일 또는 디렉터리를 지정합니다. 또한 이 파일을 만들 디렉터리를 지정할 수도 있습니다. 이 도구는 XML Web services 이름에서 기본 파일 이름을 파생시키며 생성된 데이터 집합을 서로 다른 파일에 저장합니다. /parameters 옵션을 사용하는 경우 이 값은 <out> 요소이며 문자열을 포함합니다. |
/parameters |
지정된 xml 파일에서 명령줄 옵션을 읽습니다. 이 옵션을 사용하여 Wsdl.exe 도구에 시간을 보상하는 여러 옵션을 전달합니다. 약식은 '/par:'입니다. 옵션 요소가 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 요소 안에 포함됩니다. 자세한 내용은 설명 부분을 참조하십시오. |
/parsableerrors |
언어 컴파일러에 사용되는 오류 보고 형식과 비슷한 형식으로 오류를 표시합니다. /parameters 옵션을 사용하는 경우 이 값은 <parsableerrors> 요소이며 true 또는 false입니다. |
/p[assword]:password |
인증이 필요한 서버에 연결할 때 사용할 암호를 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <password> 요소이며 문자열을 포함합니다. |
/protocol: protocol |
구현할 프로토콜을 지정합니다. SOAP(기본값), HttpGet, HttpPost 또는 구성 파일에 지정된 사용자 지정 프로토콜을 사용할 수 있습니다. /parameters 옵션을 사용하는 경우 이 값은 <protocol> 요소이며 문자열을 포함합니다. |
/proxy: URL |
HTTP 요청에 사용할 프록시 서버의 URL을 지정합니다. 시스템 프록시 설정이 기본값으로 사용됩니다. /parameters 옵션을 사용하는 경우 이 값은 <proxy> 요소이며 문자열을 포함합니다. |
/proxydomain: domain 또는 /pd: domain |
인증이 필요한 프록시 서버에 연결할 때 사용할 도메인을 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <proxydomain> 요소이며 문자열을 포함합니다. |
/proxypassword: password 또는 /pp: password |
인증이 필요한 프록시 서버에 연결할 때 사용할 암호를 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <proxypassword> 요소이며 문자열을 포함합니다. |
/proxyusername: username 또는 /pu: username |
인증이 필요한 프록시 서버에 연결할 때 사용할 사용자 이름을 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <proxyusername> 요소이며 문자열을 포함합니다. |
/server |
계약을 기반으로 XML Web services에 대한 추상 클래스를 생성합니다. 기본값으로 클라이언트 프록시 클래스를 생성합니다. /parameters 옵션을 사용하는 경우 이 값은 "server"를 포함하는 <style> 요소입니다. |
/serverInterface |
ASP.Net 웹 서비스의 서버측 구현을 위한 인터페이스를 생성합니다. WSDL 문서의 각 바인딩에 대해 인터페이스가 생성됩니다. WSDL만으로 WSDL 계약을 구현합니다. 인터페이스를 구현하는 클래스의 메서드에 WSDL 계약을 변경하는 Web Service 특성이나 Serialization 특성을 포함시킬 수 없습니다. 약식은 '/si'입니다. /parameters 옵션을 사용하는 경우 이 값은 "servicerInterface"를 포함하는 <style> 요소입니다. |
/sharetypes |
형식 공유 기능을 설정합니다. 이 기능은 서로 다른 서비스 간에 공유되는 동일한 형식에 대해 단일 형식 정의를 사용하여 하나의 코드 파일을 만듭니다. 네임스페이스, 이름 및 와이어 서명이 동일해야 합니다. "http://" URL의 서비스를 명령줄 매개 변수로 참조하거나 로컬 파일에 대한 discomap 문서를 만듭니다. /parameters 옵션을 사용하는 경우 이 값은 <sharetypes> 요소이며 true 또는 false입니다. |
/u[sername]:username |
인증이 필요한 서버에 연결할 때 사용할 사용자 이름을 지정합니다. /parameters 옵션을 사용하는 경우 이 값은 <username> 요소이며 문자열을 포함합니다. |
/? |
이 도구의 명령 구문 및 옵션을 표시합니다. |
설명
.wsdl 파일은 WSDL(Web Service description language)이라는 XML 문법으로 작성된 XML 문서입니다. 이 파일은 XML Web services의 동작을 정의하고, 서비스와 상호 작용하는 방법을 클라이언트에 지시합니다.
XML Web services에 대한 검색 문서는 웹 서비스 검색 도구(Disco.exe)를 사용하여 얻을 수 있습니다. 이 도구에서 생성되는 .discomap, .disco, .wsdl 및 .xsd 파일은 Wsdl.exe에 대한 입력 파일로 사용할 수 있습니다.
Wsdl.exe를 사용하여 프록시 클래스를 만들면 지정한 프로그래밍 언어로 단일 소스 파일이 만들어집니다. 프록시 클래스의 소스 코드를 생성하는 과정에서 이 도구는 서비스 설명에 지정된 개체에 사용할 수 있는 최상의 형식을 결정합니다. 경우에 따라 개체를 형식으로 캐스팅하기 위해 최소 공분모 접근법을 사용하기도 합니다. 결과적으로 프록시 클래스에서 생성된 형식이 개발자가 원하거나 예상하는 형식이 아닐 수 있습니다. 예를 들어, Wsdl.exe는 서비스 설명에서 ArrayList 형식을 만나면 생성된 프록시 클래스에 Object 배열을 만듭니다. 정확한 개체 형식이 캐스팅되도록 하려면 생성된 프록시 클래스가 포함된 파일을 열고 잘못된 개체 형식을 예상되는 개체 형식으로 변경해야 합니다.
- /parameters 옵션은 대부분의 명령 프롬프트 옵션에 해당하는 요소를 포함하는 파일을 지정합니다. 일부 명령 프롬프트 옵션은 /parameters 파일 형식으로만 사용할 수 있습니다.
/parameters 옵션에서 지원하는 XML 파일 형식은 외부 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 요소 내에 있는 일련의 요소입니다. 명령 프롬프트 값이 지정되었는데 다른 옵션이나 값을 포함하는 /parameters 파일이 사용되면 명령 프롬프트에서 지정된 값이 사용됩니다. <wsdlParameters xmlns="https://microsoft.com/webReference/"> 요소에는 <nologo> 요소, <parsableerrors> 요소 및 <sharetypes> 요소가 있어야 합니다.
여러 옵션이 <verbose> 요소를 포함해야 하는 <webReferenceOptions> 요소의 자식 요소로 전달됩니다. **<webReferenceOptions>**의 다른 자식 요소는 다음과 같습니다.
<style>. "client", "server" 또는 "serverInterface"를 포함합니다.
<schemaImporterExtension>. <type> 요소를 임의의 수만큼 포함합니다.
<codeGenerationOptions>. 공백으로 구분한 다음과 같은 문자열 집합을 사용할 수 있습니다.
"properties"
"newAsync"
"oldAsync"
"order"
"enableDataBinding"
/parameters 옵션에 대한 데모는 예제 부분을 참조하십시오.
예제
다음 명령은 XML Web services에 대해 C# 언어로 클라이언트 프록시 클래스를 만듭니다.
wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
다음 명령을 사용하여 지정된 URL에 위치한 XML Web services에 대해 C# 언어를 사용하여 클라이언트 프록시 클래스를 만듭니다. 클라이언트 프록시 클래스는 myProxyClass.cs
파일에 저장됩니다.
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
다음 명령을 사용하여 지정된 URL에 위치한 XML Web services에 대해 Microsoft Visual Basic 언어를 사용하여 클라이언트 프록시 클래스를 만듭니다. 클라이언트 프록시 클래스는 myProxyClass.vb
파일에 저장됩니다.
wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
다음 예제 코드에서는 명령 프롬프트에서 URL 인수와 함께 사용할 수 있는 필수 요소만 작성된 기본 /parameters WSDL 파일을 보여 줍니다.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
</wsdlParameters>
WSDL 문서는 아래 코드 예제에서처럼 <documents> 요소를 사용하여 /parameters WSDL 파일에 추가됩니다. <document> 요소는 <documents> 요소 내에서 횟수에 제한 없이 사용할 수 있습니다.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
<documents>
<document>https://www.contoso.com/service.asmx?WSDL</document>
</documents>
</wsdlParameters>
다음 /parameters WSDL 파일에서는 <webReferenceOptions> 요소 내에서의 <codeGenerationOptions> 및 <style> 요소 사용을 보여 줍니다. 이 경우 이 파일은 프록시 코드에 새로운 스타일의 데이터 바인딩을 사용할 수 있도록 하고 스키마 가져오기 확장 프로그램을 지정하며 출력이 간단해야 하고 Wsdl.exe가 클라이언트 프록시를 만들어야 함을 지정합니다.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
<documents>
<document>https://www.contoso.com/service.asmx?WSDL</document>
</documents>
<webReferenceOptions>
<verbose>false</verbose>
<codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
<schemaImporterExtension>
<type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>
</schemaImporterExtensions>
<style>client</style>
</webReferenceOptions>
</wsdlParameters>
참고 항목
참조
.NET Framework 도구
웹 서비스 검색 도구(Disco.exe)
SDK 명령 프롬프트
개념
XML Web Service 프록시 만들기
XML Web Service 설명
XML Web Services 개요