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