Wariacje na temat XML - Joanna Maciąg
Click here to load reader
-
Upload
women-in-technology -
Category
Data & Analytics
-
view
197 -
download
0
description
Transcript of Wariacje na temat XML - Joanna Maciąg
Wariacje na temat XML Joanna Maciąg sierpień 2014
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
Agenda
• Definicja XML
• Sformatowany
• Niesformatowany
• Sposoby walidacji
• Tworzenie XML
• Metody tworzenia
• Przechowywania
Składniki dokumetu XML • Deklaracja: <?xml version="1.0" encoding="utf-8"?>
• Elementy: <invoice> FV/2012/1 </invoice>
• Atrybuty: <item id="33905">
• Encje: < (<)
• Składniki zaawansowane
• Sekcje CData: <![CDATA[ jakiś tekst ]]>
• Instrukcje przetwarzania:
<?xml-stylesheet type="text/xsl" href="VAT-7(10).xsl"?>
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
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
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
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
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
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/