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>