Schematron
Schematron se engloba dentro de la familia de lenguajes de marcado XML, siendo un lenguaje de validación basado en reglas y en XPATH. Se basa en afirmaciones en vez de en gramática. Utiliza expresiones de acceso en lugar de gramaticales para definir lo que se permite y lo que no se permite en un documento XML.
Este método de validación aporta una gran flexibilidad en la descripción de estructuras relacionales. En cambio, es un lenguaje muy limitado a la hora de especificar la estructura básica del documento, problema que se soluciona combinando Schematron con otros lenguajes de esquema.
En su forma típica de implementación, los esquemas Schematron son procesados como código XSLT. Pudiendo ser utilizados en cualquier situación donde XSLT pueda ser aplicable.
Algunos usos prácticos
- Asistente de validación estructural
- Mediante la comprobación de restricciones de concurrencia, restricciones no-regulares y restricciones inter-documentos, Schematron puede ser útil para extender validaciones expresadas en lenguajes tales como DTD, RELAX NG o XML Schema
- Motor ligero de reglas empresariales
- Aunque no es tan exhaustivo como otros motores de reglas, (por ejemplo, Rete), Schematron puede utilizarse para expresar reglas acerca de complejas estructuras dentro de un documento XML.
- Reglas de resalte de sintaxis, para un editor XML
- Hay bastantes editores XML que emplean Schematron para sus reglas condicionales detectoras/resaltadoras de errores.
Versiones
Schematron fue inventado por Rich Jelliffe en la Academia Sinica Computing Centre, de Taiwán. Según sus propias palabras: como "un plumero para llegar a aquellas partes que otros lenguajes de esquema no pueden alcanzar".
Las principales versiones que se han lanzado desde entonces han sido:
- Schematron 1.0 (1999)
- Schematron 1.3 (2000): incorporando el espacio de nombres http://xml.ascc.net/schematron/; y teniendo una implementación XSLT mediante una arquitectura de componentes "plug-in".
- Schematron 1.5 (2001): versión ampliamente implementada y aún en activo.
- Schematron 1.6 (2002): versión base utilizada para elaborar el ISO Schematron, y que fue retirada por este.
- ISO Schematron (2006): versión que regulariza algunas de las funcionalidades, y proporciona una salida XML para el formato SVRL. Incorpora el nuevo espacio de nombres http://purl.oclc.org/dsdl/schematron
- ISO Schematron (2010): esta propuesta de versión incorpora soporte para XSLT2 y propiedades arbitrarias.
Schematron como un estándar ISO
Ha sido estandarizado como parte de la norma : ISO/IEC 19757 - Document Schema Definition Languages (DSDL) - Part 3: "Rule-based validation - Schematron".
Este estándar está disponible de manera gratuita en la lista ISO Publicly Available Specifications. Y puede ser adquirido impreso en papel en el propio ISO o en algunas de las instituciones nacionales de estándares.
Los esquemas que hagan uso de la norma ISO/IEC FDIS 19757-3, deben utilizar el siguiente espacio de nombres:
http://purl.oclc.org/dsdl/schematron
Un ejemplo
<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>
Esta regla comprueba que el elemento ContractDate tenga una fecha anterior a la fecha en curso. Si esta condición no se cumple, se devolverá el mensaje de error indicado en el cuerpo del elemento assert
Véase también
- Validación XML
- en:XML Schema Language Comparison - Comparison to other XML Schema languages.
- en:Service Modeling Language - Service Modeling Language uses Schematron.
Enlaces externos
- Esta obra contiene una traducción derivada de «en:Schematron» de Wikipedia en inglés, publicada por sus editores bajo la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.
- ISO Schematron Home Page
- Introducción en Schematron
- Academia Sinica Computing Centre's Schematron Home Page
- Schematron Wiki including Implementer's FAQ
- new book on schematron (en alemán)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.