120 likes | 272 Views
Technol ógie XML. Schematron September , 2011. Validačné jazyky. Typy jazykov: založené na gramatike (DTD, XSD, Relax NG) definujú štruktúru a obsah elementov a atribútov uzavretý: čo nie je explicitne povolené v modeli, nie je validné založené na pravidlách (Schematron)
E N D
Technológie XML Schematron September, 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Validačné jazyky • Typy jazykov: • založené na gramatike (DTD, XSD, Relax NG) • definujú štruktúru a obsah elementov a atribútov • uzavretý: čo nie je explicitne povolené v modeli, nie je validné • založené na pravidlách (Schematron) • stanovujú vzťahy, ktoré musia platiť • pre elementy a/alebo atribúty • medzi elementmi a/alebo atribútmi • otvorený: čo nie je explicitne zakázané, je validné • typicky sa používa na vyjadrenie ohraničení, ktoré sa nedajú popísať gramaticky založeným jazykom Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Stav Schematronu • Štandard ISO/IEC 19757-3 (http://standards.iso.org/ittf/) • Document Schema Definition Language (19757) • Part 2: Regular grammar-based validation – Relax NG • Part 3: Rule-based validation – Schematron • Štandardom sa stal v 2006 • Verejne dostupný (royalty free) • Part 4: Namespace-based validation dispatching language – NVDL • Part 5: Data types Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Schematron - vlastnosti • XML syntax • model založený na jazykoch Relax NG a Schematron (pre ohraničenia nevyjadriteľné v Relax NG) • Využíva adresovanie pomocou XPath • môže validovať čokoľvek, čo je možné vyjadriť ako booleovský XPath výraz • Ohraničenia môžu byť: • pozitívne – neplatnosť podmienky = nevalidnosť dokumentu • negatívne – platnosť podmienky = nevalidnosť dokumentu Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Štrukturálne celky • Tvrdenie (elementy assert a report) • podmienka, ktorej platnosť sa zisťuje (existencia elementu alebo atribútu, hodnota elementu alebo atribútu) • Pravidlo (element rule) • skupina tvrdení vyhodnocovaných v rovnakom kontexte • Vzor (element pattern) • identifikovateľné zoskupenie pravidiel, vždy sa použije iba prvé relevantné pravidlo • Fáza • zoskupenie vzorov, umožňujúce vyhodnocovať iba pravidlá vzorov danej fázy Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vybrané elementy • Pozitívna podmienka • <assert test="podmienka">správa-pri-neplatnosti</assert> • Negatívna podmienka • <report test="podmienka">správa-pri-platnosti</assert> • Pravidlo • <rule context="kontext-vyhodnotenia"> … jedna alebo viac podmienok </rule> • Pravidlo • <pattern name="meno-vzoru">…pravidlá…</pattern> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Dokument pre značkovanie ... Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 predmet meno kredity volitelnost forma p cn cl pp s Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Príklad – štruktúra a hodnota elementu Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 <rule context="predmet"> <assert test="meno and kredity and volitelnostandforma"> Zlá štruktúra predmetu</assert> </rule> <rule context="predmet"> <assert test="volitelnost=‘P’ or volitelnost=‘PV’ or volitelnost=‘V’"> Neplatná hodnota voliteľnosti predmetu</assert> </rule> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Príklad – výskyt atribútov Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 <rule context="forma"> <assert test="@p or @cn or @cl or @pp or @s"> Chýbajúca forma výuky</assert> </rule> <rule context="forma"> <report test="@s and (@p or @cn or @cl)"> Kolízia foriem výuky (seminár vs. prednáška/cvičenie)</report> </rule> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Príklad – kumulácia hodnôt Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 <rule context="zoznam"> <assert test="sum(predmet/kredity) > 30"> Malý počet disponibilných kreditov v zozname </assert> </rule> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Príklad – závislosť hodnôt Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 <rule context="predmet"> <assert test="(forma/@s and kredity=0 and volitelnost=‘V’) or not(forma/@s)"> Seminár má byť voliteľný bez dodatočných kreditov </assert> </rule> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Príklad – duplikácia hodnôt Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 <rule context="predmet"> <report test="meno=preceding-sibling::predmet/meno"> Duplikácia predmetov </report> </rule> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach