Další XML technologie



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

Příklad buňka tabulky

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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

XML Signatures. Autor

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

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

PRG036 Technologie XML

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.

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

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

APLIKACE XML PRO INTERNET

PRG036 Technologie XML

Správnost XML dokumentu

Vývoj Internetových Aplikací

HTML Hypertext Markup Language

Návrh technických pravidel pro tvorbu SIP

Ukazka knihy z internetoveho knihkupectvi

E-learning a DocBook

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

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

Dotazování nad stromem abstraktní syntaxe

(X)HTML, CSS a jquery

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:

XML terminologie a charakteristiky. Roman Malo

Alena Malovaná, MAL305

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

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

Obsah prezentace. Co je to XML? Vlastnosti. Validita

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

ECR BRÁNA - ROZHRANÍ ECR OBÁLKA 2.0. Verze dokumentu: 1.1 Datum vzniku: Počet stran: 16

MBI - technologická realizace modelu

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

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

Zabezpečená middleware komunikace

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

Jazyky pro popis dat

ECR brána - rozhraní ECR obálka 2.0

Tvorba informačních systémů

RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16

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

Logický datový model VF XML DTM DMVS

Tvorba informačních systémů

XML databáze. Přednáška pro kurz PB138 Moderní značkovací jazyky Ing. Petr Adámek

Využití XML v DB aplikacích

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

Bloky, externí reference

Komprese a dotazování nad XML dokumenty

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

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

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

XQuery. Jirka Kosek. Visual FoxPro DevCon června Praha. Copyright 2005 Jiří Kosek

NSWI096 - INTERNET JavaScript

Oracle XML DB. Tomáš Nykodým

PHP a XML. Stručný obsah

Úvod do Web Services

XML schémata. Jiří Kosek

XML snadno a rychle Martin Kuba, ÚVT MU

Co nového ve spisové službě? Národní standard pro elektronické systémy spisové služby a jeho optimalizace

Tvorba WWW stránek. Mojmír Volf

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Část 1 Moderní JavaScript

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

XML schémata. Jiří Kosek

XSLT a jmenné prostory

Mgr. Stěpan Stěpanov, 2013

Kaskádové styly (CSS)

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

Použití databází na Webu

Tvorba informačních systémů

8 Třídy, objekty, metody, předávání argumentů metod

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

CSS Stylování stránek. Zpracoval: Petr Lasák

Vstupní data pro program Deformace ve formátu XML

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Validace souborů DS3

XFORMS JAKO NÁHRADA WEBOVÝCH FORMULÁŘŮ XFORMS - WEB FORMS SUCCESSOR

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

RDF serializace Turtle

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

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

Kolaborativní aplikace

Čtvrtek 11. dubna. Základy HTML. Obecná syntaxe HTML. Struktura HTML

Š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

Inteligentní podpora navigace na WWW

EXTRAKT z mezinárodní normy

Základy WWW publikování

Tvorba informačních systémů

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Základní datové struktury

Výměnný formát XML DTM DMVS PK

PELIKAN DANIEL Definice XML exportů

Z n a č k o v a c í j a z y k y. XPath, XLink, XQuery, XPointer, XLinkTime, XForms

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

Manuál k programu RIZIKA

NÁVRH A REALIZACE WWW PREZENTACE ČKR

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

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

Transkript:

XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2012/05/17 18:58:55 $

Obsah Odkazy... 3 Odkazy v rámci jednoho dokumentu... 4 XLink (XML Linking Language)... 5 XLink (Jednoduché odkazy)... 6 XLink (Metainformace o odkazu)... 7 XLink (Rozšířené odkazy)... 8 XLink (Oblouky (arcs))... 9 XML Base... 10 XPointer (XML Pointer Language)... 11 Podpora XLinku a XPointeru... 12 Další XML standardy... 13 XML Infoset... 14 XInclude... 15 XInclude (Podpora v aplikacích)... 16 Kanonické XML... 17 XML-Signature... 18 XML-Encryption... 20

Odkazy Odkazy v rámci jednoho dokumentu... 4 XLink (XML Linking Language)... 5 XLink (Jednoduché odkazy)... 6 XLink (Metainformace o odkazu)... 7 XLink (Rozšířené odkazy)... 8 XLink (Oblouky (arcs))... 9 XML Base... 10 XPointer (XML Pointer Language)... 11 Podpora XLinku a XPointeru... 12 (strana 3)

Odkazy v rámci jednoho dokumentu každý element můžeme jednoznačně označit pomocí atributu typu ID každý element může obsahovat atribut ukazující na jiné elementy (typ IDREF nebo IDREFS) nově se začíná prosazovat atribut xml:id, který nevyžaduje deklaraci typu ve schématu hojně se používá v DTD pro tvorbu rozsáhlých dokumentů, které tvoří ucelené celky (např. DocBook pro knihu v jednom XML dokumentu) Příklad 1. Ukázka odkazů pomocí ID/IDREF <chapter id="uvod"> <title>úvod</title> </chapter> <xref linkend="uvod"/> Příklad 2. Totéž s xml:id <chapter xml:id="uvod"> <title>úvod</title> </chapter> <xref linkend="uvod"/> Odkazy 1 / 15 (strana 4)

XLink XML Linking Language mezi dokumenty se musí využít speciální jazyk XLink zpětná kompatibilita s HTML odkazy odkazy mezi více zdroji doplnění odkazů o metadata odkazy lze uložit mimo odkazované dokumenty odkaz = explicitní vyjádření vztahu mezi nějakými zdroji zdroj = jakýkoliv objekt adresovatelný pomocí URI (soubor, obrázek, výsledek dotazu apod.) XPointer přesné určení místa ve zdroji, případně výběr jeho části několik druhů odkazů rozlišují se pomocí hodnoty atributu type odkazy se vytvářejí pomocí elementů a atributů patřících do jmenného prostoru http://www.w3.org/1999/xlink Odkazy 2 / 15 (strana 5)

XLink Jednoduché odkazy obdoba HTML odkazů ukázka: <odkaz xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.nekde.cz">odkaz</odkaz> některé starší implementace XLink vyžadují ještě uvádění xlink:type="simple" Odkazy 3 / 15 (strana 6)

XLink Metainformace o odkazu show způsob zobrazení (embed, new, replace, other, none) actuate okamžik aktivace odkazu (onload, onrequest, other, none) title název/popis odkazu role sémantická role odkazu, identifikuje se pomocí URI adresy Odkazy 4 / 15 (strana 7)

XLink Rozšířené odkazy spojují více zdrojů <rozšířený xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <zdroj xlink:href="http://email.seznam.cz" xlink:type="locator" xlink:title="seznam"/> <zdroj xlink:href="http://mail.atlas.cz" xlink:type="locator" xlink:title="atlas"/> <zdroj xlink:href="http://www.post.cz" xlink:type="locator" xlink:title="post"/> <zdroj xlink:href="http://email.centrum.cz" xlink:type="locator" xlink:title="centrum"/> <popis xlink:type="resource">přehled free poštovních serverů</popis> </rozšířený> lokální část (xlink:type="resource") může chybět, odkaz pak spojuje jen externí zdroje rozšířený odkaz se může skládat z: locator vzdálený zdroj resource lokální zdroj title popis odkazu arc popis pravidel přechodu mezi jednotlivými zdroji Odkazy 5 / 15 (strana 8)

XLink Oblouky (arcs) u rozšířených odkazů není definováno, v jakém směru je lze procházet pomocí oblouků to můžeme snadno definovat každý zdroj má přiřazené návěstí (nemusí být unikátní), oblouky pak popisují směr přechodu pomocí jmen návěstí <extendedlink xlink:type="extended"> <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p1" /> <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p2" /> <loc xlink:type="locator" xlink:href="..." xlink:label="child" xlink:title="c1" /> <loc xlink:type="locator" xlink:href="..." xlink:label="child" xlink:title="c2" /> <loc xlink:type="locator" xlink:href="..." xlink:label="child" xlink:title="c3" /> <go xlink:type="arc" xlink:from="parent" xlink:to="child" /> </extendedlink> atribut arcrole sémantická role oblouku, identifikuje se pomocí URI adresy (podobně jako role u jednoduchých odkazů) Odkazy 6 / 15 (strana 9)

XML Base napodobení funkčnosti elementu BASE z HTML určení URI adresy, ke které se vztahují další odkazy v dokumentu zapisuje se pomocí speciálního atributu xml:base <?xml version="1.0"?> <doc xml:base="http://example.org/dnes/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>aktuální zprávy</title> </head> <body> <paragraph>dnešní <link xlink:href="pocasi.xml">předpověd počasí</link>!</paragraph> <!-- http://example.org/dnes/pocasi.xml --> <olist xml:base="/archiv/"> <item> <link xlink:href="videa.xml">video archiv</link> <!-- http://example.org/archiv/videa.xml --> </item> <item> <link xlink:href="obrazky.xml">archiv obrázků</link> <!-- http://example.org/archiv/obrazky.xml --> </item> <item> <link xlink:href="/kontakt.xml">kontaktní informace</link> <!-- http://example.org/kontakt.xml --> </item> </olist> </body> </doc> Odkazy 7 / 15 (strana 10)

XPointer XML Pointer Language rozšíření XLinku o možnost tvorby odkazů na části dokumentu přidává se na konec URL za # http://www.nekde.cz/zdroj.xml#xpointer(...) existuje několik schémat použitelných s XPointerem xmlns, element, xpointer XPointer výrazy používají rozšířený jazyk XPath zachování zpětné kompatibility s HTML odkazy: http://www.nekde.cz/zdroj.xml#kap3 http://www.nekde.cz/zdroj.xml#xpointer(id('kap3')) můžeme uvést několik XPointer výrazů, které se vyhodnocují, dokud některý něco nevrátí: element(kap3)xpointer(id('kap3'))xpointer(//*[@id='kap3']) ve schématu element se nepoužívají XParh výrazy, ale pořadová čísla dítěte, která mohou případně začínat ID elementu: element(/1/2/5) do XPath jsou přidány dva nové typy rozsah (range) a místo (point) v dokumentu několik nových funkcí: id('kap1')/range-to(id('kap2')) vytvoří rozsah pokrývající vše od začátku elementu s ID kap1 do konce elementu s ID kap2 string-range(//title, "Karel IV.") vybere všechny texty Karel IV. uvnitř elementů title covering-range(), range-inside() funkce ze seznamu uzlů vytvoří rozsah start-point(), end-point() zjistí první a poslední místo v daném seznamu uzlů Odkazy 8 / 15 (strana 11)

Podpora XLinku a XPointeru nativní podpora je velice slabá XLink používá jen pár specifikací (DocBook, SVG, XBRL, ) Odkazy 9 / 15 (strana 12)

Další XML standardy XML Infoset... 14 XInclude... 15 XInclude (Podpora v aplikacích)... 16 Kanonické XML... 17 XML-Signature... 18 XML-Encryption... 20 (strana 13)

XML Infoset abstraktní datový model pro XML dokumenty ke každému XML dokumentu existuje reprezentace v podobě infosetu (stromová reprezentace) je využíván v dalších standardech PSVI = Post Schema Validation Infoset otypovaný infoset dokument využívá se např. v dotazovacích jazycích (XQuery), které potřebují znát typy dat v jednotlivých elementech a atributech Další XML standardy 10 / 15 (strana 14)

XInclude umožňuje složení XML dokumentu z několika dílčích souborů jednodušší použití než externí textové entity umožňuje vkládání XML fragmentů nebo textových souborů každý fragment může mít svoje <!DOCTYPE > Příklad 3. Vložení XML souboru <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="vlozeny_dokument.xml"/> Příklad 4. Vložení textového souboru <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="vlozeny_zdrojak_v_javě.java" parse="text" encoding="windows-1250"/> Příklad 5. Vložení pouze elementu s daným IDL <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="source.xml" xpointer="tabulka-vyvoj-hdp"/> Příklad 6. Vložení fragmentu XML <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="source.xml#xpointer( string-range(chapter/p[1],'sentence 2') /range-to (string-range(chapter/p[2]/i,'3.',1,11)))"/> Další XML standardy 11 / 15 (strana 15)

XInclude libxml2 1 velmi dobrá podpora Podpora v aplikacích vyhodnocení XInclude v dokumentu: xmllint --xinclude dokument.xml validace jednotlivých částí: xmllint --xinclude --valid dokument.xml v DTD musíme mít deklarované i elementy pro XInclude validace složeného dokumentu: xmllint --xinclude --postvalid dokument.xml Java standardní součást JDK od 1.5, samostatně v Xercesu.NET implementace 2 implementace v C++ pro Windows 3 1 http://xmlsoft.org 2 http://mvp-xml.sourceforge.net/xinclude/ 3 http://www.xinclude.net/xi/ Další XML standardy 12 / 15 (strana 16)

Kanonické XML z obsahového hlediska stejný XML dokument může být uložen v souboru několika různými způsoby (nepodstatné mezery, různé konce řádků apod.) mnoho aplikací potřebuje XML dokumenty porovnávat (např. digitální podpisy) kanonické XML definuje algoritmus pro normalizaci XML dokumentů dva dokumenty se považují za identické, pokud je identická jejich kanonizovaná podoba Příklad 7. Zdrojový dokument XML <?xml version="1.0" encoding="utf-8"?> <a x="a" mno="pq r"> <b >ahoj</b> </a> Příklad 8. Výsledek kanonizace <a mno="pq r" x="a"> <b>ahoj</b> </a> Další XML standardy 13 / 15 (strana 17)

XML-Signature standard pro přidání digitálního podpisu k XML dokumentu definuje syntaxi a zpracování digitálních podpisů podepsat lze libovolná data včetně XML dokumentů podporuje mnoho algoritmů a metod digitální podpis je zapisován v XML syntaxi XML dokument může mít podpis přímo jako svoji část lze podepsat jen část dokumentu (výběr pomocí XPath) již dnes existují knihovny, které umožňují podepisování a ověřování podpisů v dokumentech http://www.w3.org/signature/#code Příklad 9. Ukázka dokumentu podepsaného pomocí XML Signature <faktura cislo="12/2000" vystaveni="2.2.2000" splatnost="16.2.2000"> <odberatel> <nazev>poučená, a.s.</nazev> <adresa>široká 21, Praha 1, 110 00</adresa> <ico>0987654321</ico> <dic>007-0987654321</dic> </odberatel> <dodavatel> <nazev>xmlcompany, s.r.o.</nazev> <adresa>dlouhá 12, Praha 1, 110 00</adresa> <ico>1234567890</ico> <dic>007-1234567890</dic> </dodavatel> <polozka> <popis>analýza nasazení XML v podnikovém IS</popis> <cena dph="5">50000</cena> </polozka> <polozka> <popis>xml Editor - 10 licencí</popis> <cena dph="5">128956</cena> </polozka> <polozka> <popis>notebook micromini</popis> <cena dph="22">89500</cena> </polozka> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> Další XML standardy 14 / 15 (strana 18)

XML-Signature (Pokračování) <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>AOz+uJFiTA40hbArhXycZl5V0PM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>IdPPqheBUJEz4dn8cdMUlzt2L49ZP0uKm5f0cFe+Fg3AtvGuclQjQA==</SignatureValue> <KeyInfo><X509Data><X509Certificate >MIIDHjCCAtwCBEOXYIkwCwYHKoZIzjgEAwUAMHUxCzAJBgNVBAYTAmN6MRgwFgYDVQQIEw9DZXNr YSBSZXB1Ymxpa2ExDzANBgNVBAcTBlV0b3BpZTEMMAoGA1UEChMDQklTMREwDwYDVQQLEwhWcmF0 bmljzteambgga1ueaxmrsg9uemegug9kzxbpc292ywmwhhcnmduxmja3mjiymjaxwhcnmdywmza3 MjIyMjAxWjB1MQswCQYDVQQGEwJjejEYMBYGA1UECBMPQ2Vza2EgUmVwdWJsaWthMQ8wDQYDVQQH EwZVdG9waWUxDDAKBgNVBAoTA0JJUzERMA8GA1UECxMIVnJhdG5pY2UxGjAYBgNVBAMTEUhvbnph IFBvZGVwaXNvdmFjMIIBtzCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdS PO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLC T7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQ jxujc8yykrmcouuec/byhpucgyea9+gghdabpd7lvktcnrhxuxmur7v6ouqc+vdmcz0hgmdrwveo utrzt+zxbxcbglrjfnej6ewofho3zwkyjmim4twweotufi0o4kouhiuzpnwrbqn/c/ohnwlx+2j6 ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYQAAoGAXnqhIF3rNJZwbO9lhv3p gjx6cvday5z/dpggzpzvc93decdwhnffrlshvpt83gwnvkselkwwk1m541met+e+nhzhmso/97b5 9Legr7hxBWwIk8wz+nWWdwrx8sgAwFE8BJvCAbQYHjc9+50XmsGfQBrXVTfCmY3W3iQB0eqncskw CwYHKoZIzjgEAwUAAy8AMCwCFGxV1DWTDooPp4LNWEtEPxxMhCulAhQ61Zzeb9zxWy+Z0hkRl3Gf g6nmxa==</x509certificate></x509data></keyinfo></signature></faktura> Další XML standardy 14 / 15 (strana 19)