Formatowanie (SQLXML 4.0) XML po stronie klient
Ten temat zawiera informacje dotyczące formatowania XML po stronie klient.Formatowanie po stronie klient odwołuje się do formatowania XML w środkowej warstwie.
Uwaga
W tym temacie znajdują się dodatkowe informacje dotyczące korzystania z klauzula FOR XML po stronie klient i zakłada się, użytkownik zna już klauzulę FOR XML.Aby uzyskać więcej informacji na temat FOR XML zobacz Konstruowanie XML przy użyciu FOR XML.
Ważne Aby można było korzystać z funkcji FOR XML po stronie klient z nowym xml Typ danych klientów należy zawsze używać SQL Server Macierzystego dostawca danych klient (SQLNCLI10) zamiast dostawca SQLOLEDB. SQLNCLI10 jest najnowsza wersja dostawca programu SQL Server i pełni rozpoznaje typy danych wprowadzonych w SQL Server 2005. Zachowanie po stronie klient FOR XML u dostawca SQLOLEDB będą traktować xml typy danych jako ciągi znaków.
Formatowanie dokumenty XML po stronie klient
Kiedy aplikacja klient wykonuje następującą kwerendę:
SELECT FirstName, LastName
FROM Person.Contact
FOR XML RAW
.. .only tej części kwerendy jest wysyłany do serwera:
SELECT FirstName, LastName
FROM Person.Contact
The server executes the query and returns a rowset (which contains FirstName and LastNamecolumns) to the client.Warstwa środkowa następnie stosuje transformacja FOR XML do zestawu zestaw wierszy i zwraca do klient formatowanie XML.
Podobnie kiedy wykonać kwerendy XPath, serwer zwraca zestaw wierszy do klient i FOR XML JAWNE transformacja jest stosowane do zestawu wierszy klient, generowanie żądanego formatowania XML.
W poniższej tabela przedstawiono trybów, można określić za pomocą języka XML dla klient.
Tryb XML dla klient. |
Komentarz |
|---|---|
NIEPRZETWORZONE |
Daje takie same wyniki, gdy jest to określone w formacie XML FOR po stronie klient lub po stronie serwera. |
ZAGNIEŻDŻONE |
Jest podobny do trybu FOR XML AUTO po stronie serwera. |
JAWNE |
Jest podobny do trybu FOR XML JAWNE po stronie serwera. |
Uwaga
Jeżeli określono tryb AUTO i formatowania XML po stronie klient w żądaniu, cała kwerenda jest wysyłana do serwera, to znaczy formatowania XML pojawia się na serwerze.Można to zrobić dla wygody użytkowników, ale należy pamiętać, że tryb NESTED zwraca nazwy tabela bazowa jako nazwy elementów w dokumencie XML, który jest generowany.Niektóre aplikacje, można napisać może wymagać nazwy tabela bazowa.Na przykład, użytkownik może być wykonać procedura przechowywana i załadować dane wynikowe w zestawów danych (w Microsoft System .NET framework), a następnie wygenerować później element w formacie DiffGram aktualizacji danych w tabelach. W takim przypadek należy informacji o tabela bazowa, a trzeba korzystać z trybu NESTED.
Korzyści wynikające z formatowania XML po stronie klient
Poniżej wymieniono niektóre korzyści formatowania XML na klient.
Jeśli procedury są przechowywane na serwerze, które zwracają jeden zestaw wierszy, można zażądać transformacja XML dla klient do generowania XML.
Na przykład rozważmy następującą procedura przechowywana.Procedura ta zwraca imienia i nazwiska pracowników z tabela Person.Contact bazy danych AdventureWorks:
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
Następujący przykładowy szablon XML wykonuje procedura przechowywana.Klauzula FOR XML jest określony, po nazwie procedura przechowywana.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query client-side-xml="1">
EXEC GetContacts FOR XML NESTED
</sql:query>
</ROOT>
Ponieważ danych xml po stronie klient atrybut jest ustawiony na 1 (PRAWDA), w szablonie, procedura przechowywana jest wykonywany na serwerze i dwie kolumna zestaw wierszy zwracanych przez serwer jest przekształcane w XML w środkowej warstwie i zwracana do klient.(Tylko wynik częściowy przedstawiono poniżej.)
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact FirstName="Gustavo" LastName="Achong" />
<Person.Contact FirstName="Catherine" LastName="Abel" />
</ROOT>
Uwaga
Podczas korzystania z SQLXMLOLEDB dostawca lub klasy Managed SQLXML, można użyć ClientSideXml Właściwość żądania formatowania XML po stronie klient.
Więcej jest objęte równoważeniem obciążenia.
Ponieważ klient jest formatowanie XML, obciążenie pracą jest równoważony między serwerem a klientem, zwalnianie serwera, aby wykonać inne czynności.
Uzupełniające formatowanie XML po stronie klient
Do obsługi funkcji formatowania XML po stronie klient zapewnia SQLXML:
Dostawca SQLXMLOLEDB
SQLXML kontrolowany klasy
Ulepszona obsługa szablon XML
SqlXmlCommand.ClientSideXml Właściwość
Można określić formatowanie po stronie klient przez ustawienie tej właściwość klasy SQLXML zarządzane na wartość true.
Ulepszona obsługa szablon XML
Zaczyna się od SQL Server 2005, szablon XML SQL Server zostało udoskonalone dzięki dodaniu danych xml po stronie klient atrybut. Jeżeli atrybut ten jest ustawiony na wartość true, XML sformatowane na komputerze klienckim.Należy zauważyć, że atrybut ten szablon jest taka sama, jak w funkcji specyficzne dostawca SQLXMLOLEDB ClientSideXML Właściwość.
Uwaga
Jeśli wykonać szablonu XML w aplikacji obiektów ADO, która jest za pomocą dostawcy SQLXMLOLEDB i określić zarówno danych xml po stronie klient atrybut w szablonie i dostawca ClientSideXML Właściwość, pierwszeństwo ma wartość określona w szablonie.
See Also