Aracılığıyla paylaş


Istemci tarafı xml biçimlendirmesi (sqlxml 4.0)

Bu konu, istemci tarafı xml biçimlendirme hakkında bilgi sağlar. İstemci tarafı biçimlendirme xml biçimlendirmesi orta katmanda ifade eder.

[!NOT]

Bu konu, istemci tarafı for xml yan tümcesi kullanma hakkında ek bilgi sağlar ve for xml yan tümcesi ile zaten biliyorsunuzdur varsayar. for xml hakkında daha fazla bilgi için bkz: for xml kullanma oluşturmak yoluyla.

Önemli istemci tarafı for xml işlevselliği yeni kullanmaya xmlveri türü, istemciler her zaman kullanması gereken SQL Serveryerel istemci (SQLNCLI10) veri sağlayıcısı sqloledb Sağlayıcısı yerine. SQLNCLI10 SQL Server sağlayıcısı en son sürümü ve tam olarak tanıtılan veri türleri anlayan SQL Server 2005. İstemci tarafı for xml ile sqloledb Sağlayıcısı tedavi için davranış xmlveri türü dize olarak.

Istemci tarafında xml belgeleri biçimlendirme

Ne zaman bir istemci uygulaması aşağıdaki sorgu yürütür:

SELECT FirstName, LastName
FROM   Person.Contact
FOR XML RAW

SELECT FirstName, LastName
FROM   Person.Contact
FOR XML RAW

.. .sadece bu sorgunun parçası sunucuya gönderilir:

SELECT FirstName, LastName
FROM   Person.Contact

SELECT FirstName, LastName
FROM   Person.Contact

Sunucu sorguyu yürütür ve bir satır kümesi döndürür (FirstName ve LastName içerensütunlar) istemcisi. Orta Katman sonra for xml dönüşümü satır kümesi için geçerlidir ve xml biçimlendirmesi istemciye döndürür.

Benzer şekilde, XPath sorgusu yürüttüğünüzde, sunucu istemciye satır kümesi döndürür ve for xml açık satır kümesi istemci işlemden istenen xml biçimlendirmesi oluşturuluyor.

Aşağıdaki tabloda, istemci tarafı for xml ile belirttiğiniz modları gösterir.

Istemci tarafı for xml modu

Açıklama

RAW

İstemci veya sunucu tarafı for xml içinde belirtilen aynı sonuçları oluşturur.

İÇ İÇE

Sunucu tarafında for xml auto modu benzer.

AÇIK

Sunucu tarafında for xml Açık modu için benzer.

[!NOT]

auto modu ve istekte istemci tarafı xml biçimlendirmesi belirtirseniz, tüm sorgu sunucuya gönderilir; Yani xml biçimlendirmesi, sunucu üzerinde yürütülür. Bu kolaylık, ama unutmayın nested modu, öğe adları olarak oluşturulan xml belgesi temel tablo adlarını döndürür yapılır. Bazı uygulamalar yazmak temel tablo adları gerektirebilir. Örneğin, bir saklı yordamı yürütmek olabilir ve elde edilen verileri DataSet yüklemek (de Microsoft.net Framework) ve daha sonra tablolardaki verileri güncelleştirmeye DiffGram oluşturun. Böyle bir durumda, temel tablo bilgileri gerektiği ve nested modu kullanmak zorunda.

Istemci tarafı xml biçimlendirmesi yararları

İstemci üzerinde xml biçimlendirmesi bazı faydaları şunlardır:

Tek bir satır kümesi döndüren sunucuda saklı, istemci tarafı for xml dönüşümü xml oluşturmak isteyebilirsiniz.

Örneğin, aşağıdaki saklı yordam düşünün. Bu yordamı, çalışanların ad ve soyadları AdventureWorks veritabanındaki Person.Contact tablosundan döndürür:

IF EXISTS (SELECT name FROM sysobjects
   WHERE name = 'GetContacts' AND type = 'P')
   DROP PROCEDURE GetContacts
GO
CREATE PROCEDURE GetContacts
AS
    SELECT   FirstName, LastName
    FROM     Person.Contact

IF EXISTS (SELECT name FROM sysobjects
   WHERE name = 'GetContacts' AND type = 'P')
   DROP PROCEDURE GetContacts
GO
CREATE PROCEDURE GetContacts
AS
    SELECT   FirstName, LastName
    FROM     Person.Contact

Aşağıdaki örnek xml şablon saklı yordamı yürütür. for xml yan tümcesi sonra saklı yordam adı belirtilir.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:query client-side-xml="1">
    EXEC GetContacts FOR XML NESTED
  </sql:query>
</ROOT>

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:query client-side-xml="1">
    EXEC GetContacts FOR XML NESTED
  </sql:query>
</ROOT>

Çünkü istemci tarafı xml özniteliği şablonda 1 (doğru) ayarlanmışsa, saklı yordam sunucuda yürütülür ve sunucu tarafından döndürülen iki sütun satır kümesi xml orta katmanda değiştirdi ve istemciye döndürülen. (Yalnızca kısmi bir sonuç burada gösterilir.)

 <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Contact FirstName="Gustavo" LastName="Achong" /> 
  <Person.Contact FirstName="Catherine" LastName="Abel" />
</ROOT>
 <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Contact FirstName="Gustavo" LastName="Achong" /> 
  <Person.Contact FirstName="Catherine" LastName="Abel" />
</ROOT>

[!NOT]

sqlxml yönetilen sınıflar ve sqlxmloledb sağlayıcı kullanırken, sen-ebilmek kullanma ClientSideXmlözelliği istemci tarafı xml biçimlendirmeleri istemeyi.

İş yükü fazla dengelenir.

Çünkü xml biçimlendirmesi istemci yapar, iş yükü sunucu ve istemci, sunucu başka şeyler yapmak için boşaltma arasında dengelenir.

Istemci tarafı xml biçimlendirme destekleme

Istemci tarafı xml biçimlendirme işlevlerini desteklemek için sqlxml sağlar:

  • sqlxmloledb sağlayıcısı

  • sqlxml Yönetimli Sınıfları

  • Gelişmiş xml şablonu desteği

  • SqlXmlCommand.ClientSideXmlözelliği

    İstemci tarafı biçimlendirme sqlxml bu özelliğini ayarlayarak Yönetimli Sınıfları true belirtebilirsiniz.

Gelişmiş xml şablonu desteği

İle başlayan SQL Server 2005, xml şablon SQL Serverek olarak gelişmiş istemci tarafı xml özniteliği. Bu özniteliği ayarlanmışsa doğru xml istemcide biçimlendirilir. Bu şablonu özniteliğini sqlxmloledb sağlayıcısı özgü için işlevler aynı olduğuna dikkat ClientSideXMLözellik.

[!NOT]

Bir xml şablonu sqlxmloledb sağlayıcı kullanarak bir ado uygulamasında yürütmek ve her ikisi de belirtirseniz istemci tarafı xml özniteliği şablonu ve sağlayıcı ClientSideXMLözelliği, şablonda belirtilen değer önceliklidir.

Ayrıca bkz.

Başvuru

Istemci tarafı ve sunucu tarafı xml biçimlendirmesi (sqlxml 4.0) mimarisi

xml (SQL Server)

xml Güvenlik etkenleri (sqlxml 4.0)

XML veri türü desteği sqlxml 4.0

sqlxml Yönetimli Sınıfları

İstemci tarafı vs. Sunucu tarafı xml biçimlendirmesi (sqlxml 4.0)

SqlXmlCommand nesnesi (sqlxml Yönetimli Sınıfları)

Kavramlar

DEL - Implementing XML in SQL Server