기본 WSDL

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

SQL Server의 인스턴스에서 실행 중인 HTTP SOAP 끝점에 인수 문자열 wsdl이 전달되면 기본 WSDL이 반환됩니다. 예를 들면 다음과 같습니다. http://MyServer/MyEndpoint/sql?wsdl.

기본 WSDL 문서의 경우 매개 변수 요소는 WSDL sqltypes:type 매핑에서 SQL Server 시스템 데이터 형식 간의 형식 매핑을 포함하고 있습니다. 이러한 매핑에 대한 자세한 내용은 네이티브 XML 웹 서비스의 데이터 형식 매핑을 참조하십시오.

끝점에서 생성된 기본 WSDL 문서는 데이터 형식 매핑에 정의된 유형 중 하나를 참조하거나 그러한 유형의 하위 유형을 참조한 다음 추가 제한을 추가하여 매개 변수 유형을 지정합니다. 모든 문자열 및 이진 유형의 경우 끝점에서 반환된 기본 WSDL은 바이트 또는 문자 수를 지정하기 위한 XSD maxLength 패싯을 포함하는 하위 유형을 포함합니다.

(max) 지정자를 사용하여 선언된 가변 길이 유형에 대해서는 maxLength 패싯이 생성되지 않습니다. decimal 및 numeric 데이터 형식의 경우 기본 WSDL은 매개 변수의 전체 자릿수와 소수 자릿수를 설명하는 XSD totalDigitsfractionDigits 패싯을 포함하는 하위 유형을 생성합니다.

기본 WSDL의 SQL Server - 공용 언어 런타임 간 매핑

기본 WSDL 인스턴스에서는 SQL Server 데이터 형식을 Microsoft .NET Framework 2.0에 제공되어 있는 CLR(공용 언어 런타임) 형식으로 매핑할 수 있습니다. 일부 기본 제공 CLR 데이터 형식이 SQL Server 데이터 형식과 잘 정렬되지 않으므로 System.Data.SqlTypes 네임스페이스가 .NET Framework 2.0에서 제공됩니다. 이것은 그렇지 않으면 XSD 형식 내에서 매핑될 수 없는 SQL Server 데이터 형식 시스템의 패싯을 대부분 처리할 수 있는 관리되는 형식 시스템을 활성화합니다.

.NET Framework 2.0 릴리스의 경우 Web Services Definition Language Tool(Wsdl.exe)에 기본 WSDL 인스턴스에 대해 적절한 SQL Server - CLR 간 형식 매핑을 생성하기 위한 기본 제공 지원이 있습니다. 이 지원은 명령 프롬프트에서 또는 Visual Studio 2005 프로젝트에 웹 참조를 추가하여 Wsdl.exe을 사용할 때 사용할 수 있습니다.

이 형식 매핑 지원을 사용하여 생성된 WSDL 인스턴스에서 모든 SQL Server 데이터 형식은 특정 네임스페이스 URI(https://schemas.microsoft.com/sqlserver/2004/sqltypes) 및 해당 접두사(sqltypes)를 선언하고 사용하여 인코딩됩니다. 다음 표에서는 Wsdl.exe 도구를 통해 생성된 WSDL 인스턴스에서 **sqltype:**type 매핑이 해당 CLR 형식으로 매핑되는 방법을 보여 줍니다.

WSDL 형식 요소

CLR 형식

sqltypes:char

System.Data.SqlTypes.SqlString

sqltypes:nchar

System.Data.SqlTypes.SqlString

sqltypes:varchar

System.Data.SqlTypes.SqlString

sqltypes:nvarchar

System.Data.SqlTypes.SqlString

sqltypes:text

System.Data.SqlTypes.SqlString

sqltypes:ntext

System.Data.SqlTypes.SqlString

sqltypes:varbinary

System.Data.SqlTypes.SqlBinary

sqltypes:binary

System.Data.SqlTypes.SqlBinary

sqltypes:image

System.Data.SqlTypes.SqlBinary

sqltypes:timestamp

System.Byte[]

sqltypes:timestampNumeric

System.Int64

sqltypes:decimal

System.Data.SqlTypes.SqlDecimal

sqltypes:numeric

System.Data.SqlTypes.SqlDecimal

sqltypes:bigint

System.Data.SqlTypes.SqlInt64

sqltypes:int

System.Data.SqlTypes.SqlInt32

sqltypes:smallint

System.Data.SqlTypes.SqlInt16

sqltypes:tinyint

System.Data.SqlTypes.SqlByte

sqltypes:bit

System.Data.SqlTypes.SqlBoolean

sqltypes:float

System.Data.SqlTypes.SqlDouble

sqltypes:real

System.Data.SqlTypes.SqlSingle

sqltypes:datetime

System.Data.SqlTypes.SqlDateTime

sqltypes:smalldatetime

System.Data.SqlTypes.SqlDateTime

sqltypes:money

System.Data.SqlTypes.SqlMoney

sqltypes:smallmoney

System.Data.SqlTypes.SqlMoney

sqltypes:uniqueidentifier

System.Data.SqlTypes.SqlGuid

sqltypes:xml

System.Xml.XmlNode[]1

sqltypes:sqlDbType="Sql_Variant"

System.Object

sqltypes:sqlDbType="Udt"

System.Xml.XmlElement2

sqltypes:sqlDbType="Structured" 

System.Data.DataSet

1System.Xml.XmlNode 개체의 배열에 대한 클래스 래퍼로 매핑됩니다. 형식화되지 않은 XML 매개 변수에 대한 래퍼 클래스 이름은 xml이지만 래퍼 클래스는 XML 유형의 매개 변수에 대해 생성된 이름을 사용합니다.

2 생성된 이름을 사용하는 단일 System.Xml.XmlElement 개체의 래퍼 클래스로 매핑됩니다.

기본 WSDL의 xml 데이터 형식 처리 방법

기본 WSDL에서 xml 데이터 형식 매개 변수를 정의하면 이 매개 변수는 sqltypes:xml WSDL 데이터 형식으로 매핑됩니다. 이렇게 하면 추가 내용 또는 스키마 기반 유효성 검사 없이도 올바른 형식의 XML을 지정할 수 있습니다. 자세한 내용은 SQL Server에서 XML 구현을 참조하십시오.

xml 데이터 형식 매개 변수가 XML 네임스페이스에 바인딩된 경우 기본 WSDL 문서는 sqltypes:xml 형식에 대한 제한을 포함하는 <xsd:complexType> 요소를 생성합니다. XML 유형은 xsd:any 형식을 제한 규칙으로 지정합니다. 다음 예에 나와 있는 것처럼 이 제한은 processContents 특성이 해당 값을 strict로 설정하도록 지정하고 또한 namespace 특성을 지정하고 특성 값을 해당 XML 유형이 바인딩된 스키마 컬렉션과 연관된 해당 XML 네임스페이스의 목록으로 설정합니다.

<xsd:element name="xmlVal" minOccurs="1" maxOccurs="1" nillable="true">
    <xsd:complexType >
        <xsd:restriction base="sqltypes:xml">
             <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="strict" namespace="NS1 NS2 ...." /> 
        </xsd:restriction>
    </xsd:complexType>
</xsd:element>