soap isteği iletisi yapısı
Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.
Sizin soap isterseniz istemci tarafından sağlanan proxy sınıfları kullanmak yerine, kendi soap istekleri oluşturmak için Visual Studio 2005, kullanmanız gerekir aşağıdaki ileti biçimleri.
Saklı yordamlar ve kullanıcı tanımlı türler için soap isteği ileti biçimi
Tipik bir örneği olarak gönderilen soap isteği aşağıdaki örnek gösterir SQL Server.soap iletisindeki GetCustomerInfo istenen operasyon.Not yalnızca http başlığının 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 kodda, değeri SoapAction http üstbilgi alan adıdır yöntem öncesinde tarafından kendi ad alan.Bu değer aynı yöntem kullanılarak oluşturulan bitiş noktasına eklenen ad alanı ise Bitiş noktası oluşturmak.Bu isteğe bağlı bir alan olduğuna dikkat edin.The Host HTTP header field identifies the server to which the HTTP request is sent.
<SOAP Zarfı:> öğesi
soap isteği ayrıntılarını dahil <Body> öğesi soap Zarfı.Önceki örneği istekleri GetCustomerInfo yöntem.The xmlns attribute in <GetCustomerInfo> is the same namespace that is specified for this method 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öndermek için örnek uygulamalar.Aşağıdaki yöntem parametreleri alt öğelerini geçilen <GetCustomerInfo> öğesi:
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:
soap yöntem bir girdi parametresini gerektirir ve bu parametre soap isteği dahil, hiçbir değer geçirilen adlı için saklı yordam.Tanımlanan varsayılan eylem saklı yordam oluşur.
soap yöntem bir girdi parametresini gerektirir ve bu parametre isteğinde ancak herhangi bir değer atanır, parametre için geçirilen saklı yordam ile boş bir dize değeri olarak.BOŞ olmadığını göz önünde bulundurun.
soap işlem bir girdi parametresini gerektirir ve bu parametresi için null değerini göndermek istiyorsanız, yapmanız gerekenler küme bir xsi:nil öznitelik için "true" soap isteği.Örneğin:
<GetCustomerInfo xmlns="http://tempUri.org/" > <CustomerID xsi:nil="true" /> <OutputParam /> </GetCustomerInfo>
De Visual Studio 2005, dize değişkenleri için null değerleri geçirdiğinizde bu oluşturur xsi: nil = "true" soap istek öznitelik.Ancak ne zaman geçirmek parametreleri türleri için null değerleri gibi integer ve float (değer türleri), Visual Studio 2005 üretmek xsi: nil = "true" öznitelik; Bunun yerine, bu parametreler için varsayılan değerleri sağlar; Örneğin, 0 tamsayý türleri için 0.0 float türleri, böyle devam eder.Bu tür parametreleri için null değerleri geçirmek istiyorsanız, bu nedenle, soap iletisi uygulamanızda kullanarak oluşturmalısınız xsi: nil = "true" öznitelik.Daha fazla bilgi için bkz. Yönergeleri ve yerel xml Web Hizmetleri'ndeki kısıtlamaları
Parametreler üzerinde çeşitli özellikleri sağlar.Bu konunun ilerleyen bölümlerinde gösterilen tablo ad hoc sql sorguları istediğinde, belirleyebileceğiniz çeşitli özellikleri listeler.Bu tablo, belirlediğiniz için tüm özellikleri bir <değeri> rpc yöntem parametre düğüm. düğüm belirtilebilir
Ad Hoc sql sorguları isterken, soap isteği ileti biçimi
Ad hoc sql sorgu yürütme için soap isteği gönderdiğinizde, çağırması gerekir sqlbatch yöntem ve sorgular ve hangi Parametreler gerekli olabilir.
Aşağıdaki örnek http soap isteği çağrıları sqlbatch yöntem.Not yalnızca http başlığının 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 http üstbilgi alan değerini yöntem adıdır (sqlbatch) istemci sql sorguları. belirtmek için kullandığıBu başlığı isteğe bağlı olduğunu unutmayın.
<SOAP Zarfı:> öğesi
soap isteği ayrıntıları görünür <Body> öğesi.soap <Body> öğesi yalnızca bir alt öğeye sahip (<sqlbatch>), istenen yöntem tanımlar ve.Öğesinde tanımlanan ad alanı nerede olduğunu sqlbatch işlem tanımlanmış.Bu öğe, alt öğe vardır:
The <BatchCommands> element specifies the query, or queries separated by semicolons (;), to execute.
The <Parameters> element provides an optional list of parameters.Önceki örnek istek zarfına Query'ye geçilen tek bir parametre yoktur.soap iletisi olarak eklenen her parametre bir <SqlParameter> alt öğesi<Parameters> öğesi.Parametreleri iletmek de, en azından parametre adı geçmesi gereken (Name öznitelik, <SqlParameter> öğesi) ve parametre değeri (<Value> alt öğesi <SqlParameter> öğe).
Beklenmeyen dönüşümleri önlemek için yapabilirsiniz kadar parametre bilgilerini sağlar.Aşağıdaki tablo için belirtebileceğiniz ek parametre özellikleri listeler <SqlParameter> öğesi.Bazıları için bu özellikleri de belirtebilirsiniz <Value> öğesi.
Hem belirtilen özellikleri için <SqlParameter> ve <Value> , belirttiğiniz zaman öğesi <Value> öğesi özellikleri olması gerekir 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 |
Düğüm üzerinde belirtilen |
---|---|---|
Yön |
Parametrenin yönünü belirtir (Giriş, InputOutput).Giriş varsayılandır. |
<SqlParameter> |
LocaleID |
Windows yerel ayar harmanlama karakter türleri için tanımlar.COLLATIONPROPERTY tarafından döndürülen içsel LCID değeri eşdeğer. |
<SqlParameter> <Value> |
maxLength |
Öznitelik, <SqlParameter> öğesi sağlar en fazla uzunluğunu parametre değeri.Varsayılan değer 1'dir. |
<SqlParameter> <Değer> |
name |
Öznitelik, <SqlParameter> öğesi sağlar parametre adı. |
<SqlParameter> |
outputRequested |
Çıkış yayma olup olmadığını belirtmek için parametre öğeleri uygulanabilir.Varsayılan davranışını bağlıdır parameterMode kullanıldığında, onu açık olup varsayılan. Öznitelik ise küme için "true" bir girdi parametresi üzerinde oluşturmak bir hata. |
<Value> |
duyarlık |
Bu öznitelik, <SqlParameter> öğesi sağlar doğruluğunu parametre değeri.Varsayılan değer 18'dir. |
<SqlParameter> <Değer> |
ölçek |
Bu öznitelik, <SqlParameter> öğesi sağlar ölçek parametresi değeri.Varsayılan 0'dir. |
<SqlParameter> <Değer> |
sqlCompareOptions |
Karakter türleri için harmanlama kullanılacak karşılaştırma seçenekleri tanımlar.Bir enum ile eşleşen birleştirilebilir değerlerinden olan ComparisonStyle COLLATIONPROPERTY tarafından döndürülen gerçek değeri. |
<SqlParameter><değer> |
sqlDbType |
Parametre türü belirtir.Bir listesini görmek için SQL Server Sistem veri türlerini belirtebilirsiniz, bkz: Veri türü eşleştirmeleri yerel xml Web Hizmetleri'ndeki. |
<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 liste veya Boole Öznitelik, alternatif olarak, atlanabilir useDefaultValue değeri "true" belirtilebilir.Bu varsayılan değeri öznitelik olan "false" öğesi varsa ve "true" öğesi atlanırsa. |
<SqlParameter> <Değer> |
XmlNamespace |
İlişkili xml şema ad alanýný belirtir xml türü parametresi. |
<SqlParameter> <Değer> |
xsi: type |
Değer türünü belirtir.Nasıl hakkında daha fazla bilgi için xsi: type model eşler için SQL Server Bkz: sistem veri türleri, Veri türü eşleştirmeleri yerel xml Web Hizmetleri'ndeki. |
<Değer> |
TypeName |
Used to specify user-defined type arguments.typename can contain the three-part name. |
<SqlParameter> <Değer> |