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
Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach 1
Technológie XML
XSD(XML Schema Definition)
September, 2011
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
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
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)
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á)
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)
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ý
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
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ý)
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>
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
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>
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>
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
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)
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
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
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
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
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>
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>
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>
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
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