210 likes | 326 Views
Schematron. Technológie XML 7. týždeň. Schematron. p ravidlový „rule- based “ validačný jazyk š tandardne sa automaticky prekladá do XSLT vyjadruje ohraničenia, ktoré DTD alebo XSD nedokáže, napr. môže vyžadovať, aby bol obsah nejakého elementu kontrolovaný jedným z jeho súrodencov
E N D
Schematron Technológie XML 7. týždeň
Schematron • pravidlový „rule-based“ validačný jazyk • štandardne sa automaticky prekladá do XSLT • vyjadruje ohraničenia, ktoré DTD alebo XSD nedokáže, napr. môže vyžadovať, aby • bol obsah nejakého elementu kontrolovaný jedným z jeho súrodencov • koreňový element mal nejaké špecifické atribúty, bez ohľadu na názov elementu • boli dodržané nejaké vzťahy medzi viacerými XML dokumentami • chyby vo validácii môžu byť zadané v bežnom jazyku, v čitateľnej forme
Schematron silná špecifickosť – možnosť zložitých pravidiel základná štruktúra XML sa vyjadruje ťažkopádne často sa kombinuje s RELAX-NG alebo XSD
Príklad <schemaxmlns="http://purl.oclc.org/dsdl/schematron"> <pattern> • <title>Pravidlá pre dátumy</title> <rulecontext="Contract"> <asserttest="ContractDate < current-date()"> </assert> </rule> </pattern> </schema>
Príklad <schemaxmlns="http://purl.oclc.org/dsdl/schematron"> <pattern> • <title>Pravidlá pre dátumy</title> <rulecontext="Contract"> <asserttest="ContractDate < current-date()"> ContractDate by mal byť v minulosti, pretože zadávanie budúcich kontraktov nie je povolené. </assert> </rule> </pattern> </schema>
Základné elementy • <schemaxmlns="http://purl.oclc.org/dsdl/schematron"> obsahuje • nepovinný<title> potom • niekoľko nepovinných<ns prefix="???" uri="???" />ktoré určujú menné priestory a prefixy pre XPath, potom • niekoľko <pattern>, ktoré obsahujú • niekoľko<rule context="???"> kde atribút context je XSLT výraz (expression), ktorý obsahuje zmiešane • <assert test="???"> kde atribút test je XPath pozícia (location),a ktorý obsahuje text v čitateľnej forme vyjadrujúci zadaný výraz • <report test="???"> kde atribút test je XPath pozícia (location),a ktorý obsahuje text v čitateľnej forme vyjadrujúci fakt, ktorý má byť reportovaný
<schemaxmlns="http://purl.oclc.org/dsdl/schematron"> • <title>A Schematron Mini-SchemaforSchematron</title> • <nsprefix="sch" uri="http://purl.oclc.org/dsdl/schematron"> • <pattern> • <rulecontext="sch:schema"> • <asserttest="sch:pattern"> • A schemacontainspatterns.</assert> • <asserttest="sch:pattern/sch:rule[@context]"> • A patterniscomposed of rules. • Theserulesshouldhavecontextattributes.</assert> • <asserttest="sch:pattern/sch:rule/sch:assert[@test] or • sch:pattern/sch:rule/sch:report[@test]"> • A rule iscomposed of assert and report statements. • Theserulesshouldhave a test attribute.</assert> • </rule> • </pattern> • </schema>
Ďalšie príklady http://www.zvon.org/xxl/SchematronTutorial/Examples_cze/Example2/example.html