210 likes | 359 Views
Cvičení 5: XML a regulární výrazy. David Pejčoch. 5 .10.2010. XML ( Extensible Markup Language ). Semistrukturovaná data Obecný značkovací jazyk Vyvinut a standardizován konzorciem W3C
E N D
Cvičení 5: XML a regulární výrazy David Pejčoch 5.10.2010
XML (ExtensibleMarkupLanguage) • Semistrukturovaná data • Obecný značkovací jazyk • Vyvinut a standardizován konzorciemW3C • Zjednodušená podoba staršího jazyka SGML (Standard GeneralizedMarkupLanguage) = prostředek pro definování univerzálního formátu výměny informací • Umožňuje snadné vytváření konkrétních značkovacích jazyků pro různé účely a různé typy dat • Formát pro výměnu dat mezi aplikacemi • Odděluje data od způsobu jejich prezentace • Snadno čitelný a editovatelný
Příklady aplikace XML (1) • XHTML– XML alternativa jazyka HTML. • RDF– ResourceDescription Framework umožňuje popsat metadata a zaznamenat ontologie, např. popsat obsah HTML stránky. • RSS – Rodina XML formátů, sloužící pro čtení novinek na webových stránkách. • SMIL – Synchronized Multimedia IntegrationLanguage, popisuje multimedia pomocí XML.
Příklady aplikace XML (2) • SVG – ScalableVectorGraphicsje jazyk pro popis dvourozměrné vektorové grafiky, statické i dynamické (animace). • MathML – MathematicalMarkupLanguageje značkovací jazyk pro popis matematických vzorců a symbolů pro použití na webu. • DocBook – Sada definic dokumentů a stylů pro publikační činnost.
Příklady aplikace XML (3) • Jabber – Protokol pro Instant messaging. • SOAP – Protokol pro komunikaci mezi Webovými službami. • Office Open XML, OpenDocument– Souborový formát určený pro ukládání a výměnu dokumentů vytvořených kancelářskými aplikacemi.
Příklad RDF <?xmlversion="1.0"?><rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:cd="http://www.recshop.fake/cd#"><rdf:Descriptionrdf:about="http://www.recshop.fake/cd/EmpireBurlesque"> <cd:artist>Bob Dylan</cd:artist> <cd:country>USA</cd:country> <cd:company>Columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year></rdf:Description>...</rdf:RDF> Zdroj: http://www.w3schools.com/rdf/rdf_example.as
Struktura XML dokumentu Instrukce pro zpracování; deklarace souboru <?xmlversion="1.0" encoding="utf-8"?> <!–Vygenerováno z relační databáze v 19/10/2009 14:51:00--!> <shop> <item id = "p156"> <product>káva NicaMex -… </product> <description> Tato směs velmi kvalitních odrůd kávy … </ description> <package unit="grams">200</package> <url>http://www.fair-bio.cz/…</url> <availability unit="days">0</availability> <imgurl>http://www.fair-bio.cz/ … .jpg</imgurl> <price currency="CZK">69.72</price> <vat>9</vat> </item> <item id="p19"> … </item> </shop> Komentář Otevírací tag elementu Ukončovací tag elementu
Struktura XML dokumentu <?xmlversion="1.0" encoding="utf-8"?> <!– Vygenerováno z relační databáze v 19/10/2009 14:51:00--!> <shop> <itemid = "p156"> <product>káva NicaMex -… </product> <description> Tato směs velmi kvalitních odrůd kávy … </ description> <package unit="grams">200</package> <url>http://www.fair-bio.cz/…</url> <availability unit="days">0</availability> <imgurl>http://www.fair-bio.cz/ … .jpg</imgurl> <price currency="CZK">69.72</price> <vat>9</vat> </item> <item id="p19"> … </item> </shop> Atributový uzel Text
Zásada tvorby XML dokumentu • Do atributů by se měly ukládat "atomické" hodnoty, které mají roli metadat • Rezervované znaky, především <>&, převádíme na entity, nebo text vložíme do CDATA sekce (Pozn.: CDATA se použije typicky pokud je součástí XML dokumentu nějaký zdrojový kód) • Volíme co nejjemnější členění, každá informace do samostatného elementu
Co je ještě nutné vědět o XML? • Definice datových schémat pro XML dokumenty => definice vlastních elementů (ne jako v HTML) • DTD (Document Type Definition) – značně omezené možnosti => ustupuje • XSD (XMLSchemaDefinitionLanguage) • Způsob transformace z jednoho schématu do druhého: • XSL (ExtensibleStylesheetLanguage) • XSLT (ExtensibleStylesheetLanguageTransformation) • XSL-FO (XSLFormatingObject) • Soubor může obsahovat právě jeden strom => elementy jsou v pozici rodič, potomek, sourozenci
Stromová reprezentace XML Zdroj: http://www.w3schools.com/xml/xml_tree.asp
Co všechno definuje XML schéma? • povolené elementy, • atributy, • přípustné kombinace elementů a atributů, • vlastní datové typy odvozené od existujících typů, • definuje otázku násobnosti potomků Jmenný prostor (namespace) (atribut xmlns: v úvodním tagu rodičovského elementu) Validace: Proces kontroly, zda XML dokument odpovídá schématu
Způsob zpracování XML dokumentu XML dokument Parser Aplikace pracující s XML dok. • Načtení • Formální kontrola • Dekompozice • Příprava na zpracování
Datové typy ve schéma • Jednoduché – pro skalární hodnoty • Komplexní – pokud element obsahuje další elementy nebo atributy • Cca 43 zabudovaných datových typů (STRING, BOOLEAN, DECIMAL, FLOAT, ...), další lze vytvářet: • restrikcí stávajících - integritní omezení => zúžení oboru přípustných hodnot (omezení délky, využití masky s pomocí regulárních výrazů) • rozšíření • vytvoření seznamu • sjednocení typů
Příklady restrikcí - regex <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"><xs:patternvalue="[a-zA-Z0-9]{8}"/> </xs:restriction> </xs:simpleType></xs:element>
Část 2: Zpracování přirozeného textu pomocí regulárních výrazů a jejich rozšíření
Stručný úvod do světa regulárních výrazů Speciální textové řetězce popisující masku, které má odpovídat verifikovaný řetězec Používají se v mnoha programovacích jazycích (Perl, Java, C#, JavaScript, PHP, ...) Obecně jsou POSIX a Perl-compatible Na co je použiji? • Extrakce údajů z textu • Modifikace údajů • Vkládání a nahrazování
Syntaxe regulárních výrazů (výběr nejpoužívanějších konstruktů) Kompletní výpis: http://www.regularnivyrazy.info/download/regularni-vyrazy-prehled.pdf