Aracılığıyla paylaş


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>