Obsah prezentace Co je to XML? Vlastnosti Validita
Co je to XML? EXtensible Markup Language Účelem je usnadnit sdílení dat napříč informačními systémy Popis dokumentu z hlediska věcného obsahu Vyvinuto a doporučováno konsorciem W3C
Vlastnosti Otevřený formát založený na prostém textu Implicitně používá znakovou sadu Unicode Definice vlastních elementů (tagů) Vysoká informační hodnota
Příklad dokumentu v XML <book> <chapter> <title>introduction</title> </chapter> <chapter> <title>story</title> <subchapter> <title>part 1</title> </subchapter> <subchapter> <title>part 2</title> </subchapter> </chapter> <chapter> <title>index</title> </chapter> </book>
Validita XML
Správně strukturovaný a validní XML dokument Správě formovaný (well-formed) XML dokument dodržuje základní pravidla: Právě jeden kořenový element Korektní zanoření elementů Dodržení CASE sensitivity Hodnoty atributů uzavřeny v uvozovkách Speciální znaky zapsány pomocí entit Validní = vyhovující nějaké předem definované sadě pravidel, které si vymyslíme. Tento formát se definuje pomocí jazyků pro definování schématu dokumentu: DTD XML Schema RELAX NG
Proč se zabývat validitou? Chyby v XML: Vzniklé při přenosu dat Vzniklé při editaci XML uživatelem z nepochopení/nedodržení pravidel předepsaných v DTD z neznalosti XML překlepy Program zpracovávající XML by se měl při první chybě zastavit a nepokračovat ve zpracování chybného dokumentu.
DTD (Document Type Definitions) Nejstarší a nejvíce podporované Může být definované uvnitř XML dokumentu, v externím souboru nebo veřejné Postačuje pro jednoduché aplikace Standardizovaná DTD např. pro HTML
XML Schema Pozor na terminologii XML schéma = přípustná struktura XML dat, popsaná v některém z existujících jazyků (DTD, XML Schema ) XML Schema = jazyk pro popis struktury dokumentu XML schéma v jazyce XML Schema
XML Schema XML Schema je lepší než DTD, protože Podporuje datové typy Podporuje namespaces Je zapsáno pomocí XML (není nutné se učit nový jazyk, na rozdíl od DTD) Je připraveno na budoucí rozšíření
Relax NG Syntax také vychází z XML, ale umožňuje i kompaktní zápis Stejně jako W3C XML Schema podporuje Datové typy Namespaces Regulární výrazy
Příklad - XML <?xml version="1.0" encoding="utf-8"?> <notepad> <note id="1"> <to>petr</to> <from>tomas</from> <heading>nezapomen!!</heading> <body>nezapomen pres weekend dodelat ty protokoly!!</body> </note> <note id="2"> <to>tomas</to> <from>petr</from> <heading>uz to mam!!</heading> <body>protokoly uz mam davno hotovy, hehe ;-)</body> </note> </notepad>
DTD pro náš příklad note.xml Před kořenovým elementem nutno zadat hlavičku: <!DOCTYPE notepad SYSTEM "note.dtd"> note.dtd <!ELEMENT notepad (note)+> <!ELEMENT note (to, from, heading, body)> <!ATTLIST note id CDATA #REQUIRED> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
XML Schema pro náš příklad <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="notepad"> <xs:complextype> <xs:sequence> <xs:element ref="note" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="note"> <xs:complextype>.
Relax NG schema pro náš příklad note.rng <element name= "notepad" xmlns="http://relaxng.org/ns/structure/1.0"> <oneormore> <element name="note"> <attribute name="id"> <data type="integer" datatypelibrary="http://www.w3.org/2001/xmlschema-datatypes" /> </attribute> <element name="to"><text/></element> <element name="from"><text/></element> <element name="heading "><text/></element> <element name="body"><text/></element> </element> </oneormore> </element>
Druhy validátorů Online validátoy Integrované ve vývojovém prostředí nebo prohlížeči Validátory běžnou součástí dostupných XML parserů
Online validátory V podobě webové stránky nebo služby vytvářející rozhraní klasickému parseru Nevýhody Posílám svá data neznámo kam a komu Nevhodné pro velké objemy dat Využití Experimenty XML validátor http://www.cogsci.ed.ac.uk/~richard/xml-check.html (X)HTML validátor kódu stránek http://validator.w3.org/ http://www.w3schools.com/dom/dom_validate.asp
Online validátory http://www.validome.org/xml/ http://www.w3.org/2001/03/webdata/xsv http://validator.w3.org/ http://www.stg.brown.edu/service/xmlvalid/ http://www.xml.com/pub/a/tools/ruwf/check.html HTML, XHTML, WML, DTD, XML Schema XML Schema HTML a XHTML RELAX NG Pouze well formed checker
Integrované validátory Součástí IDE nebo webového prohlížeče Pomáhají při vývoji XML dokumentu nebo HTML kódu Placená vývojová prostředí obvykle obsahují komplexní sadu funkcí pro vytváření, validaci a editaci XML
Odkazy a zdroje http://www.w3.org http://www.xml.com http://www.zvon.org http://www.kosek.cz http://en.wikipedia.org/wiki/xml_schema_languag e_comparison http://www.w3schools.com/schema/default.asp Validace XML a validátory, Karas M., 2007