Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałSeweryn Bielecki Został zmieniony 9 lat temu
1
wbartyna@gmail.com Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML
2
wbartyna@gmail.com Waldemar Bartyna XML XML (ang. Extensible Markup Language) – rozszerzalny język znaczników – uniwersalny, formalny język przeznaczony do reprezentowania danych w strukturalizowany sposób. XML stał się standardem jako format, w jakim są przechowywane i przesyłane dane. Zapewnia całkowitą niezależność od platformy sprzętowej, programowej i systemu operacyjnego. 2
3
wbartyna@gmail.com Waldemar Bartyna Wykorzystanie XML w.NET Pliki konfiguracyjne aplikacji przechowywane są w formacie XML, Typ DataSet w technologii ADO.NET pozwala na zapisanie i wczytanie w prosty sposób danych w postaci dokumentów XML, Windows Presenteation Fundation wykorzystuje gramatykę opartą na XML-u (XAML) do reprezentacji interfejsu graficznego. Windows Commucication Fundation (jak również oryginalne API zdalnych wywołań) jako sformatowane łańcuchy znaków (XML). 3
4
wbartyna@gmail.com Waldemar Bartyna Specyfikacja W3C Mimo, że rzeczywiście XML jest powszechnie wykorzystywany, API do jego przetwarzania (zgodne ze specyfikacjami W3C) jest bardzo obszerne i złożone (DOM, SAX, XPath, XQuery, itd.). Również platforma.NET zapewnia swoją wersję API do przetwarzana XML w pakiecie System.Xml.dll. Jest ona zgodna ze specyfikacjami W3C (posiada również kilka swoich dodatków: modele XmlReader/XmlWriter). 4
5
wbartyna@gmail.com Waldemar Bartyna LINQ to XML Tak jak LINQ to SQL integruje manipulowanie relacyjnymi bazami danych bezpośrednio z językiem programowania, tak LINQ to XML chce osiągnąć ten sam rezultat w stosunku do przetwarzania danych zapisanych w formacie XML. LINQ to XML pozwala na wydobycie podzbioru danych z istniejącego dokumentu XML za pomocą zapytań, Pozwala również na tworzenie, modyfikowanie i parsowanie XMLowych dokumentów. LINQ to XML może być postrzegany jako ”lepszy DOM”, LINQ to SQL może współpracować z typami z ADO.NET. Podobnie LINQ to XML może współpracować z wieloma składowymi pakietu System.Xml.dll. 5
6
wbartyna@gmail.com Waldemar Bartyna Pakiet System.Xml.Linq Pakiet definiujący przestrzenie nazw związane z LINQ to XML to System.Xml.Linq. Jest on standardowo dołączany do każdego z nowo utworzonych projektów. Pakiet ten definiuje typy w trzech różnych przestrzeniach nazw: System. Xml.Linq - bazowa przestrzeń zawiera zbór typów reprezentujących różne aspekty dokumentu XML, System.Xml.Schema, System.Xml.Xpath. 6
7
wbartyna@gmail.com Waldemar Bartyna Pakiet System.Xml.Linq (2) 7
8
wbartyna@gmail.com Waldemar Bartyna „DOM-owe API” Utwórzmy dokument za pomocą API zgodnego z W3C DOM. 8
9
wbartyna@gmail.com Waldemar Bartyna „DOM-owe API” c. d. 9
10
wbartyna@gmail.com Waldemar Bartyna „DOM-owe API” c. d. (2) 10
11
wbartyna@gmail.com Waldemar Bartyna „DOM-owe API” c. d. (3) 11
12
wbartyna@gmail.com Waldemar Bartyna Wynikowy dokument XML 12
13
wbartyna@gmail.com Waldemar Bartyna Definiowanie tego samego dokumentu za pomocą LINQ to XML. Nowe API (LINQ to XML) 13
14
wbartyna@gmail.com Waldemar Bartyna Cechy nowego AIPI LINQ to XML, od strony porównania z DOM-owym API, różni się od niego w następujących aspektach: Konstrukcja drzewa XML, Najważniejszy jest element, nie dokument, Definiowanie przestrzeni nazw i prefiksów, Wydobywanie wartości węzłów. 14
15
wbartyna@gmail.com Waldemar Bartyna Funkcyjne konstruowania drzewa XML W LINQ to XML do konstrukcji drzewa XML stosuje się nową technikę nazwaną konstrukcją funkcyjną. Pozwala ona na definiowanie schematu podczas konstruowania obiektów XML i inicjalizacji wartości. 15
16
wbartyna@gmail.com Waldemar Bartyna Dokumenty nie są obowiązkowe W DOM API wymagane jest, aby każdy nowo utworzony element należał do obiektu dokumentu. W LINQ to XML nie ma takiego obowiązku. Możliwe jest tworzenie i przetwarzanie samych elementów (XElement). Oczywiście w razie potrzeby możemy również utworzyć dokument. 16
17
wbartyna@gmail.com Waldemar Bartyna Nazwy, przestrzenie nazw i prefiksy Aby dodać przestrzeń nazw do nazwy elementu wystarczy utworzyć obiekt klasy XNamespace i powiązać go z wybraną nazwą. Można go również podać bezpośrednio w konstruktorze elementu. 17
18
wbartyna@gmail.com Waldemar Bartyna Nazwy, przestrzenie nazw i prefiksy (2) Dodajmy przestrzeń nazw do naszego przykładu. 18
19
wbartyna@gmail.com Waldemar Bartyna Nazwy, przestrzenie nazw i prefiksy (3) Zdefiniowana przestrzeń nazw jest dołączana jako domyślna przestrzeń nazw (bez definicji prefiksu). 19
20
wbartyna@gmail.com Waldemar Bartyna Nazwy, przestrzenie nazw i prefiksy (4) Jeżeli chcemy zdefiniować prefiks, dodajemy go jako atrybut elementu. 20
21
wbartyna@gmail.com Waldemar Bartyna Wydobywanie wartości węzła Aby wydobyć wartość węzła wystarczy go rzutować na odpowiedni typ. Jawne rzutowanie z węzła zostało zdefiniowane dla następujących typów: string, int, int?, uint, uint?, long, long?, ulong, ulong?, bool, bool?, float, float?, double, double?, decimal, decimal?, TimeSpan, TimeSpan?, DateTime, DateTime?, GUID, i GUID?. 21
22
wbartyna@gmail.com Waldemar Bartyna Wydobywanie wartości węzła, przykład 22
23
wbartyna@gmail.com Waldemar Bartyna Model obiektów LINQ to XML 23
24
wbartyna@gmail.com Waldemar Bartyna Tworzenie dokumentu z zapytania LINQ 24
25
wbartyna@gmail.com Waldemar Bartyna Parsowanie, zapisywanie i wczytywanie XMLa 25
26
wbartyna@gmail.com Waldemar Bartyna Nawigowanie po dokumencie 26
27
wbartyna@gmail.com Waldemar Bartyna Modyfikowanie dokumentu 27
28
wbartyna@gmail.com Waldemar Bartyna Modyfikowanie dokumentu, przykład 2 28
29
wbartyna@gmail.com Waldemar Bartyna Obsługa zdarzeń obiektów XML 29
30
wbartyna@gmail.com Waldemar Bartyna Wykorzystanie LINQ 30
31
wbartyna@gmail.com Waldemar Bartyna Dziękuję za uwagę 31
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.