Wariacje na temat XML - Joanna Maciąg

10

Click here to load reader

description

Prezentacja zapozna użytkownika z możliwościami obsługi XML jaką daje nam MSSQL Server. Zastanowimy się kiedy walidować a kiedy nie walidować? Indexować, czy lepiej nie. Spróbujemy podejść do tematu od strony różnych zastosowań, i zbadać kiedy taki XML okaże się być nie zastąpionym.

Transcript of Wariacje na temat XML - Joanna Maciąg

Page 1: Wariacje na temat XML - Joanna Maciąg

Wariacje na temat XML Joanna Maciąg sierpień 2014

Page 2: Wariacje na temat XML - Joanna Maciąg

O mnie

• Programista w Asseco Business Solutions S.A

• Specjalizacja : bazy danych

• MSSQL 2000/2005/2008/2008R2/2012/2014

• Tytuły :

• MCP

• MCSA: SQL Server 2012

• MSCE: Data Platform

• Hobby : jazda konna, joga, żeglarstwo

Page 3: Wariacje na temat XML - Joanna Maciąg

Agenda

• Definicja XML

• Sformatowany

• Niesformatowany

• Sposoby walidacji

• Tworzenie XML

• Metody tworzenia

• Przechowywania

Page 4: Wariacje na temat XML - Joanna Maciąg

Składniki dokumetu XML • Deklaracja: <?xml version="1.0" encoding="utf-8"?>

• Elementy: <invoice> FV/2012/1 </invoice>

• Atrybuty: <item id="33905">

• Encje: &lt; (<)

• Składniki zaawansowane

• Sekcje CData: <![CDATA[ jakiś tekst ]]>

• Instrukcje przetwarzania:

<?xml-stylesheet type="text/xsl" href="VAT-7(10).xsl"?>

Page 5: Wariacje na temat XML - Joanna Maciąg

Typy danych w MS SQL Server

• Typ CLR

• Posiada metody do odpytywania i modyfikowania dokumentów

• Przechowywany binarnie

• Może trzymać dokumenty do 2GB

• Pewne reguły well-formed mogą być złamane:

• Deklaracja XML nie jest konieczna…

• … a nawet jest usuwana!

• Typ XML potrafi przechować nie tylko dokument, ale także jego fragment (nie jest wymagany jeden element root)

• Można walidować za pomocą XML Schema

Page 6: Wariacje na temat XML - Joanna Maciąg

XML Schema / Parser XML

• XML Schema weryfikuje:

• Czy struktura XML jest poprawna

• Czy zgadzają się typy danych

• Czy spełnia ograniczenia

• Zalety \ wady :

• Utrzymujemy jakość (+)

• Zajmujemy miejsce (-)

• Możliwość sparsowania kodu (OPENXML)

• sp_xml_preparedocument

• sp_xml_removedocument

Page 7: Wariacje na temat XML - Joanna Maciąg

Well–formated – co to takiego ?

• XML jest „case sensitive”

• Każdy element powinien mieć początek i koniec

• Alternatywą jest zamknięcie elementu, jeśli nie posiada on zagnieżdżonych węzłów

• Elementy nie mogą się „zazębiać”

• Deklaracja XML musi występować na początku dokumentu

• Nie dotyczy SQL Server

• Każdy dokument musi mieć element-korzeń (root), w którym zagnieżdżone są pozostałe elementy

• Nie dotyczy SQL Server

• Wartości atrybutów muszą być otoczone ogranicznikami (" lub ')

• Dwa atrybuty znajdujące się w jednym elemencie muszą mieć różne nazwy

• Niektóre znaki są zarezerwowane dla parsowania

Page 8: Wariacje na temat XML - Joanna Maciąg

Tworzenie XML – SELECT FOR XML

• FOR XML RAW

• Prosty tryb umożliwiający trzymanie danych albo w atrybutach, albo w elementach

• FOR XML AUTO

• J.w., ale z lepszą obsługą danych pochodzących ze złączonych tabel

• FOR XML PATH

• Daje możliwość sterowania, czy dana będzie trzymana w atrybucie, czy w elemencie

• FOR XML EXPLICIT

• Trudny tryb, ale daje największe możliwości sterowania postacią wyjściową dokumentu XML

Page 9: Wariacje na temat XML - Joanna Maciąg

Namespaces

• Jeżeli się pojawiają w dokumencie, trzeba o nich powiedzieć SQL Serverowi

• Dwa rodzaje

• Default (xmlns = "...")

• Named namespace (xmlns:xyz="...")

• Do określania mamy dwie metody

• WITH XMLNAMESPACES

• declare namespace / declare default element namespace

• Żeby metody zwracały cokolwiek MUSIMY deklarować wszystkie namespace’y, jakie są w dokumencie XML

Page 10: Wariacje na temat XML - Joanna Maciąg

Materiały

• https://www.simple-talk.com/sql/learn-sql-server/using-the-for-xml-clause-to-return-query-results-as-xml/

• http://msdn.microsoft.com/en-us/library/aa468558.aspx

• http://sqlgeek.pl/2010/08/30/pl-sql-server-for-xml-explicit-nie-dla-opornych/