Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz)mlynkova@ksi.mff.cuni.cz Martin Nečaský (necasky@ksi.mff.cuni.cz)necasky@ksi.mff.cuni.cz LS 20 10 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/ prg036 /
2
2 Organizace přednášky, cvičení, zkoušky http://www.ksi.mff.cuni.cz/~mlynkova/ prg036 /
3
3 Osnova předmětu Úvod do principů formátu XML, přehled XML technologií, jazyk DTD Datové modely XML, rozhraní DOM a SAX Úvod do jazyka XPath Úvod do jazyka XSLT XPath 2.0, XSLT 2.0 Úvod do jazyka XML Schema Pokročilé rysy jazyka XML Schema Přehled standardních XML formátů Úvod do jazyka XQuery Pokročilé rysy jazyka XQuery, XQuery Update Úvod do XML databází, nativní XML databáze, číslovací schémata, structural join Relační databáze s XML rozšířením, SQL/XML
4
4 Úvod do principů formátu XML
5
5 Motivace Chceme přenést informaci Místo A Místo B
6
6 Např.: chceme přenést zprávu Jan Amos, Karel Hynek Ahoj! Pozdrav z říše divů! Alenka P.S. Napište mi!
7
7 Jako „nestrukturovaný“ text? Jan Amos, Karel Hynek Ahoj! Pozdrav z říše divů
8
8 Jako „nestrukturovaný“ text? Karel Hynek Ahoj! Pozdrav z říše divů! Alenka P
9
9 Jako „nestrukturovaný“ text? Ahoj! Pozdrav z říše divů! Alenka P.S. Napište
10
10 Jako „nestrukturovaný“ text? Pozdrav z říše divů! Alenka P.S. Napište mi!
11
11 Jako „nestrukturovaný“ text? Alenka P.S. Napište mi!
12
12 Jako „nestrukturovaný“ text? Alenka P.S. Napište mi! Jak ale (automatizovaně) zjistit, kdo nám to vlastně píše?
13
13 Zavedeme konstrukci „ značka” (tag) tělo Koncová značka – zavírací závorka (end tag) Počáteční značka – otevírací závorka (start tag)
14
14 Jednotlivé složky zprávy označíme Jan Amos Karel Hynek Ahoj! Pozdrav z říše divů! Alenka Napište mi!
15
15 A zabalíme do závorek Jan Amos Karel Hynek Ahoj! Pozdrav z říše divů! Alenka Napište mi!
16
16 Pro zobrazení správného textu prohlížečem to ještě nestačí Jan Amos Karel Hynek Ahoj! Pozdrav z říše divů! Alenka Napište mi!
17
17 Musí se přidat informace o kódování Implicitně je dokument v kódu ISO 10646 (Unicode)Unicode P ro komunikaci se světem se používá UTF-8 K ompatibilní s ASCII D alší znaky kódovány na 2 až 6-ti bytech O bsahuje všechny znaky všech abeced P ro češtinu lze použít ISO-8859-2 nebo Windows- 1250
18
18 Lepší, ale stále to ještě není ono – nepopsali jsme způsob zobrazení dokumentu
19
19 Např. transformujeme do HTML Zpráva od: Alenka Jan Amos Karel Hynek Ahoj! Pozdrav z říše divů! Alenka Napište mi!
20
20 Prohlížeč teď „ví“ co s daty
21
21 O co nám jde? Samotná data se těžko zpracovávají Potřebujeme: Zajistit aby příslušný program datům rozuměl = doplnit význam jednotlivých částí Př. HTML – popis vizualizace dat pro HTML prohlížeč Problém 1: Co když nás nezajímá jen vizualizace? Problém 2: HTML má volnou strukturu Komplikuje zpracování Řešení: XML
22
22 XML XML (eXtensible Markup Language) je formát pro přenos a výměnu obecných dokumentů Extensible Markup Language (XML) 1.0 (Fifth Edition) http://www.w3.org/TR/xml/ XML je podmnožina (aplikace) SGML (Standard Generalized Markup Language - ISO 8879) U možňuj e přenos dokumentu spolu s popisem jeho struktury (syntaxe) XML se nezabývá způsobem prezentace dokumentů – je to syntaktický nástroj
23
23 XML dokument XML dokument je správně formovaný / dobře vytvořený (well-formed), když : Má úvodní XML deklaraci (prolog) J e dobře uzávorkován Každý element obsahuje počáteční i koncový tag/závorku Odpovídající závorky mají stejné jméno (case sensitivity) Dvojice závorek se nekříží Celý dokument je uzavřen v jediném kořenovém elementu
24
24 Prolog Informace pro SW, že se jedná o XML dokument Musí obsahovat deklaraci verze XML Máme 1.0 a 1.1 Může osahovat informací o kódování a samostatnosti dokumentu Deklarace verze: Pokud není v UTF-8: Pokud je bez odkazů mimo dokument : vždy malá písmena
25
25 Elementy Jan Amos Severní 12 Ahoj! Pozdrav z říše divů ! Alenka Element s textovým obsahem Prázdný element Element s elementovým obsahem Kořenový element Element se smíšeným obsahem
26
26 Atributy Jan Amos Severní 12 Ahoj! Pozdrav z říše divů ! Alenka Hodnota atributu Název atributu Element s atributy
27
27 Další prvky XML dokumentu Jan Amos <![CDATA[ for (i=0; i < 10; $++) { document.writeln(" Ahoj "); } ]]> Alenka Komentář Instrukce pro zpracování Sekce CDATA
28
28 Jazyk DTD
29
29 DTD Problém: Správná strukturovanost nestačí Potřebujeme omezit sadu značek a jejich obsah Definice typu dokumentu (Document Type Definition – DTD) popisuje strukturu (gramatiku) dokumentu Pomocí regulárních výrazů Validní XML dokument = správně strukturovaný dokument odpovídající dané gramatice Existují i další jazyky – XML Schema, Schematron, RELAX NG, …
30
30 Struktura validního dokumentu <!DOCTYPE kořenový-element [... ]>... Deklarace typu dokumentu Může být interní (gramatika je přímo uvnitř DOCTYPE) nebo externí (pouze odkaz na gramatiku uvedenou v externím souboru) Interní nemá moc význam Obojí současně je přípustné Lokální deklarace mají přednost před externími
31
31 Příklad: externí a interní DTD Hello, world! <!DOCTYPE pozdrav [ ]> Hello, world! … PUBLIC "veřejný identifikátor" "URI"
32
32 Základní značky DTD D eklarace typu dokumentu D eklarace typu elementu D eklarace seznamu atributů D eklarace entity D eklarace notace vše velkými písmeny
33
33 Deklarace typu elementu Název elementu + deklarace přípustného obsahu Prázdný, libovolný, textový, smíšený, elementový...
34
34 Deklarace typu elementu Prázdný obsah Libovolný obsah Textový obsah Smíšený obsah Elementový obsah,… sekvence |… selekce ?… iterace (0 nebo 1) + … iterace (1 a více) *… iterace (0 a více) (nazev, (autor|editor)?, p*, (nadpis,p+)*)
35
35 Deklarace atributu A tributy elementu osoba A tribut cislo je unikátní identifikace ( ID ) a je povinný ( #REQUIRED ) A tribut zamestnan obsahuje text ( CDATA ), je konstantní ( #FIXED ) a má implicitní neměnnou hodnotu ( ano ) A tribut typ je výčet ( ano nebo ne ), implicitní hodnota je ne <!ATTLIST osoba cislo ID #REQUIRED zamestnan CDATA #FIXED "ano" dovolena (ano|ne) "ne"> Pořadí v dokumentu je libovolné
36
36 Datové typy atributů CDATA – libovolný řetězec znaků V ýčtový typ ID – jednoznačný identifikátor (v rámci dokumentu), musí to být řetězec písmen, cifer a znaků „-“, „_“, „:“, „.“, nejlépe v ASCII, musí začínat písmenem, nebo znakem „_“ IDREF – odkaz na ID jiného elementu v rámci dokumentu IDREFS – seznam odkazů oddělených mezerami NMTOKEN – hodnota, tj. řetězec podobný jako ID, který ale může začínat cifrou a není jednoznačný NMTOKENS – hodnoty ENTITY – odkaz na externí entit u ENTIT IES – seznam odkazů viz dále
37
37 Požadavky na hodnoty atributů #REQUIRED – povinný atribut #IMPLIED – nepovinný atribut #FIXED – pevná hodnota atributu
38
38 Deklarace entity Prakticky se využívají pouze triviální případy Asociace názvu a hodnoty, kterou lze opakovaně využívat Dělení 1: Parsované = text, kterým je nahrazen odkaz na entitu a stává se součástí XML dokumentu Odkazujeme referencemi Neparsované = zdroj, jehož obsahem může být cokoli (např. binární data) Odkazujeme atributem typu ENTITY/ENTITIES Musí s ní asociována notace Dělení 2: Obecné – v XML dokumentech Parametrické – v DTD Dělení 3: Interní vs. externí viz dále
39
39 Možnost vložení libovolného znaku s daným kódem Hexadecimální nebo decimální Předdefinované entity pro speciální znaky Znakové entity &… amp < … lt >… gt ‘… apos “… quot Vyřešte nerovnost 3x < 5 Vyřešte nerovnost 3x < 5
40
40 Interní entita Použití: Opakující se části XML dokumentů Obecné entity Současný stav dokumentu je &stav; Externí parsovaná entita Použití: Modularizace XML dokumentů
41
41 Externí neparsovaná entita Použití: Odkaz na ne-XML data Obecné entity <!DOCTYPE zprava [ <!NOTATION avi SYSTEM "C:/Program Files/Video Player/Player.exe"> ]> Přikládám video z dovolené. Deklarace notace nebo PUBLIC
42
42 Parametrické entity Interní entita P oužití: Opakující se části DTD <!ENTITY % atributy "barva (modra|bila|cerna) #REQUIRED rychlost (velka|mala) #IMPLIED" >
43
43 Parametrické entity Externí entita Použití: Modularizace DTD... %ISOLat2;...
44
44 Podmíněné sekce <![%draft;[ ]]> <![%final;[ ]]>
45
45 DTD – větší příklad
46
46 Přehled XML technologií
47
47 Technologie XML XML = eXtensible Markup Language Technologie XML = sada souvisejících technologií Rozhraní pro práci s XML daty – DOM, SAX Popis struktury XML dokumentů – DTD, XML Schema Dotazováni nad XML daty – XPath, XQuery Aktualizace XML dat – XQuery Update Transformace XML dat – XSLT
48
48 Související problematika Standardní XML formáty XHTML, OpenOffice, MathML, SVG, … Persistence XML dat Nativní XML databáze Relační databáze s XML SQL/XML
49
49 Konec
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.