Skjematron

Schematron er en del av XML-familien av markup-språk, og er et valideringsspråk basert på regler og XPATH . Den er basert på påstander snarere enn grammatikk. Den bruker tilgangsuttrykk i stedet for grammatikkuttrykk for å definere hva som er tillatt og hva som ikke er tillatt i et XML-dokument.

Denne valideringsmetoden gir stor fleksibilitet i å beskrive relasjonsstrukturer. I stedet er det et svært begrenset språk når det gjelder å spesifisere den grunnleggende strukturen til dokumentet, et problem som løses ved å kombinere Schematron med andre skjemaspråk.

I deres typiske implementeringsform blir Schematron-skjemaer behandlet som XSLT -kode . Kunne brukes i alle situasjoner der XSLT kan brukes.

Noen praktiske bruksområder

Strukturell valideringsveiviser Ved å se etter samtidighetsbegrensninger, ikke-regulære begrensninger og inter-dokument begrensninger, kan Schematron være nyttig for å utvide valideringer uttrykt på språk som DTD , RELAX NG eller XML Schema . Lett motor for forretningsregler Selv om det ikke er så omfattende som andre regelmotorer (f.eks . Rete ), kan Schematron brukes til å uttrykke regler om komplekse strukturer i et XML-dokument. Syntaksuthevingsregler, for en XML-editor Det er ganske mange XML-redigerere som bruker Schematron for feiloppdaging/utheving av betingede regler.

Versjoner

Schematron ble oppfunnet av Rich Jelliffe ved Academia Sinica Computing Center i Taiwan. Med hans egne ord: som "en fjærstøver for å komme til de delene som andre skjemaspråk ikke kan nå".

Hovedversjonene som har blitt utgitt siden den gang har vært:

Schematron som en ISO-standard

Det har blitt standardisert som en del av standarden: ISO / IEC 19757 - Document Schema Definition Languages ​​(DSDL) - Del 3: "Regelbasert validering - Schematron".

Denne standarden er fritt tilgjengelig på ISO Publicly Available Specifications -listen . Og den kan kjøpes i papirutgave fra ISO selv eller fra noen av de nasjonale standardinstitusjonene.

Skjemaer som bruker ISO/IEC FDIS 19757-3-standarden må bruke følgende navneområde:

http://purl.oclc.org/dsdl/schematron

Et eksempel

<schema xmlns= "http://purl.oclc.org/dsdl/schematron" > <pattern> <title> Datoregler </title> <rule context= "Kontrakt" > <assert test= "Kontraktdato < gjeldende- date()" > ContractDate bør være i fortiden fordi fremtidige kontrakter ikke er tillatt. </assert> </rule> </pattern> </schema>

Denne regelen kontrollerer at ContractDate -elementet har en dato før gjeldende dato. Hvis denne betingelsen ikke er oppfylt, returneres feilmeldingen som er angitt i hoveddelen av påstandselementet .

Se også

Eksterne lenker