Standard-WSDL
Standard-WSDL (Web Services Description Language) wird zurückgegeben, wenn die Argumentzeichenfolge wsdl
an einen HTTP SOAP-Endpunkt übergeben wird, der für eine Instanz von SQL Server 2005 ausgeführt wird; Beispiel: http://MyServer/MyEndpoint/sql?wsdl
.
Für Standard-WSDL-Dokumente enthalten die Parameterelemente Typzuordnungen von den sqltypes:type-Zuordnungen von WSDL zu SQL Server 2005-Systemdatentypen. Informationen zu diesen Zuordnungen finden Sie unter Datentypzuordnungen in systemeigenen XML-Webdiensten.
Das Standard-WSDL-Dokument, das von einem Endpunkt generiert wird, gibt den Parametertyp durch einen Verweis auf einen der Typen an, die in Datentypzuordnungen definiert wurden, oder durch einen Verweis auf Untertypen dieser Typen. Anschließend werden außerdem noch Einschränkungen hinzugefügt. Für alle Zeichenfolgen- und binären Typen enthält das vom Endpunkt zurückgegebene Standard-WSDL einen Untertyp, der den maxLength-Aspekt von XSD für die Angabe der Anzahl von Bytes oder Zeichen umfasst.
Der maxLength-Aspekt wird nicht für Typen variabler Länge generiert, die mit dem (max)-Bezeichner deklariert werden. Für decimal- und numeric-Datentypen generiert das Standard-WSDL einen Untertyp, der die XSD totalDigits- und fractionDigits-Aspekte enthält, die die Genauigkeit und Dezimalstellen des Parameters beschreiben.
Zuordnungen von SQL Server- zu CLR-Datentypen für Standard-WSDL
Standard-WSDL-Instanzen enthalten Unterstützung für das Zuordnen von SQL Server-Datentypen zu CLR-Typen (Common Language Runtime), die in Microsoft .NET Framework 2.0 bereitgestellt werden. Da einige integrierte CLR-Datentypen SQL Server-Datentypen nicht gut zugeordnet werden können, wird der System.Data.SqlTypes-Namespace in .NET Framework 2.0 bereitgestellt. Auf diese Weise wird ein verwaltetes Typsystem ermöglicht, das insbesondere viele der Aspekte des SQL Server 2005-Datentypsystems verarbeiten kann, die anderweitig nicht den XSD-Typen zugeordnet werden können.
Für die Version .NET Framework 2.0 verfügt das WSDL-Tool (Wsdl.exe) über eine integrierte Unterstützung zum Generieren der geeigneten Datentypzuordnungen zwischen SQL Server und CLR für Standard-WSDL-Instanzen. Diese Unterstützung ist unabhängig davon verfügbar, ob Sie Wsdl.exe an der Eingabeaufforderung oder durch Hinzufügen eines Webverweises zu einem Visual Studio 2005-Projekt verwenden.
In den WSDL-Instanzen, die mithilfe dieser Typzuordnungsunterstützung generiert werden, werden alle SQL Server-Datentypen durch Deklarieren und Verwenden eines bestimmten Namespace-URIs (https://schemas.microsoft.com/sqlserver/2004/sqltypes) und des entsprechenden Präfixes (sqltypes) codiert. Die folgende Tabelle zeigt, wie **sqltype:**type-Zuordnungen in WSDL-Instanzen, die über das Tool Wsdl.exe generiert wurden, den entsprechenden CLR-Typen zugeordnet werden.
WSDL-Typelement | CLR-Datentyp |
---|---|
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 |
1 Wird einem Klassenwrapper für ein Array von System.Xml.XmlNode-Objekten zugeordnet. Die Wrapperklasse trägt für nicht typisierte XML-Parameter den Namen xml, verwendet jedoch einen generierten Namen für typisierte XML-Parameter.
2 Wird einer Wrapperklasse um ein einzelnes System.Xml.XmlElement-Objekt zugeordnet, das einen generierten Namen verwendet.
Verarbeitung des xml-Datentyps in Standard-WSDL
Wenn xml-Datentypparameter in Standard-WSDL definiert werden, werden sie dem sqltypes:xml-WSDL-Datentyp zugeordnet. Auf diese Weise kann beliebiges wohl geformtes XML angegeben werden, ohne dass eine zusätzliche Inhalts- oder schemabasierte Überprüfung erforderlich ist. Weitere Informationen finden Sie unter XML-Datentyp.
Für xml-Datentypparameter, die an einen XML-Namespace gebunden sind, generiert das Standard-WSDL-Dokument ein <xsd:complexType>-Element, das Einschränkungen für den sqltypes:xml-Datentyp enthält. Das typisierte XML gibt seinerseits den xsd:any-Typ als Einschränkungsregel an. Wie im folgenden Beispiel gezeigt, gibt diese Einschränkung ihrerseits das processContents
-Attribut an, wodurch der Wert auf strict
festgelegt wird. Außerdem wird das namespace
-Attribut angegeben und sein Wert auf eine Liste der entsprechenden XML-Namespaces festgelegt, die der Schemaauflistung zugeordnet sind, an die das typisierte XML gebunden ist.
<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>
Siehe auch
Verweis
Einfaches WSDL
Implementieren von benutzerdefinierter WSDL-Unterstützung