Schematron s'engloba dins de la família de llenguatges de marcatge XML, sent un llenguatge de validació basat en regles i en XPath. Es basa en afirmacions en comptes d'en gramàtica. Utilitza expressions d'accés en lloc de gramaticals per definir el que es permet i el que no es permet en un document XML.

Aquest mètode de validació aporta una gran flexibilitat en la descripció d'estructures relacionals. En canvi, és un llenguatge molt limitat a l'hora d'especificar l'estructura bàsica del document, problema que se soluciona combinant Schematron amb altres llenguatges d'esquema.

En la seva forma típica d'implementació, els esquemes Schematron són processats com a codi XSLT. Podent ser utilitzats en qualsevol situació on XSLT pugui ser aplicable.

Versions modifica

Schematron va ser inventat per Rich Jelliffe a l'Acadèmia Sinica Computing Centre, de Taiwan. Segons les seves pròpies paraules: com "un plomall per arribar a aquelles parts que altres llenguatges d'esquema no poden aconseguir".

Les principals versions que s'han llançat des de llavors han estat:

  • Schematron 1.0 (1999)
  • Schematron 1.3 (2000): incorporant l'espai de noms http://xml.ascc.net/schematron/, i tenint una implementació XSLT mitjançant una arquitectura de components "plug-in".
  • Schematron 1.5 (2001): versió àmpliament implementada i encara en actiu.
  • Schematron 1.6 (2002): versió base utilitzada per elaborar l'ISO Schematron, i que va ser retirada per aquest.
  • ISO Schematron (2006): versió que regularitza algunes de les funcionalitats, i proporciona una sortida XML per al format SVRL. Incorpora el nou espai de noms http://purl.oclc.org/dsdl/schematron
  • ISO Schematron (2010): aquesta proposta de versió incorpora suport per XSLT2 i propietats arbitràries.

Schematron com un estàndard ISO modifica

Ha estat estandarditzat com a part de la norma: ISO / IEC 19757 - Document Schema Definition Languages (DSDL) - Part 3: "Rule-based validation - Schematron ".

Aquest estàndard està disponible de manera gratuïta a la llista de l'ISO Publicly Available Specifications'.[1] I pot ser adquirit imprès en paper en el mateix ISO o en algunes de les institucions nacionals d'estàndards.

Els esquemes que facin ús de la norma ISO / IEC FDIS 19757-3, han d'utilitzar el següent espai de noms:

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

Exemple modifica

<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>

Aquesta regla comprova que l'element ContractDate tingui una data anterior a la data en curs. Si aquesta condició no es compleix, es retornarà el missatge d'error indicat en el cos de l'element assert.

Referències modifica

Enllaços externs modifica