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říkladnote.xmlPř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átoryhttp://www.validome.org/xml/ HTML, XHTML, WML,
DTD, XML Schema
http://www.w3.org/2001/03/webdata/xsv XML Schema
http://validator.w3.org/ HTML a XHTML
http://www.stg.brown.edu/service/xmlvalid/ RELAX NG
http://www.xml.com/pub/a/tools/ruwf/check.html 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_Language_Comparison
http://www.w3schools.com/schema/default.asp
Validace XML a validátory, Karas M., 2007