1 / 24

XML

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

shakti
Télécharger la présentation

XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Petr Šmíd smidp1@fel.cvut.cz

  2. Obsah prezentace • Co je to XML ?

  3. Obsah prezentace • Co je to XML ? • Vlastnosti

  4. Obsah prezentace • Co je to XML ? • Vlastnosti • Validita

  5. Co je to XML ? • EXtensibleMarkupLanguage • Úč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

  6. 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

  7. 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>

  8. Validita XML

  9. 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

  10. 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.

  11. 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

  12. 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“

  13. 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í

  14. 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

  15. 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>

  16. 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)>

  17. 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> …….

  18. 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>

  19. 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ů

  20. 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

  21. Online validátory

  22. 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

  23. 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

  24. Děkuji za pozornost

More Related