24
Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 1 Technológie XML XSD (XML Schema Definition) September, 2011

Technol ógie XML

  • Upload
    zelia

  • View
    49

  • Download
    4

Embed Size (px)

DESCRIPTION

Technol ógie XML. XSD ( XML Schema Definition) September , 2011. XSD ako model dokumentu. Dokáže definovať rovnaké štruktúry XML dokumentov ako DTD Navyše: podpora kardinalít podpora dátových typov podpora menných priestorov rozšíriteľnosť XML syntax - PowerPoint PPT Presentation

Citation preview

Page 1: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 1

Technológie XML

XSD(XML Schema Definition)

September, 2011

Page 2: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 2

XSD ako model dokumentu• Dokáže definovať rovnaké štruktúry XML

dokumentov ako DTD• Navyše:

• podpora kardinalít• podpora dátových typov• podpora menných priestorov• rozšíriteľnosť• XML syntax

• Vhodný prostriedok pre definovanie modelu aj pre dátové aplikácie

Page 3: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 3

Stav XSD• Spravovaný W3C (http://www.w3.org)

• XML Schema (štandard v 2.edícii)• W3C working draft – september 2000• W3C recommendation – máj 2001• W3C recommendation – 2.edícia – október 2004

• XML Schema Definition Language 1.1 (návrh štandardu)• W3C working draft – december 2009• W3C candidate recommendation – júl 2011

Page 4: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 4

Dátové typy• Štandard delený na dve hlavné časti, jedna z

nich je venovaná dátovým typom• Rozlišované typy dát:

• atomické: reťazce, numerické hodnoty, dátumy, URI, binárne dáta, logické hodnoty

• zložené: zoznamy a unióny

• Je možné používať dátové typy:• základné -458.934 (všeobecné číslo)• odvodené (preddefinované štandardom)

2011 (kladné celé číslo)• obmedzené (definované užívateľom) 25 (vek)

Page 5: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 5

Reťazce• Základný typ: xs:string

• obsahuje zobraziteľné znaky + CR, LF, TAB

• Príklady odvodených typov• xs:normalizedString – bez CR, LF, TAB• xs:token – bez CR, LF, TAB, úvodné/koncové medzery,

viacnásobné medzery

• Príklady obmedzení• enumerácia "jano" "fero" "peter" (povolené reťazce)• dĺžka, min a max dĺžka "04200" (práve päť znakov)• vzor "Jano" (veľké a potom malé písmená)

Page 6: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 6

Numerické hodnoty• Základný typ: xs:decimal

• bežne písané číslo (číslice, bodka, plus, mínus)

• Príklady odvodených typov• xs:integer – bez desatinnej časti• xs:nonNegativeInteger – nezáporné celé čísla

• Príklady obmedzení• enumerácia 1 2 3 4 5 6 (povolené hodnoty)• {max|min}{Inclusive|Exclusive} 4.01 (min 4 exclusive)• vzor 200 (nula nesmie byť na prvej pozícii)

Page 7: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 7

Tvorba obmedzených typov<xs:simpleType name="meno-typu">

<xs:restriction base="dátový-typ">

… obmedzenia

</xs:restriction>

</xs:simpleType>

• Príklady obmedzení• <xs:enumeration value="jano"/>

<xs:enumeration value="fero"/>• <xs:minLength value="5"/>• <xs:pattern value="[A-Z][a-z]*"/>• <xs:maxInclusive value="4"/>

voliteľné pomenovanie

typu

ak žiadne obmedzenie, tak nový typ rovnaký

ako pôvodný

Page 8: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 8

Dostupné obmedzenia• enumeration – zoznam akceptovateľných hodnôt• fractionDigits – maximálny počet desatinných miest• length – presný počet znakov alebo prvkov zoznamu• maxExclusive – horná hranica (<)• maxInclusive – horná hranica (<=)• maxlength – maximálny počet znakov alebo prvkov zoznamu• minExclusive – dolná hranica (>)• minInclusive – dolná hranica (>=)• minLength – minimálny počet znakov alebo prvkov zoznamu• pattern – presná sekvencia akceptovateľných znakov• totalDigits – presný počet povolených číslic• whiteSpace – spracovanie bielych znakov

Page 9: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 9

Zoznamy<xs:simpleType name="meno-zoznamového-typu">

<xs:list itemType="dátový-typ"/>

</xs:simpleType>

• Zoznam ako typ• Odvodený typ (prvky zoznamu sú určitého typu)• Možno definovať obmedzené zoznamy

• Príklady obmedzení• dĺžka, min a max dĺžka 2011 12 31 (práve tri prvky)• vzor "meno" "Jano" (prvý prvok pevne daný)

Page 10: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 10

Unióny (zjednotenia typov)<xs:simpleType name="meno-uniónového-typu">

<xs:union>

<xs:simpleType>

… prvý zlučovaný typ

</xs:simpleType>

<xs:simpleType>

… druhý zlučovaný typ

</xs:simpleType>

… ďalšie zlučované typy

</xs:union>

</xs:simpleType>

Page 11: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 11

Dokument pre značkovanie...

Objavovanie znalostí z/s 6 P P-2 CN-1 PP-1

Technológie XML kz 6 PV P-1 CL-2

Cudzí jazyk z/s 0 V S-2

...

xs:string

Enumeračne obmedzený

xs:string

Enumeračne obmedzený

xs:string

Dĺžkovo obmedzený

zoznam

Unión 0 a xs:positiveInteger

aleboenumeračne obmedzený

xs:integer

Page 12: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 12

Počet kreditov - typ...

6

6

0

<xs:simpleType name="pk-type">

<xs:union>

<xs:simpleType>

<xs:restriction

base="xs:positiveInteger"/>

</xs:simpleType>

<xs:simpleType>

<xs:restriction base="xs:integer">

<xs:enumeration value="0"/>

</xs:restriction>

</xs:simpleType>

</xs:union>

</xs:simpleType>

xs:nonNegativeInteger

<xs:simpleType name="pk-type">

<xs:restriction

base="xs:integer">

<xs:enumeration value="0"/>

<xs:enumeration value="6"/>

</xs:restriction>

</xs:simpleType>

Page 13: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 13

Rozsah predmetu - typ...

P-2 CN-1 PP-1

P-1 CL-2

S-2

...

<xs:simpleType name="rp-forma">

<xs:restriction base="xs:string">

<xs:pattern value="[A-Z][A-Z]*-[1234]"/>

</xs:restriction>

</xs:simpleType>

<xs:simpleType name="rp-zozn">

<xs:list itemType="rp-forma"/>

</xs:simpleType>

<xs:simpleType name="rp-type">

<xs:restriction base="rp-zozn">

<xs:maxLength value="4"/>

</xs:restriction>

</xs:simpleType>

Page 14: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 14

Definícia elementov• <xs:element name="…" type="štandardný-typ"/>• <xs:element name ="…">

<xs:definícia-typu>

</xs:definícia-typu>

</xs:element>• <xs:element name ="…" type="môj-typ"/>

<xs:definicia-typu name="môj-typ">

</xs:definícia-typu>• <xs:element ref="…"/>

štandardný typ

novo definovaný typ

inde definovaný typ

inde definovaný element

Page 15: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 15

Jednoduché typy• Element (obsahuje iba text)

• <xs:element name="názov-elementu" type="typ-obsahu"/>

• Atribút• <xs:attribute name="názov-atribútu" type="typ-obsahu"/>

• Typom obsahu môže byť základný, odvodený alebo ohraničený dátový typ

• Nepovinné atribúty• E+A: default – prednastavená hodnota• E+A: fixed – povinná (nemenná) hodnota elementu• A: use – voliteľnosť použitia (optional alebo required)

Page 16: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 16

Element obsahujúci vnorené elementy<xs:element name="názov-elementu">

<xs:complexType>

<xs:indikátor-výberu>

<xs:element name="..." type="…" indikátor-výskytu/>

<xs:element name="..." indikátor-výskytu>

… typ elementu

</xs:element>

<xs:element ref="…" indikátor-výskytu/>

… ďalšie elementy

</xs:indikátor-výberu>

</xs:complexType>

</xs:element>

Element definovaný interne

Element definovaný

externe

Element definovaný interne

Page 17: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 17

Indikátory• Indikátory výberu

• all – povolené ľubovoľné usporiadanie• sequence – vyžadované presne stanovené poradie• choice – výber jednej z možností

• Indikátory výskytu• minOccurs – minimálny počet opakovaní elementu

• ak neuvedené, tak default je 1• pre ‘all’ indikátor môže byť iba 0 alebo 1

• maxOccurs – maximálny počet opakovaní elementu• ak neuvedené, tak default je 1• pre ‘all’ indikátor môže byť iba 1• hodnota ‘unbounded’ znamená neohraničené opakovanie

Page 18: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 18

Element obsahujúci elementy a atribúty<xs:element name="názov-elementu">

<xs:complexType>

<xs:indikátor-výberu>

... definícia elementov

</xs:indikátor-výberu>

<xs:attribute name="..." type="..." nepovinné-atribúty>

<xs:attribute ref="..." nepovinné-atribúty>

.... ďalšie atribúty

</xs:complexType>

</xs:element>Atribút definovaný

externe

Atribút definovaný interne

Page 19: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 19

Element obsahujúci text + atribúty<xs:element name="názov-elementu">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="typ-textu"/>

<xs:attribute name="..." type="..." nepovinné-atribúty>

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

Obsah elementu (nejakého typu) je rozšírený o

atribúty

Page 20: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 20

Element obsahujúci atribúty<xs:element name="názov-elementu">

<xs:complexType>

<xs:attribute name="..." type="..." nepovinné-atribúty>

</xs:complexType>

</xs:element>

Page 21: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 21

Značkovaný dokument<zoznam>

...

<predmet>

<meno-predmetu>Technológie XML</meno-predmetu>

<ukoncenie>kz</ukoncenie>

<kredity>6</kredity>

<volitelnost>PV</volitelnost>

<rozsah>P-1 CL-2</rozsah>

</predmet>

</zoznam>

Page 22: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 22

XSD predmetov<xs:element name="zoznam">

<xs:complexType>

<xs:sequence>

<xs:element name="predmet" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="meno-predmetu" type="xs:string"/>

<xs:element name=“ukoncenie" type="uk-type"/>

<xs:element name="kredity" type="pk-type"/>

<xs:element name=“volitelnost" type="vol-type"/>

<xs:element name=“rozsah" type="rp-type"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

Page 23: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 23

XSD a menné priestory<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.tuke.sk/ns/rozvrh"

xmlns ="http://www.tuke.sk/ns/rozvrh"

elementFormDefault="qualified"

attributeFormDefault="qualified">

… definícia elementov a atribútov

</xs:schema>

Xml súbor má použiť tento menný priestor (ak použije prefixový tvar NS)

Xml súbor má použiť tento menný priestor (ak použije implicitný tvar NS)

Xml súbor má použiť uvedený tvar pre atribúty

Xml súbor má použiť uvedený tvar pre elementy

Page 24: Technol ógie XML

Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 24

Pripojenie modelu k dokumentu

<?xml version="1.0"?>

<roz:zoznam xmlns:roz="http://www.tuke.sk/ns/rozvrh"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.tuke.sk/ns/rozvrh

file:///share/schema/rozvrh.xsd">

</roz:zoznam>

pre tento menný priestor ...

... hľadaj XSD model na tejto

lokácii