Schematron - Schematron

Schematron er et regelbasert valideringsspråk for å gjøre påstander om tilstedeværelse eller fravær av mønstre i XML- trær. Det er et strukturelt skjemaspråk uttrykt i XML ved hjelp av et lite antall elementer og XPath .

I en typisk implementering blir Schematron-skjemaet XML behandlet til normal XSLT- kode for distribusjon hvor som helst XSLT kan brukes.

Schematron er i stand til å uttrykke begrensninger på måter som andre XML-skjemaspråk som XML-skjema og DTD ikke kan. For eksempel kan det kreve at innholdet i et element kontrolleres av en av søsknene. Eller det kan be om eller kreve at rotelementet, uavhengig av hvilket element det er, må ha spesifikke attributter. Schematron kan også spesifisere nødvendige forhold mellom flere XML-filer.

Begrensninger og innholdsregler kan være assosiert med "vanlig-engelsk" valideringsfeilmeldinger, som tillater oversettelse av numeriske Schematron-feilkoder til meningsfulle brukerfeilmeldinger.

Gjeldende ISO- anbefaling er informasjonsteknologi, Document Schema Definition Languages ​​(DSDL) , del 3: Regelbasert validering, Schematron (ISO / IEC 19757-3: 2020).

Bruker

Begrensninger er spesifisert i Schematron ved hjelp av et XPath-basert språk som kan distribueres som XSLT-kode, noe som gjør det praktisk for applikasjoner som følgende:

Tillegg til strukturell validering
Ved å teste for begrensninger for samforekomster, ikke-regelmessige begrensninger og begrensninger mellom dokumenter, kan Schematron utvide valideringene som kan uttrykkes på språk som DTD , RELAX NG eller XML-skjema .
Lett motor for forretningsregler
Schematron er ikke en omfattende Rete-reglermotor , men den kan brukes til å uttrykke regler om komplekse strukturer med et XML-dokument.
XML Editor Syntaks Fremhevingsregler
Noen XML-redaktører bruker Schematron-regler for å markere XML-filer betinget for feil. Ikke alle XML-redaktører støtter Schematron.

Versjoner

Schematron ble oppfunnet av Rick Jelliffe ved Academia Sinica Computing Center, Taiwan. Han beskrev Schematron som "en fjærstøvsuger for å nå de delene andre skjemaspråk ikke kan nå".

De vanligste versjonene av Schematron er:

  • Schematron 1.0 (1999)
  • Schematron 1.3 (2000): Denne versjonen brukte navneområdet http://xml.ascc.net/schematron/ . Den ble støttet av en XSLT-implementering med en plugin-arkitektur.
  • Schematron 1.5 (2001): Denne versjonen ble mye implementert og kan fremdeles finnes.
  • Schematron 1.6 (2002): Denne versjonen var basen til ISO Schematron og foreldet av den.
  • ISO Schematron (2006): Denne versjonen regulerer flere funksjoner, og gir et XML-utdataformat, Schematron Validation Report Language (SVRL). Den bruker det nye navneområdet http://purl.oclc.org/dsdl/schematron .
  • ISO Schematron (2010): Denne foreslåtte versjonen gir støtte for XSLT2 og vilkårlige egenskaper.

Schematron som ISO-standard

Schematron er standardisert av ISO som informasjonsteknologi, Document Schema Definition Languages ​​(DSDL) , del 3: Regelbasert validering, Schematron (ISO / IEC 19757-3: 2016).

Denne standarden er tilgjengelig gratis på listen over ISO offentlig tilgjengelige spesifikasjoner . Papirversjoner kan kjøpes fra ISO eller nasjonale standardiseringsorganer.

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

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

Eksempelregel

Schematron-regler kan opprettes ved hjelp av en standard XML-editor eller XForms- applikasjon. Følgende er et eksempel på skjema:

<schema xmlns="http://purl.oclc.org/dsdl/schematron">
   <pattern>
      <title>Date rules</title>
      <rule context="Contract">
         <assert test="ContractDate &lt; current-date()">ContractDate should be
 in the past because future contracts are not allowed.</assert>
      </rule>
   </pattern>
</schema>

Denne regelen kontrollerer for å sikre at ContractDate XML-elementet har en dato som er før dagens dato. Hvis denne regelen mislykkes, mislykkes validering, og en feilmelding som er selve elementet i påstandselementet, vil bli returnert til brukeren.

Gjennomføring

Skjematronskjemaer er egnet for bruk i XML-rørledninger , slik at arbeidsflytprosessdesignere kan bygge og vedlikeholde regler ved hjelp av XML-manipuleringsverktøy. W3Cs XProc- rørledningsspråk har for eksempel innfødt støtte for Schematron-skjemabehandling gjennom trinnet "validere-med-skjematron".

Siden Schematron-skjemaer kan transformeres til XSLT- stilark, kan disse selv brukes i XML-rørledninger som støtter XSLT-transformasjon. En Apache Ant- oppgave kan brukes til å konvertere Schematron-regler til XSLT-filer.

Det finnes også innfødte Schematron-implementeringer, som Java-implementeringen fra Innovimax / INRIA , QuiXSchematron , som også driver med streaming .

Se også

Referanser

Eksterne linker