XML

Preview:

DESCRIPTION

XML. Petr Šmíd smidp1@fel.cvut.cz. Obsah prezentace. Co je to XML ?. Obsah prezentace. Co je to XML ? Vlastnosti. Obsah prezentace. Co je to XML ? Vlastnosti Validita. Co je to XML ?. E X tensible M arkup L anguage Účelem je usnadnit sdílení dat napříč informačními systémy - PowerPoint PPT Presentation

Citation preview

Petr Šmídsmidp1@fel.cvut.cz

Obsah prezentace

Co je to XML ?

Obsah prezentace

Co je to XML ?

Vlastnosti

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

VlastnostiOtevř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 datVzniklé 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 SchemaPozor 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 SchemaXML 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 NGSyntax také vychází z XML, ale umožňuje i

kompaktní zápis

Stejně jako W3C XML Schema podporujeDatové 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átoryV 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 komuNevhodné pro velké objemy dat

VyužitíExperimentyXML 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 zdrojehttp://www.w3.org http://www.xml.comhttp://www.zvon.orghttp://www.kosek.czhttp://en.wikipedia.org/wiki/

XML_Schema_Language_Comparison http://www.w3schools.com/schema/

default.asp Validace XML a validátory, Karas M., 2007

Recommended