SOAP isteği iletisi yapısı
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Sağlanan proxy sınıflar yerine kendi SOAP istekleri oluşturmak için SOAP istemciniz isterseniz Visual Studio 2005, aşağıdaki ileti biçimi kullanması gerekir.
Saklı yordamlar ve kullanıcı tanımlı türler için SOAP isteği ileti biçimi
Aşağıdaki örnek, örneğine gönderilen tipik bir SOAP isteği göstermektedir. SQL Server. SOAP iletisindeki GetCustomerInfo işlem istendi. Not yalnızca HTTP üstbilgisinin bir parçası gösterilmiştir.
POST /url HTTP/1.1
Host: HostServerName
Content-type: text/xml; charset=utf-8
Content-length: 350
SoapAction: http://tempUri.org/GetCustomerInfo
...
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCustomerInfo xmlns="http://tempUri.org/">
<CustomerID>1</CustomerID>
<OutputParam />
</GetCustomerInfo>
</soap:Body>
</soap:Envelope>
HTTP üstbilgisi
Önceki değeri koduna SoapAction HTTP üstbilgisi alan tarafından kendi ad öncesinde yöntem adıdır. Bu değer yöntem ve ad kullanılarak oluşturulan bitiş noktasına eklenen değeridir. SON NOKTA OLUŞTURUN.Isteğe bağlı bir alan olduğunu unutmayın.The Host HTTP header alan identifies the server to which the HTTP request is sent.
<SOAP: Zarf> Öğe
SOAP isteği ayrıntılarını dahil <Body> SOAP zarfını öğe. Önceki örnek istekleri GetCustomerInfo yöntem. The xmlns öznitelik in <GetCustomerInfo> is the same namespace that is specified for this yöntem you created the endpoint by using CREATE ENDPOINT. Saklı yordam ve ad alanı hakkında daha fazla bilgi için bkz: Yerel XML Web Hizmetleri istekleri gönderme için örnek uygulamalar. Alt öğeleri yöntem aşağıdaki parametreleri geçirildi <GetCustomerInfo> Öğe:
The <CustomerID> element that has value 1 is the input parameter
The <OutputParam> element is the output parameter.
Giriş parametresi işleme
Giriş parametreleri aşağıdaki şekillerde yönetilir:
Değer bir SOAP yöntem bir girdi parametresini gerektirir ve bu parametre SOAP isteğine dahil, geçirilen için adlı saklı yordam.saklı yordam içinde tanımlanan varsayılan eylem oluşur.
Bir girdi parametresi bir SOAP gerektirdiğine ve bu parametre istekte bulunan, ancak kendisine atanan değer, parametre saklı yordamını boş bir dize değeri geçirilir.NULL unutmayın.
Bir SOAP işlemi bir girdi parametresini gerektirir ve null değer bu parametre için göndermek istediğiniz, yüklemeniz gerekir, bir xsi:nil için öznitelik "true" SOAP isteğinde. Örneğin:
<GetCustomerInfo xmlns="http://tempUri.org/" > <CustomerID xsi:nil="true" /> <OutputParam /> </GetCustomerInfo>
Içinde Visual Studio 2005, dize değişkenleri için NULL değerleri geçirdiğinizde, bu oluşturur xsi: nil = "true" öznitelik SOAP isteğindeki.Ancak, zaman, parametrelerin türü NULL değerleri gibi geçir integer ve float (değer türleri) Visual Studio 2005 oluşturma değil xsi: nil = "true" öznitelik; bunun yerine, bu parametreler için varsayılan değerleri sağlar, örneğin, 0tamsayı 0.0 için türlerifloat türleri, bir şekilde devam eder.Bu tür bir parametre NULL değerleri geçirmek istiyorsanız, bu nedenle, SOAP iletisinin uygulamanızda kullanarak oluşturmalısınız xsi: nil = "true" özniteliği.Daha fazla bilgi için, bkz. Kuralları ve sınırlamaları yerel XML Web Hizmetleri
Parametreleri üzerinde çeşitli özellikleri sağlar.Bu konuda daha sonra gösterildiği BIR tablo, ad hoc SQL sorguları için istekte bulunduğunuzda, belirleyebileceğiniz çeşitli özellikleri listeler.Bu tablo için belirttiğiniz tüm özellikleri bir <Değer> düğüm, RPC yöntem parametre düğümlerde belirtilebilir.
Geçici SQL sorguları isteme, SOAP isteği ileti biçimi
Ad hoc SQL sorgusu yürütme bir SOAP isteği gönderdiğinizde, çağırmalısınız SQLBatch yöntem ve sorguları ve tüm parametreler gerekli olabilir.
HTTP SOAP isteği çağrıları aşağıdaki örnek sqlbatch yöntem. Not yalnızca HTTP üstbilgisinin bir parçası gösterilmiştir.
POST /url HTTP/1.1
Host: HostServerName
Content-type: text/xml; charset=utf-8
Content-length: 656
SoapAction: https://schemas.microsoft.com/sqlserver/2004/SOAPsqlbatch
...
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<sqlbatch xmlns="https://schemas.microsoft.com/sqlserver/2004/SOAP">
<BatchCommands>
SELECT EmployeeID, FirstName, LastName
FROM Employee
WHERE EmployeeID=@x
FOR XML AUTO;
</BatchCommands>
<Parameters>
<SqlParameter Name="x" SqlDbType="Int" MaxLength="20"
xmlns="https://schemas.microsoft.com/SQLServer/
2001/12/SOAP/types/SqlParameter">
<Value xsi:type="xsd:string">1</Value>
</SqlParameter>
</Parameters>
</sqlbatch>
</soap:Body>
</soap:Envelope>
HTTP üstbilgisi
HTTP üstbilgisinde dikkat SoapAction Yöntem adı (HTTP üstbilgi alan değeri olansqlbatch) istemci SQL sorguları belirlemek için kullanır. Bu üstbilgi isteğe bağlı olduğunu unutmayın.
<SOAP: Zarf> Öğe
SOAP isteği ayrıntıları görünür <Body> Öğe. SOAP <Body> yalnızca bir alt öğe (öğe vardır<sqlbatch>), ve, istenen yöntem tanımlar. Öğesi içinde tanımlanan bir ad yeri olan sqlbatch Operasyon tanımlanır. Bu öğe, alt öğeleri vardır:
The <BatchCommands> element specifies the query, or queries separated by semicolons (;), to yürütmek.
The <Parameters> element provides an optional list of parameters.Önceki örnek istek zarfa koyarak sorguyu geçirilen tek bir parametre yok.SOAP iletisi olarak eklenen her parametreyi bir <SqlParameter> alt öğe<Parameters> Öğe. Parametreler geçirmeden içinde en az parametre adı (geçmelidirName öznitelik <SqlParameter> öğe) ve parametre değer ()<Value> alt öğe <SqlParameter> öğe).
Beklenmeyen dönüştürmeleri önlemek için , yapabilecekleriniz çok parametre bilgilerini sağlar.Aşağıdaki tablo için belirlediğiniz ek parametre özellikleri listeler <SqlParameter> Öğe. Ayrıca bazı için bu kısıtlamalar belirtebilirsiniz <Value> Öğe.
Her ikisi üzerinde de belirtilen esaslarını için <SqlParameter> ve <Value> öğe, belirttiğiniz zaman <Value> esaslarını olmalıdır, öğe https://schemas.microsoft.com/sqlserver/2004/sqltypes Aşağıdaki örnekte gösterildiği gibi ad:
<Value xsi:type="xsd:string" sqltypes:maxLength="100" xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes">1</Value>
Parametre model |
Açıklama |
Belirtilen düğümde |
---|---|---|
Yön |
Parametrenin yönü (belirtir.Giriş, InputOutput).Giriş varsayılandır. |
<SqlParameter> |
LocaleID |
Windows yerel ayar için bir harmanlama karakter türlerini tanımlar.Eşdeğer LCID değerine göre COLLATIONPROPERTY iç döndürdü. |
<SqlParameter> <Value> |
maxLength |
Öznitelik <SqlParameter> öğe, en fazla uzunluk olan parametre değeri sağlar. Varsayılan değer 1'dir. |
<SqlParameter> <Değer> |
adı |
Öznitelik <SqlParameter> öğe parametre adı sağlar. |
<SqlParameter> |
outputRequested |
Çıkış Yayımla olup olmadığını belirtmek için parametre öğeler için uygulanabilir.Varsayýlan davranýþý bağlıdır parameterMode ister açık olsun, kullanılan veya varsayılan. öznitelik Ayarlamak "true" bir girdi parametresi bir hata üretecektir. |
<Value> |
duyarlık |
Bu öznitelik, <SqlParameter> öğe parametre değeri kesinliğini sağlar. Varsayılan değer 18'dir. |
<SqlParameter> <Değer> |
ölçek |
Bu öznitelik, <SqlParameter> öğe parametre değeri ölçeğini sağlar. Varsayılan değer 0'dir. |
<SqlParameter> <Değer> |
sqlCompareOptions |
Karakter türleri alfabe düzeni için kullanılacak harmanlama seçenekleri tanımlar.Bir enum ile eşleşen birleştirilebilir, değer olarak ComparisonStyle değeri tarafından COLLATIONPROPERTY iç döndürdü. |
<SqlParameter><Değer> |
sqlDbType |
Parametre türü belirtir. |
<SqlParameter> |
clrTypeName |
Used to specify CLR user-defined type arguments.clrTypeName can contain the three-part name. |
<SqlParameter> <Değer> |
useDefaultValue |
Bir parametre için varsayılan bir değer kullanılması gerektiğini gösterir.Parametre öğesi ya da listeyi veya Boole öznitelik, bunun yerine, atlanabilir useDefaultValue değeriyle"true" belirtilebilir.Bu özniteliğin varsayılan değeri "false" öğe varsa ve "true" öğesi atlanırsa. |
<SqlParameter> <Değer> |
XmlNamespace |
Ilişkili XML şema ad alanı belirtir xml parametre yazın. |
<SqlParameter> <Değer> |
xsi: type |
Değer türünü belirtir.Daha fazla bilgi için nasıl xsi: type için model eşlemeleriSQL Server Sistem veri türleri için bkz: Veri türü eşlemeler yerel XML Web Hizmetleri. |
<Değer> |
TypeName |
Used to specify user-defined type arguments.typename can contain the three-part name. |
<SqlParameter> <Değer> |