XML. Aleš Keprt 29.11.2005

Podobné dokumenty
24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Základy XML struktura dokumentu (včetně testových otázek)

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

XML terminologie a charakteristiky. Roman Malo

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

Jemný úvod do spracovania XML

APLIKACE XML PRO INTERNET

Java a XML. 10/26/09 1/7 Java a XML

NSWI096 - INTERNET JavaScript

TÉMATICKÝ OKRUH Softwarové inženýrství

Správnost XML dokumentu

Uspořádání klient-server. Standardy pro Web

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni

X L M L v v Of O f f i f ce XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor

Inovace výuky prostřednictvím šablon pro SŠ

Validace souborů DS3

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Vývoj Internetových Aplikací

Jazyky pro popis dat

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Analýza dat a modelování. Speciální struktury

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Práce se soubory opakování

Python XML a Web 1 PGS

Mgr. Vlastislav Kučera přednáška č. 1

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Lehký úvod do XML. Vysoká škola ekonomická v Praze. <jirka@kosek.cz> Web:

Tvorba informačních systémů

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Tvorba informačních systémů

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

Požadavky pro výběrová řízení TerraBus ESB/G2x

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Systém elektronického rádce v životních situacích portálu

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright Jiří Kosek

Vstupní data pro program Deformace ve formátu XML

Úvod do databázových systémů B

XML snadno a rychle Martin Kuba, ÚVT MU

PRG036 Technologie XML

14. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce

Úvod do aplikací internetu a přehled možností při tvorbě webu

Ukládání a vyhledávání XML dat

Základy WWW publikování

Popis XML struktury a XML souboru Verze XML 1.2

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Mgr. Vlastislav Kučera přednáška č. 1

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

HTML Hypertext Markup Language

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Informatika pro moderní fyziky (8) CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Mgr. Stěpan Stěpanov, 2013

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

pracuje na principu Požavek/Odpověď (request/response) výhodou je jednoduchost a teoretická možnost přenášet objekty jakéhokoliv druhu

(X)HTML-TAGY. VOŠ a SŠT Česká Třebová

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Návrh stránek 4IZ228 tvorba webových stránek a aplikací

Úvod do Web Services

PHP a XML. Stručný obsah

ZEMĚMĚŘICKÝ ÚŘAD. Uživatelská příručka - Metadatový editor MDE. Pod Sídlištěm 9/1800, Praha 8. Verze IS nebo části IS: Účel poslední změny:

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Microsoft Office 2003 Souhrnný technický dokument white paper

Tvorba webu. Úvod a základní principy. Martin Urza

(X)HTML, CSS a jquery

Tvorba WWW stránek. Mojmír Volf

Operační systémy 2 Základy Windows API

NSWI096 - INTERNET. Úvod do HTML

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Oracle XML DB. Tomáš Nykodým

Další XML technologie

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

Ukazka knihy z internetoveho knihkupectvi

10 Algoritmizace Příklad 2 Word 2007/ VBA

MBI - technologická realizace modelu

Kaskádové styly základy grafiky

Úvod do tvorby internetových aplikací

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

Základní zadání IS o ISVS. Sluţba poskytování dat IS o ISVS

XML a DTD. <!DOCTYPE kořenový_element [deklarace definující vlastnosti jednotlivých elementů a atributů]> externí deklarace:

PRG036 Technologie XML

Nastavení provozního prostředí webového prohlížeče pro aplikaci

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

TNPW1 Cvičení

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 5 VY 32 INOVACE

Problematika disertační práce a současný stav řešení. Počítače se mýlí mnohem přesněji.

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

RSS : RSS

Transkript:

XML Aleš Keprt 29.11.2005 značkovací jazyk pro obecné použití pro vytváření speciálních značkovacích jazyků Nejčastější použití: výměna dat (při komunikaci) na internetu (společně nebo místo HTML) Je to podobné jako HTML, ale víc obecné. Vznik 1996-1997, oficiální verze 1.0 únor 1998 (W3C recommendation) Současná verze: 1.0 třetí vydání a 1.1 únor 2004 (lepší unicode podpora) Vlastnosti XML Určeno k reprezentaci dat ve stromové podobě Textová podoba (vše je text, binární data jsou trošku problém) Obsahem XML je: Data proložená značkami. Dobře se to edituje stačí obyčejný textový editor Je to platformě nezávislé, dobře přenositelné, pro univerzální použití Struktura XML souboru XML je obecné, umožňuje definovat vlastní jazyky pomocí schémat Schema: definuje strukturu XML souboru pro nějaké konkrétní použití o Schema může definovat omezení, že <narozeniny> musí obsahovat právě jeden prvek <datum>, ten zas právě jeden prvek <den>, apod. o Schema může definovat také datové typy, tj. povolené domény hodnot. Srovnej s HTML tam je pevná struktura tagů, kterou nelze nijak pozměnit Někdy se z praktických důvodů používají různé binární XML, což jsou nestandardní úpravy XML zmenšující objem dat Výhody a nevýhody XML Pro přenos dat: Je to formát zároveň čitelný člověkem i strojem Podporuje unicode, tj. všechny světové jazyky i další symboly a značky Dokáže reprezentovat nejběžnější datové struktury: záznamy, seznamy, stromy o Pozn. Odpovídá v C++ struct/class, list/array/vector, tree Je sebepopisný definuje zároveň jména datových položek, jejich strukturu a hodnoty Pevná syntaxe umožňuje jednoduché a efektivní strojové zpracování (parsování) Jako úložiště dat: Je standardizován Hierarchická struktura je vhodná pro většinu druhů dat (i když ne všechny) XML data, to je obyčejný text nevztahují se na to žádné patenty apod. Je platformě nezávislý, takže přežije i technologické změny počítačů Nevýhody: 1

Syntaxe XML je docela nabobtnalá snižuje to přehlednost pro člověka a XML soubory jsou taky hodně velké (problém na síti, na kapesních počítačích atp.) XML strom může být libovolně hluboko vnořený, což opět zatěžuje slabší počítače s menší pamětí (+ nebezpečí stack overflow atp.) XML samo o sobě obsahuje jen textová data jiné datové typy je nutno definovat zvlášť pomocí schémat, nebo zpracovávat dodatečnou konverzí textu na jiný datový typ Využití pro obecnější než stromové struktury je složitější o Např. obecné uložení objektů, relační nebo síťové databáze atp. Syntaxe XML Příklad receptu (na vaření) v XML: <?xml version="1.0" encoding="utf-8"?> <Recipe name="bread" prep_time="5 mins" cook_time="3 hours"> <title>basic bread</title> <ingredient amount="3" unit="cups">flour</ingredient> <ingredient amount="0.25" unit="ounce">yeast</ingredient> <ingredient amount="1.5" unit="cups">warm Water</ingredient> <ingredient amount="1" unit="teaspoon">salt</ingredient> <Instructions> <step>mix all ingredients together, and knead thoroughly.</step> <step>cover with a cloth, and leave for one hour in warm room.</step> <step>knead again, place in a tin, and then bake in the oven.</step> </Instructions> </Recipe> 1.řádek: XML deklarace číslo verze a (volitelně) kódování znaků Další řádky obsahují elementy, ty mohou být libovolně (stromově) vnořené a mohou obsahovat atributy a/nebo obsah (příklady jsou označeny barevným pozadím). Element se obvykle skládá ze dvou tagů. Počáteční tag a koncový tag se liší jen lomítkem viz příklad. Atributy mohou být připojeny k počátečnímu tagu a mají formát jméno= hodnota, hodnota je vždy v uvozovkách. Častá chyba: HTML kód často nevyhovuje XML protože tagy nejsou stromově vnořeny. Například toto není stromová struktura: <p>normal <em>emphasized <strong>strong emphasized</em> strong</strong></p> Tag <em> tady končí dřív, než jeho vnořený tag <strong>. HTML také často není XML, neboť některé tagy nejsou párové to v XML nejde. Ke každému počátečnímu tagu musí být jeho ukončovací tag (a na správném místě). Pokud element neobsahuje žádný obsah, je možno počáteční a koncový tag spojit uvedením lomítka na konci počátečního. Příklad: následující dva řádky jsou v XML identické. <něco></něco> <něco/> Pozor! XML dokument může obsahovat jen jeden root element! (Root = kořen, to je element na nejvyšší úrovni. Strom může mít jen jeden kořen.) Poznámka: Neopakující se položky lze technicky vzato zapsat pomocí atributů i vnořených elementů. Použití atributů vždy vede k podstatně kratšímu kódu, proto je to doporučeno. 2

Speciální znaky escape sekvence Některé znaky nelze zapsat normálně buď proto, že je nemáme na klávesnici (třeba znaky cizích nárních abeced), nebo proto, že by to kolidovalo s XML syntaxí (třeba levá lomená závorka <). Tyto znaky lze zapisovat pomocí tzv. escape sekvencí. 1. Entity reference o odkazuje jménem entity o je možné použít pro znaky, ale i pro celé opakující se řetězce o zabudované entity reference: < > " & &apos; 2. Character reference o odkazuje na jednotlivé znaky podle jejich čísla v unicode o př. & je znak & (číslo 38 v Unicode/ASCII) Korektnost XML dokumentu Korektní XML dokument musí splňovat dvě vlastnosti: well formed, valid 1. Well formed o Vyhovuje XML syntaxi (správně vnořený strom, párové <tagy>, atp.) o Parser musí nekorektní XML dokument odmítnout 2. Valid o Dokument vyhovuje nějakému konkrétnímu uživatelskému formátu o Validita se obvykle kontroluje podle schémat (zmíněno výše) Well formed dokumenty XML dokument je text, čili posloupnost znaků. Vyžadována je podpora kódování znků UFT-8 a UTF-16, ostatní jsou nepovinné Well-formed dokument musí mj. splňovat tato pravidla: Pouze jeden root element (před ním může být hlavička XML dokumentu) Neprázdné elementy jsou vždy ukončeny párovým ukončovacím tagem Prázdné elementy mohou alternativně mít jednotagový zápis Všechny hodnoty atributů jsou v uvozovkách " nebo apostrofech '. Uvozovky musí být ukončeny uvozovkami, apostrof musí být ukončen apostrofem (nelze to míchat). Tagy mohou být vnořeny, ale nesmí se překrývat (musí to být strom). Dokument musí spadat do kódování znaků určeného v hlavičce. Kódování může být uvedeno v transportním protokolu (tj. mimo XML dokument). Není-li kódování uvedeno, výchozí je UTF-16 a je detekováno podle byte-order značky. Není-li byteorder značka, pak je výchozí kódování UTF-8. Jména elementů jsou case sensitive. Poznámka: Jména elementů a atributů by měla vystihovat jejich smysl, neboť to zvyšuje přehlednost a srozumitelnost dokumentu pro člověka. Může to ale také způsobovat zvětšení délky dokumentu. Validní dokumenty Validní dokument je ten, který je well formed a odpovídá nějakému schématu. XML schéma je popis nějakého konkrétního typu dokumentu obvykle obsahuje především omezení toho, který element může/musí být vnořený do kterého, které elementy jsou povinné apod. XML parsery často umějí kontrolovat validitu dokumentu proti danému schématu. 3

Jazyky schémat DTD (Document Type Definition) Nejstarší jazyk pro definici schémat. Je široce podporován, má ale jistá omezení: Nepodporuje jmenné prostory (namespace) Některé věci v něm prostě nejdou definovat Samotný DTD není XML jazykem XSD (XML Schema Definition) Oficiální nástupce DTD. Používá systém datových typů Umožňuje definovat přesnější pravidla pro strukturu XML dokumentů Samotný XSD je také XML jazykem Existují samozřejmě i další jazyky schémat. Poznámka: DTD i XSD umějí definovat výchozí hodnoty pro neuvedené atributy. Někdy se to může hodit. Zobrazování XML na webu XML soubory se zobrazují jako obyčejné textové soubory. Chceme-li je používat místo HTML, můžeme pomocí jazyků CSS nebo XSL definovat, jak má XML soubor vypadat. Čili definujeme, jak se má který element zobrazit. CSS (Cascading Style Sheets) je starší záležitost, používá se obvykle pro upřesnění vzhledu klasických HTML souborů. Jazyk CSS není XML jazykem, ale existují na to dobré editory. Použití CSS spolu s XML dává podobné výsledky jako použití CSS s HTML. <?xml-stylesheet type="text/css" href="styl.css"?> XSL (Extensible Stylesheet Language) / XSLT (XSL Transformation) je věc vytvořená přímo pro XML umožňuje definovat transformaci XML souboru do jiného formátu. Tentokrát transformujeme XML do HTML a to doslova! Čili výsledek XSL transformace lze uložit jako HTML soubor. <?xml-stylesheet type="text/xsl" href="styl.xsl"?> XSL je lepší než CSS a obojí lze dělat přímo na klientském počítači v HTML prohlížeči.. Programové zpracování XML dokumentů Nikdy nepište vlastní parser! Použijte nějakou hotovou knihovnu. W3C definuje dva základní standardy: DOM a SAX. Obojí je platformě nezávislé. DOM (Document Object Model) Zpřístupňuje XML dokument ve formě objektů (v objektově orientovaném jazyce). Umí dokumenty načítat, měnit i ukládat S jakýmkoliv well formed XML dokumentem lze pracovat pomocí DOM Celý dokument je vždy uložen ve formě objektového stromu v paměti U velkých dokumentů velmi zatěžuje paměť (a je to i pomalé) 4

SAX (Serial Access Parser API / Simple API for XML) Alternativa k DOM Umí XML dokumenty pouze číst (neumí měnit či zapisovat) Nepřechovává celý dokument v paměti vhodné pro velké dokumenty Dokument čte vždy celý postupně sekvenčně Načtení XML dokumentu pomocí SAX je obvykle rychlejší než pomocí DOM DOM i SAX lze používat ve Visual C++ přes MSXML. http://msdn.microsoft.com/xml/ XML v.net Frameworku Dotnet obsahuje knihovnu pro práci s XML v jmenném prostoru System..Xml. Podporované prvky jsou: XML 1.0 XML Namespaces DTD XSD Schemas XPath výrazy XSL transformace DOM Level 1 Core, DOM Level 2 Core Příklad <?xml version="1.0" encoding="windows-1250"?> <tournament> <name>testovací turnaj</name> <id>tt</id> <placepts>4 3 2 1</placepts> <players> <player number="1" id="ak" name="bla Blabla" /> <player number="3" id="dk" name="asd Asdasd" /> <player number="4" id="is" name="iii Iiiiiiiiiiiii" /> </players> </tournament> Načtení XML souboru do DOM stromu XmlDocument doc = new XmlDocument(); doc.load("soubor.xml"); Načtení hráčů do objektů pomocí Xpath výrazu foreach(xmlnode node in doc.documentelement.selectnodes("players/player")) { 5

} Player p = new Player( int.parse(node.attributes["number"].value), node.attributes["id"].value, node.attributes["name"].value); players.add(p); Literatura Existuje tisíc knih o XML (hlavně volte nějaká dobrá vydavatelství Microsoft Press, O Reilly apod.) Na webu je i tisíc XML tutoriálů na Googlu zadáte XML 679 milionů odkazů Všechny pojmy jsou vysvětleny ve Wikipedii Všechny standardy jsou srozumitelně popsány na www.w3.org Stránka Microsoftu: http://msdn.microsoft.com/xml/ Použijte nápovědu MSDN u Visual Studia Mgr. Aleš Keprt, Ph.D., 2005 Vytvořeno pro potřeby přednášky na UP Olomouc. Tento text není určen pro samostudium, ale jen jako vodítko pro přednášku, takže jeho obsah se může čtenáři zdát stručný, nekompletní či možná i chybný. Použití je povoleno dle vlastní libosti, ale jen na vlastní nebezpečí. V případě dalšího šíření je NUTNO uvádět původního autora a odkaz na původní dokument. Komentáře můžete posílat e-mailem autorovi (adresu najdete přes Google). 6