Bazy Danych i jezyk XML - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

Bazy Danych i jezyk XML

Description:

Bazy Danych i j zyk XML Wynik Serializacja Wg Serializacja danych w .NET 2.0 http://www.codeguru.pl/baza-wiedzy/serializacja-danych-w-net-20-czesc-1,2493 ... – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 53
Provided by: Andrzej98
Category:

less

Transcript and Presenter's Notes

Title: Bazy Danych i jezyk XML


1
Bazy Danych i jezyk XML
2
XML nowoczesne technologie zarzadzania trescia -
korzenie
  • Lata 60-te
  • 1967 William Tunnicliffe, prezes Graphic
    Communications Association, podczas spotkania w
    Canadian Government Printing Office przedstawia
    idee oddzielenia zawartosci informacyjnej
    dokumentów od ich formatu,
  • Stanley Rice proponuje uzycie uniwersalnych
    znaczników do znakowania struktury tekstu,
  • projekt GenCode definiuje sposób oznaczania
    tekstu ukierunkowany na jego strukture.

3
Rozwój jezyków uogólnionego znakowania tekstu
  • 1969 GML Generalized Markup Language(IBM
    Goldfarb, Mosher, Laurie).
  • 1986 SGML Standard Generalized Markup
    Language, ISO 88791986.
  • 1991 powstaje World Wide Web.
  • 1991 HTML zdefiniowany jako zastosowanie SGML-a
    do opisywania stron www.
  • 1996 XML Extensible Markup Language,World
    Wide Web Consortium.

4
Co to jest XML?
  • XML to sposób zapamietywania danych wraz z ich
    struktura w dokumencie tekstowym
  • otwarty,
  • elastyczny,
  • niezalezny od platformy sprzetowej.
  • XML to rama skladniowa do tworzenia jezyków
    specyficznych dla zastosowan.

5
Co to jest XML?
  • XML (rozszerzony jezyk znaczników) to jezyk w
    którym dane zapisuje sie w formie tekstu.
    Wlasciwosci danych opisuje specjalne oznakowanie.
    Stosowane oznakowania to nic innego jak
    umieszczenie w tekscie informacji o interpretacji
    lub sposobie prezentacji przedstawionego tekstu.
    Oznakowanie ma przede wszystkim postac
    znaczników. Znaczniki ujete sa w trójkatne
    nawiasy ltgt.
  • Dokument sklada sie ze znaczników oraz danych
    znakowych jedne i drugie tworza razem elementy.

6
Co to jest XML?
  • Element rozpoczyna sie znacznikiem poczatkowym
    i konczy znacznikiem koncowym. W zapisie
    znacznika koncowego pojawia sie nawias katowy i
    ukosnik, na przyklad lt/takgt. Znaczniki obejmuja
    oznakowany tekst, zas element to fragment
    dokumentu od znacznika poczatkowego do koncowego
    wraz z tymi znacznikami. Np.elementem moze byc
    tekst
  • ltslowogtobejmujalt/slowogt

7
Co to jest XML?
  • Oznakowanie to mechanizm, który pozwala dodac do
    dokumentu metainformacje oraz opisac strukture
    tego dokumentu. Znaczniki opisuja dane znakowe
    zapisane w dokumencie.
  • Elementy moga zawierac inne elementy te
    elementy wewnetrzne nazywaja sie podelementami
    lub subelementami.
  • Dokument sklada sie z pojedynczego, najbardziej
    zewnetrznego (nadrzednego) elementu, który
    zawiera inne elementy i (lub) dane znakowe. Kazdy
    podelement moze zawierac inne podelementy i dane
    znakowe.

8
Co to jest XML?
  • XML dzieki rozszerzalnosci (rozumianej jako
    brak ograniczen), jest poteznym mechanizmem,
    który umozliwia swobodne komentowanie i
    znakowanie danych. Mozna go stosowac do
    przetwarzania dowolnych danych zapisywanych w
    dokumentach lub bazach danych.

9
Struktura dokumentu XML
10
Struktura logiczna i fizyczna dokumentu XML
  • XML uzywa znaczników poczatku i konca jako
    swego rodzaju pojemnika oba znaczniki stanowa
    jeden element. Elementy takie sa podstawowa
    cegielka budowy dokumentów. Kazdy dokument XML
    musi miec dokladnie jeden element glówny,
    wszystkie pozostale elementy musza byc w nim
    calkowicie zawarte. Uklad elementów dokumentu XML
    nazywamy struktura logiczna dokumentu XML.
  • Encja jest fizyczna jednostka informacji. Wedlug
    oficjalnej nomenklatury XML encja jest obiektem
    przechowywania danych. Uklad encji okresla
    strukture fizyczna dokumentu.
  • Struktury fizyczna i logiczna musza byc ze soba
    zsynchronizowane-musza byc w sobie nawzajem
    prawidlowo zagniezdzone.

11
Budowa elementu XML
  • Element zazwyczaj sklada sie ze znacznika
    poczatkowego, zawartosci i znacznika koncowego.
    Nazwa typu elementu identyfikuje dany typ lub
    klase elementów a nie konkretny element. Dokument
    moze zawierac wiecej niz jeden element o takiej
    samej nazwie typu.

12
Rodzaje zawartosci elementu
  • Jako zawartosc elementu mozna umiescic
    nastepujace elementy
  • zagniezdzone elementy
  • dane znakowe
  • odwolanie do encji ogólnych lub odwolanie do
    znaków
  • sekcje CDATA
  • instrukcje sterujace
  • komentarze

13
Dodawanie elementom atrybutów
  • W znaczniku poczatkowym elementu mozna umiescic
    jedna lub wiecej specyfikacji atrybutu. Jest to
    para nazwa-wartosc zwiazana z danym atrybutem.
  • ltCENA Rodzajdetalgt132 zllt/CENAgt
  • Stosowanie atrybutów jest jedna z metod
    wstawiania do elementów informacji.
  • Zazwyczaj porcje danych elementu, które zamierza
    sie wyswietlic umieszczane sa w zawartosci
    elementu. Natomiast atrybutów uzywa sie do
    przechowywania róznych wlasciwosci elementu,
    niekoniecznie przeznaczonych do wyswietlania,
    takich jak kategorie lub instrukcje wyswietlania.
    Specyfikacja XML nie narzuca zadnych ogreniczen
    co do rodzaju informacji, które powinny byc
    przechowywane w atrybutach badz w zawartosci.

14
Komentarze w XML
  • lt!-- Tutaj mozesz wstawic dowolny tekst , oprocz
    podwojnego lacznika. Znaki lt oraz sa OK. --gt
  • Komentarz mozna umiescic w dowolnym miejscu
    dokumentu na zewnatrz markapów.
  • Markup jest tekstem o oznaczonych granicach,
    który opisuje strukture dokumentu. Markupami sa
    znaczniki poczatkowe elementu, znaczniki koncowe
    elementu, znaczniki elementu pustego, komentarze,
    deklaracje typu dokumentu, instrukcje sterujace,
    ograniczniki sekcji CDATA, odwolania do encji
    oraz odwolania znakowe.

15
Instrukcje sterujace
  • Zadaniem instrukcji sterujacej jest
    dostarczenie informacji, które procesor XML
    przekaze aplikacji.
  • Postac instrukcji
  • lt? cel instrukcja ?gt
  • Tutaj cel jest nazwa aplikacji do której
    instrukcja jest skierowana.
  • Natomiast instrukcja jest informacja
    przekazywana aplikacji.

16
Instrukcje sterujace
  • Jezeli wykorzystywany jest Internet Explorer 5
    jako procesor XML to instrukcja sterujaca mozna
    nakazac Internet Explorerowi 5 skorzystanie z
    konkretnego arkusza stylów
  • lt?xml-stylesheet type text/css
    hrefSpis01.css?gt
  • Instrukcje sterujaca mozna wstawic w dowolnym
    miejscu dokumentu XML, na zewnatrz markapów a
    wiec w prologu dokumentu, za elementem glównym
    lub wewnatrz zawartosci elementu.

17
Sekcja CDATA
  • Sekcja CDATA zaczyna sie znakiem lt!CDATA, a
    konczy znakiem gt. Miedzy tymi dwoma
    ograniczajacymi grupami znaków mozna wpisywac
    dowolne znaki z wyjatkiem gt (które zostalyby
    zinterpretowane jako koniec sekcji CDATA).
  • Wszystkie znaki wewnatrz sekcji CDATA sa
    traktowane jako literalna czesc danych znakowych
    elementu, a nie jako markupy XML.
  • Sekcje CDATA mozna wstawic wszedzie tam, gdzie
    wystepuja dane znakowe, tzn. wewnatrz zawartosci
    elementu ale nie wewnatrz markapa XML.

18
Sekcja CDATA
  • ltA-SEKCJAgt
  • Oto przyklad bardzo prostej strony HTML
  • lt!CDATA
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtKowalski i synlt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltPgtWitamy na naszej stronie domowej!lt/Pgt
  • lt/BODYgt
  • lt/HTMLgt
  • gt
  • lt/A-SEKCJAgt

19
Przyklad dokumentu XML
20
Przyklad dokumentu XML
21
XSL (XML Stylesheet Language)
  • Jezyk pozwalajacy na przekonwertowanie dokumentu
    XML do róznych formatów np. HTML, XML, SVG
    (Scalable Vector Graphics, www.w3.org/TR/SVG/),
    PDF i wiele innych

22
XPATH (XML Path Languge)
  • Jezyk zapewnia mozliwosc wykonywania kwerend,
    które wyszukuja odpowiednie informacje w
    dokumencie XML
  • Polaczenie jezyków XSL i XPATH pozwala na
    tworzenie dokumentów XSLT (eXtensible StyleSheet
    Transformations) stanowiacych wzorzec do
    transformacji dokumentu XML

23
Plik XSLT
24
Zmiana w pliku XML
25
Wynik parsowania
26
Zapis danych w formacie XML
27
Dane
28
Kod
Imports System.Data.SqlClient Imports
System.xml Imports System.xml.xsl Imports
System.Xml.Xsl.XslCompiledTransform Dim dataSet
As DataSet New DataSet("Test") Dim
customerAdapter As SqlDataAdapter New
SqlDataAdapter( _ "SELECT IdKlienta,
Nazwa, Adres FROM Klienci", connection)
customerAdapter.Fill(dataSet, "Klienci")
Dim orderAdapter As SqlDataAdapter New
SqlDataAdapter( _ "SELECT IdKlienta,
IdZamowienia, CONVERT(varchar(12), Data, 104) AS
Data FROM Zamowienia", connection)
orderAdapter.Fill(dataSet, "Zamowienia")
connection.Close()
29
Kod c.d.
dataSet.Relations.Add("Test", _
dataSet.Tables("Klienci").Columns("IdKlienta"),
_ dataSet.Tables("Zamowienia").Columns("Id
Klienta")).Nested True
dataSet.WriteXml("XMLZamowienia.xml")
dataSet.WriteXmlSchema("XMLZamowieniaS.xml")
Dim xmlDoc As XmlDataDocument New
XmlDataDocument(dataSet) Dim xslTran As
XslCompiledTransform New XslCompiledTransform
xslTran.Load("XSLTZamowienia.xslt")
Dim writer As XmlTextWriter New XmlTextWriter(
_ "xslt_output.html",
System.Text.Encoding.UTF8)
xslTran.Transform(xmlDoc, Nothing, writer)
writer.Close()
30
Plik XML
31
Plik XMLSchema
32
Wynik
33
Wczytywanie prostych plików XML do bazy danych
(DataSet)
dataSetXML.ReadXml("XMLZamowienia.xml")
DataGridView1.DataSource dataSetXML
DataGridView1.DataMember "Klienci"
34
Wynik
35
Serializacja
  • Wg Serializacja danych w .NET 2.0
  • http//www.codeguru.pl/baza-wiedzy/serializacja-da
    nych-w-net-20-czesc-1,2493

36
Serializacja - deserializacja
  • Proces przeksztalcania obiektów (badz ogólnie
    danych) uzywanych w programie na ciag bajtów,
    który moze nastepnie byc przekazany poza dana
    instancje programu
  • Proces odwrotny nazywamy deserializacja

37
Przyklady serializacji
  • zapisywanie parametrów konfiguracyjnych programu
    do pliku i ich odczyt w razie potrzeby
  • zapisywanie stanu dzialania programu, aby przy
    nastepnym uruchomieniu, kontynuowac dzialanie od
    zapisanego momentu
  • wymiana danych miedzy programami znajdujacymi sie
    na róznych komputerach polaczonych siecia
    komputerowa

38
Serializacja w srodowisku .NET
  • Dwa gotowe mechanizmy serializacji danych
    XmlSerializer oraz System.Runtime.Serialization
    (SoapFormatter/BinaryFormatter)
  • XmlSerializer oraz SoapFormatter w procesie
    serializacji korzystaja z jezyka XML
  • BinaryFormatter przeksztalca obiekty w ciag
    bajtów w sposób specyficzny dla srodowiska .NET

39
Serializacja XML
  • Serializacja XML wykorzystujemy
  • gdy mamy do czynienia z wymiana danych miedzy
    róznymi aplikacjami
  • jesli chcemy w latwy sposób operowac na juz
    istniejacych dokumentach XML
  • gdy chcemy dokladnie kontrolowac strukture
    dokumentu, do którego przeksztalcamy nasze dane

40
XmlSerializer - 1
using System.Text using System.Xml using
System.Xml.Serialization  namespace
SerializacjaPrzyklady public class Samochód
public int LiczbaKól 4
public string Marka public string
Model private int NrSilnika 12345

41
XmlSerializer - 2
  class Program static
void Main() // Tworzymy
obiekt serializatora, któremu podajemy typ
jaki // bedziemy serializowac
XmlSerializer Serializer new XmlSerializer(typeo
f(Samochód))   // Tworzymy obiekt
Samochodu. Samochód Audi_TT new
Samochód() Audi_TT.Marka "Audi"
42
XmlSerializer - 3
// Tworzymy strumien danych XML
powiazany // z plikiem Samochód.xml
XmlTextWriter XmlTextWriter new
XmlTextWriter("Samochód.xml",
Encoding.UTF8) // Ustawiamy robienie
wciec w pliku Samochód.xml
XmlTextWriter.Formatting Formatting.Indented  
// Wlasciwy moment serializacji.
Serializer.Serialize(XmlTextWriter,
Audi_TT)   // Zamykamy strumien
danych powiazany z plikiem Samochód.xml
XmlTextWriter.Close()
43
XmlSerializer - wynik
44
XmlSerializer deserializacja 1
using System.Text using System.Xml using
System.Xml.Serialization   namespace
SerializacjaPrzyklady public class
Samochód public int LiczbaKól 4
public string Marka public string
Model private int NrSilnika 12345

45
XmlSerializer deserializacja 2
class Program static void Main()
// Tworzymy obiekt
serializatora, któremu podajemy typ
// jaki bedziemy serializowac
XmlSerializer Serializer new XmlSerializer(typeo
f(Samochód))   // Tworzymy strumien
danych XML powiazany // z plikiem
Samochód.xml XmlTextReader
XmlTextReader new
XmlTextReader("Samochód.xml")   //
Tworzymy pusty obiekt Samochodu.
Samochód Audi_TT null
46
XmlSerializer deserializacja 3
// Wlasciwy moment deserializacji.
Audi_TT (Samochód)Serializer.Deserialize
(XmlTextReader)   // Zamykamy
strumien danych powiazany z plikiem Samochód.xml
XmlTextReader.Close()
47
Serializacja bazy danych 1
CREATE DATABASE Pojazdy GO  USE Pojazdy  CREATE
TABLE dbo.Samochody( Id int
IDENTITY(1,1) NOT NULL, LiczbaKol int
NULL, Marka nchar(255) NULL, Model
nchar(255) NULL, NrSilnika int NULL,
CONSTRAINT PK_Samochody PRIMARY KEY CLUSTERED
( Id ASC )WITH (PAD_INDEX OFF,
STATISTICS_NORECOMPUTE OFF, IGNORE_DUP_KEY
OFF, ALLOW_ROW_LOCKS ON, ALLOW_PAGE_LOCKS
ON) ON PRIMARY ) ON PRIMARY GO 
48
Serializacja bazy danych 2
 
INSERT INTO Pojazdy.dbo.Samochody
(LiczbaKol ,Marka
,Model ,NrSilnika) VALUES
(4, 'Audi', 'TT', 12345)   CREATE LOGIN
serializacja WITH PASSWORD 'serializacja', DEFA
ULT_DATABASE Pojazdy, DEFAULT_LANGUAGE
Polish   CREATE USER serializacja FOR LOGIN
serializacja   GRANT SELECT TO serializacja
49
Serializacja bazy danych 3
using System.Data using System.Data.SqlClient  
namespace SerializacjaPrzyklady class
BazaDanych static void
Main(string args) //
Utworzenie polaczenia z serwerem SQL.
SqlConnection SqlConnection new
SqlConnection("Data Source127.0.0.1Initial
Catalog PojazdyPersist Security InfoTrueUser
IDserializacja Passwordserializacja")
50
Serializacja bazy danych 4
// Utworzenie SqlDataAdaptera
powiazanego z tabela Samochody.
string selectCommandText "SELECT LiczbaKól,
Marka, Model, NrSilnika
FROM Samochody" SqlDataAdapter
SqlDataAdapter new SqlDataAdapter
(selectCommandText, SqlConnection) 
// Utworzenie DataSetu o nazwie
Samochody. DataSet DataSet new
DataSet("Samochody")  // Wypelnienie
DataSetu. SqlDataAdapter.Fill(DataSet)
  // Zapisanie zawartosci DataSetu
do pliku XML. DataSet.WriteXml("Samoch
ód.xml")
51
Deserializacja bazy danych 1
using System.Data using System.Data.SqlClient  
namespace SerializacjaPrzyklady class
BazaDanych static void
Main(string args) //
Utworzenie DataSetu o nazwie Samochody.
DataSet DataSet new DataSet("Samochody")  
// Wczytanie pliku XML do DataSetu.
DataSet.ReadXml("Samochód.xml")
52
Deserializacja bazy danych 2
// Wyswietlenie zawartosci pierwszej
tabeli, pierwszego //wiersza,
pierwszej komórki. System.Console.Writ
eLine(DataSet.Tables0.Rows0.ItemArray1)
Write a Comment
User Comments (0)
About PowerShow.com