W aplikacji korzystając z LINQ2XML można szybko przekształcić dane pobierane z bazy do formatu XML.
Można także skorzystać z tego co oferuje sama baza danych i skorzystać ze składni FOR XML.
Aby pobrać dane z tabeli Customer bazy AdventureWorksLT stosujemy następujące zapytanie:
SELECT *FROM SalesLT.Customer
Aby dane otrzymać jako XML stosujemy następujące zapytanie:
SELECT *FROM SalesLT.CustomerFOR XML AUTO
W przypadku zapytania FOR XML dostępne są 4 tryby:
- RAW - generowane są pojedyncze elementy row dla każdego wiersza pobranego z bazy
- AUTO - generowane wiersze są automatycznie na podstawie struktury zapytania
- EXPLICIT - pozwala na zmienienie kształtu w jakim otrzymamy XML-a (np. zastosowanie elementów zamiast atrybutów itp.)
- PATH - uproszczona forma EXPLICIT
Najlepsze efekty udało mi się uzyskać dzięki PATH:
SELECT *FROM SalesLT.CustomerFOR XML Path('Customer')
Wynik:
Jak widać każdy wiersz to element typu Customer. Możemy także dodać korzeń dokumentu XML za pomocą dyrektywy ROOT('root')
Więcej o generowaniu XMLi z zapytań można poczytać na poniższych stronach msdn:
http://msdn.microsoft.com/en-us/library/ms178107.aspx
http://msdn.microsoft.com/en-us/library/bb510462.aspx
Brak komentarzy:
Prześlij komentarz