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

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

Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z www.kosek.cz)

Podobné prezentace


Prezentace na téma: "Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z www.kosek.cz)"— Transkript prezentace:

1 Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z

2 Jmenné prostory v jednom dokumentu se mohou mísit tagy popsané např. v různých DTD, –fragmenty textu formátovaného v HTML vložené do jiného XML –tagy pro transformační instrukce smíšené s tagy transformovaného dokumentu atd. význam tagů nesmí být nejednoznačný, je třeba vyřešit duplikaci jmen elementů a atribututů z různých schémat Namespaces in XML – doporučení W3C, 1999 –poskytuje mechanismus pro identifikaci jmenných prostorů použitých v dokumentu –umožní identifikovat, ke kterému jmennému prostoru daný element nebo atribut patří

3 Jmenné prostrory, pokrač. jako identifikátor jmenného prostoru se používá URL –jednoznačnost –očekávaná informativní hodnota (na URL naleznu o daném jmenném prostoru více informace) Pozor: formálně jde stále pouze o identifikátor! aplikace nebudou vyžadovat přístup k internetu a dané URL ve skutečnosti nemusí ani existovat! plně kvalifikované jméno (atributu/elementu) –prefix:jmeno –zavedení prefixů – atribut xmlns:prefix –pokud jeden namespace dominuje, lze použít prázdný prefix:

4 Navigace a odkazování v XML adresování dokumentů –URL (Universal Resource Locator) –tj. obvyklé protokol://počítač:port/cesta/zdroj navigace uvnitř dokumentu –vztah mezi dvěma elementy s atributy ID a IDREF –XPath Standardy Xlink, XPointer

5 XPath výsledkem výrazu v jazyku XPath aplikovaném na konkrétní dokument – množina uzlů dokumentu (dokument chápán jako stromová struktura s uzly tří typů – elementy, atributy, text) syntaxe XPath podobná adresování v souborovém systému příklady: –/kniha – kořenový element s názvem para –/kniha/kapitola – všechny elementy kapitola z kořenového elementu kniha –/kniha/* - všechny elementy v elementu kniha

6 XPath pokrač. příklady: –/*/*/*/para – elementy para ve čtvrtém patře –//kapitola – všechny elementy kapitola (kdekoli v dokumentu) –//bold | //italic – všechny elementy bold a italic kdekoli –/kniha/kapitola[2] – druhý element kapitola –/kniha/kapitola[last] – atribut lang rodiče aktuálního uzlu –//*[count(para)=3] – elementy obsahující tři elementy para

7 Transformace dokumentů motivace –např. prezentace XML dokumentů (uživatelé dokumentu nechtějí číst tagy, chtějí mít text formátovaný atd.) styl (style sheet) –vztah mezi logickou strukturou a prezentační formou: XSL – eXtensible Stylesheet Language –popis transformace XSLT – XSL Transformation –vlastní proces transformace XSLT procesorem –xsltproc test.xsl test.xml > test.html

8 XSL Deklarace stylu – XML dokument, využívající jmenný prostor xsl: deklarace šablon tělo stylu – alespoň jedno transformační pravidlo – šablona (element template) –výraz – najde uzly, na které bude šablona aplikována –výstup - čím bude nalezený uzel nahran výstup

9 XSL - příklad . (id = ) Uvod bla bla Zaver bla bla

10 Aplikační rozhraní pro XML (API – application interface) SAX – Simple API for XML –a document is read serially and its contents are reported as “callbacks” –fast and efficient to implement, but user applications have to keep tract of what part of the document is being processed DOM – Document Object Model –allows for navigation of the entire document represented as a tree of objects –language-neutral interface to an in-memory representation of an XML document

11 SAX Event Handlers in Perl každému typu událostí odpovídá procedura daného jména:

12 DOM The DOM presents an XML document as a tree-structure (a node tree), with the elements, attributes, and text defined as nodes. –The entire document is a document node –Every XML tag is an element node –The texts contained in the XML elements are text nodes –Every XML attribute is an attribute node –Comments are comment nodes Example:

13 DOM in Perl XML::DOM nebo XML::LibXML Ukázka: #!/usr/bin/perl use XML::DOM; my $parser = XML::DOM::Parser->new(); my $doc = $parser->parsefile('test.xml'); foreach my $kap ($doc->getElementsByTagName('kapitola')) { print "Attribute id contains: ".$kap- >getAttribute("id")."\n"; foreach $child ($kap->getChildNodes) { my $type = $child->getNodeType(); if ($type == ELEMENT_NODE) { print "Element ".$child->getTagName." contains: ". $child->getFirstChild->getNodeValue."\n"; } elsif ($type == TEXT_NODE) { print "Text: ".$child->getNodeValue."\n"; } Uvod bla bla Zaver bla bla


Stáhnout ppt "Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z www.kosek.cz)"

Podobné prezentace


Reklamy Google