XML T. Pitner, L. Bártek, A. Rambousek, L. Grolig FI MU Brno, 2020 Obsah ● ● ● ● Úvod do XML Motivace Principy Zdroje (@FI, ostatní) Co je XML? ● ● ● Jedná se o standard W3 Konsortia popisující jak tvořit značkovací jazyky. Jedná se tedy o metajazyk. Je odvozen ze starších standardů (SGML – Standard Generalized Markup Language ) – Na XML se dá nahlížet jako na téměř podmnožinu SGML. XML Namespaces, XInclude, XML Base, XML Infoset ● Existuje řada standardů spojených s XML – ● Tyto standardy spolu s dalšími (XSLT, XSL-FO, XHTML, CSS, …) tvoří “rodinu” XML standardů. Deset principů XML Standardů Z preambule XML 1.0 (3. vydání) 1. XML by mělo být přímočaře použitelné na Internetu. 2. XML bude podporovat širokou škálu aplikací. 3. XML bude kompatibilní z SGML. 4. Tvorba programů zpracovávajících XML bude jednoduchá. 5. Počet volitelných prvků XML standardů bude malý, optimálně 0. Deset principů XML standardů 6. XML dokumenty by měly být „lidsky“ čitelné a rozumně jednoduché. 7. Návrh XML standardu by měl být rychle hotov. 8. Návrh XML musí byt formální a správný. 9. XML dokumenty bude možné snadno vytvořit. 10.Úspornost XML značkování není podstatná. Charakteristika XML jazyků ● XML není specifický jazyk, je to specifikace, jak tvořit značkovací jazyky. – Je to metajazyk. Zjednodušeno kvůli snažší tvorbě parserů. Dokument nemusí mít definováno DTD, pro zpracování struktury. Má podobné charakteristiky, tzn. zaměření na Internet. Mělo by být možné ho reprezentovat stejně jako textové XML. ● Konceptuálně vychází z SGML. – ● Jelikož každý element musí být uzavřený. – ● XML staví na úspěšné implementaci SGML – HTML. – ● Probíhá seriózní diskuze ohledně binárního XML. – Aktuální specifikace XML ● ● ● Původní specifikace (W3C Recommendation) W3C XML 1.0 5. vydání Extensible Markup Language (XML) 1.0 Fifth Edition XML 1.1 (Second Edition) – Změny vyvolané zavedením ● ● ● UNICODE 3, snažší normalizací, Upřesněním zpracovaní konců řádků – XML 1.1. není vázáno na konkrétní verzi UNICODE, ale vždy na poslední. Tutoriály a články ● ● ● ● ● ● Tutoriál k XML na zvon.org Tutoriál k XML na W3Schools Tutoriál k XML fy. Microsoft Tutoriály k XML na 101 XML XML tutoriál na Beginners.co.uk Tutoriály na Developerlife.com Portály vztažené k XML ● ● ● World Wide Web Consortium (W3C) XML Startkabel Vynikající sbírka tutoriálů a on-line dokumentace v řadě jazyků, hostovaná v CZ XML Cover Pages - denně aktualizovaný souhrn na materiály vázané k XML O‘Reilly XML.com - články a tutoriály na vyšší úrovni. IBM DeveloperWorks, section XML - články, tutoriály, software atd. na vyšší úrovni. ● ● ● Aktivity W3C ● Pracovní skupina Efficient XML Interchange Working Group – Vývoj standardů pro efektivní výměnu XML dat s důrazem na přenositelnost a platformní nezávislost konkrétních produktů. ● Včetně binární specifikace XML. ● XML Processing Model WG – vývoj a definice: ● ● skriptovacího jazyka pro XML, operací nad XML daty. ● XML Linking WG – – Dnes již nefunkční skupina. Pracovala na specifikacích XLink a XPointer. Aktivity W3C ● Koordinační skupina pro XML – „rozhraní“ pro pracovní skupiny a externími spolupracovníky. Vývoj specifikací XML a úzce souvisejících doporučení: ● ● ● ● Pracovní skupina XML Core – XML namespaces XML Information Set XInclude Další odkazy k XML ● Aktivity W3C: specifikace standardů, konference, odkazy na SW, ukázkové nástroje, odkazy What is XML na XML.com - jeden z úvodních článků k XML XML: XML Quick Syntax Reference Card - výborná, jednoduchá referenční karta. Komentovaná verze specifikace XML na XML.com (Annotated XML) ● ● ● Knihy ● XML in Nutshell od E.R.Harolda Zdroje k XML na FI (předměty) ● Podzimní semestr – – – – PA156 – Enterprise Application in Java PB029 – Elektronická příprava dokumentů PV110 – Základy filmové řeči PV173 – Seminář NLP IB047 – Úvod do korpusové lingvistiky a počítačové lexikografie PA154 – Jazykové modelování PA156 – Dialogové systémy PV174 – Laboratoř elektronických a multimediálních aplikací PV113 – Produkce audiovizuálního díla ● Jarní semestr – – – – – Co dále? ● Ani XML není univerzální řešení všech problému při strojové výměně dat. Vývoj pokračuje. Pro pokročilé (rich) webové aplikace s intenzivní komunikací client-server: – ● ● Potřeba lepší interoperability a menšího množství dat ● ● Formáty jako JSON (JavaScript Object Notation). YAML – ruční popis struktovaných dat. ● Budou probrány později. Hlavní důraz bude na XML a jeho zpracování. Koncepty a Struktura XML dokumentů Obsah ● Logická a fyzická struktura dokumentu Struktura XML Dokumentů ● Základní požadavek na XML dokumenty – musí být dobře utvořené: – Obsahují XML prolog a právě jeden kořenový element. ● Před a za kořenovým elementem mohou být instrukce pro zpracování. – – Splňuje požadavky na dobře utvořené dokumenty ze specifikace. Každá přímo nebo nepřímo odkazovaná parsovatelná entita je dobře utvořená. ● Další možný požadavek na XML dokument – být validní. Struktura XML dokumentů (další informace) ● ● Viz tutoriál XML Fundamentals (anglicky) Obsah k XML na zvon.org Struktura XML dokumentů ● Rozlišujeme: – – fyzickou a logickou strukturu. ● Aplikační programátory obvykle zajímá pouze logická struktura, zatímco pro autory obsahu a editorů může být důležitá i fyzická struktura. ● Fyzická a logická struktura ● Logická struktura: – dokument se skládá z: ● ● ● ● ● ● elementů – jeden je kořenový, atributů, textových uzlů, instrukcí pro zpracování, symbolů komentářů. Fyzická a logická struktura ● Fyzická struktura – Jeden logický dokument může být uložen ve více fyzických entitách – vždy v alespoň jedné. Prvky logické struktury ● Uzlem (generickým prvkem) může být: – Element – občas nekorektně nazývaný „tag/značka“ (značka je počáteční a koncové značkování ne celý element). Atribut – vždy součást elementu. Textový uzel – text mezi značkami. Instrukce pro zpracování – neobsahuje textový obsah nebo atribut, pouze pro účely zpracování. Komentáře – určeny pro lidské čtenáře. – – – – Elementy ● Objekty ohraničené počáteční a koncovou značkou:
text node — content of element p
Prázdné elementy ● Pokud je element prázdný, píšeme značku prázdného elementu – Neobsahuje dceřiné uzly (elementy, textový obsah)