Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský

Podobné prezentace


Prezentace na téma: "1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský"— Transkript prezentace:

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


Stáhnout ppt "1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský"

Podobné prezentace


Reklamy Google