Articulo de referencia

Esquema

Schematron es un lenguaje de validación basado en reglas para realizar afirmaciones sobre la presencia o ausencia de patrones en árboles XML . Es un lenguaje de esquema estructu...

Schematron es un lenguaje de validación basado en reglas para realizar afirmaciones sobre la presencia o ausencia de patrones en árboles XML . Es un lenguaje de esquema estructural expresado en XML mediante un número reducido de elementos y lenguajes XPath . En muchas implementaciones, el XML de Schematron se procesa en código XSLT para su implementación en cualquier entorno compatible con XSLT.

Schematron es capaz de expresar restricciones de maneras que otros lenguajes de esquema XML, como XML Schema y DTD, no pueden. Por ejemplo, puede requerir que el contenido de un elemento esté controlado por uno de sus elementos hermanos. O puede solicitar o requerir que el elemento raíz, independientemente de cuál sea, tenga atributos específicos. Schematron también puede especificar relaciones obligatorias entre varios archivos XML. Las restricciones y las reglas de contenido pueden asociarse con mensajes de error de validación en "lenguaje sencillo" (o en cualquier idioma), lo que permite traducir los códigos de error numéricos de Schematron en mensajes de error comprensibles para el usuario. Los usuarios de Schematron definen ellos mismos todos los mensajes de error. [ 1 ]

La recomendación actual de la ISO es Tecnología de la información, Lenguajes de definición de esquemas de documentos (DSDL) , Parte 3: Validación basada en reglas, Schematron (ISO/IEC 19757-3:2025).

Usos

En Schematron, las restricciones se especifican mediante un lenguaje basado en XPath que se puede implementar como código XSLT, lo que lo hace práctico para aplicaciones como las siguientes:

Complemento para la validación estructural
Al probar restricciones de coocurrencia, restricciones no regulares y restricciones entre documentos, Schematron puede extender las validaciones que se pueden expresar en lenguajes como DTD , RELAX NG o XML Schema . [ 2 ]
Motor de reglas de negocio ligero
Schematron no es un motor de reglas Rete completo , pero puede utilizarse para expresar reglas sobre estructuras complejas mediante un documento XML.
Reglas de resaltado de sintaxis del editor XML
Algunos editores XML utilizan reglas de Schematron para resaltar condicionalmente los archivos XML en busca de errores. No todos los editores XML son compatibles con Schematron.

Versiones

Schematron fue inventado por Rick Jelliffe mientras trabajaba en el Centro de Computación de la Academia Sinica en Taiwán. Describió Schematron como "un plumero para llegar a las partes a las que otros lenguajes de esquema no pueden llegar".

Las versiones más comunes de Schematron son:

  • Schematron 1.0 (1999)
  • Schematron 1.3 (2000): Esta versión utilizaba el espacio de nombres http://xml.ascc.net/schematron/ . Contaba con el respaldo de una implementación XSLT con una arquitectura de complementos.
  • Schematron 1.5 (2001): Esta versión fue ampliamente implementada y aún se puede encontrar.
  • Schematron 1.6 (2002): Esta versión fue la base de ISO Schematron y quedó obsoleta al ser reemplazada por esta.
  • ISO Schematron (2006): Esta versión regulariza varias características y proporciona un formato de salida XML, Schematron Validation Report Language (SVRL). [ 3 ] Utiliza el nuevo espacio de nombres http://purl.oclc.org/dsdl/schematron .
  • Esquema ISO (2010)
  • ISO Schematron (2016): Esta versión añadió compatibilidad con XSLT2.
  • ISO Schematron (2020): Esta versión añadió compatibilidad con XSLT3.

Schematron como norma ISO

Schematron ha sido estandarizado por la ISO como Tecnología de la información, Lenguajes de definición de esquemas de documentos (DSDL) , Parte 3: Validación basada en reglas, Schematron (ISO/IEC 19757-3:2025).

Esta norma no figura actualmente en la lista de especificaciones públicas disponibles de la ISO . Las versiones impresas pueden adquirirse en la ISO o en organismos nacionales de normalización.

Los esquemas que utilizan ISO/IEC FDIS 19757-3 deben usar el siguiente espacio de nombres:

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

Regla de ejemplo

Las reglas de Schematron se pueden crear utilizando un editor XML estándar o una aplicación XForms . A continuación se muestra un esquema de ejemplo:

<schema xmlns= "http://purl.oclc.org/dsdl/schematron" > <pattern> <title> Reglas de fecha </title> <rule context= "Contrato" > <assert test= "ContractDate > current-date()" > La fecha del contrato debe ser pasada porque no se permiten contratos futuros . </assert> </rule> </pattern> </schema>

Esta regla verifica que el elemento XML ContractDate tenga una fecha anterior a la fecha actual. Si esta regla falla, la validación también fallará y se mostrará al usuario un mensaje de error que corresponde al cuerpo del elemento assert.

Implementación

Los esquemas Schematron son adecuados para su uso en canalizaciones XML , lo que permite a los diseñadores de procesos de flujo de trabajo crear y mantener reglas utilizando herramientas de manipulación XML. El lenguaje de canalización XProc del W3C , por ejemplo, tiene soporte nativo para el procesamiento de esquemas Schematron a través de su paso "validate-with-schematron". [ 4 ]

Dado que los esquemas de Schematron se pueden transformar en hojas de estilo XSLT , estas se pueden utilizar en canalizaciones XML que admitan la transformación XSLT. Se puede usar una tarea de Apache Ant para convertir las reglas de Schematron en archivos XSLT.

También existe una implementación nativa de Schematron, como la implementación en Java de Innovimax/ INRIA , QuiXSchematron , que también realiza procesamiento en tiempo real .

Véase también

Referencias

  1. ^ Siegel, Erik (2022). Schematron: un lenguaje para validar XML . Denver, CO: XML Press. ISBN 978-1-937434-81-6.
  2. ^ Fennell, Philip (junio de 2014). "Schematron: más útil de lo que pensabas" . XML London 2014 : 103–112 . doi : 10.14337/XMLLondon14.Fennell01 . ISBN 978-0-9926471-1-7.
  3. ^ Parte 3: Validación basada en reglas — Schematron (ISO/IEC 19757-3:2006) (zip) , Tecnología de la información — Lenguajes de definición de esquemas de documentos (DSDL), ISO/IEC, 1 de junio de 2006 , consultado el 15 de junio de 2014
  4. ^ "7.2.5 p:validate-with-schematron" . XProc: Un lenguaje de canalización XML . Consorcio World Wide Web . 11 de mayo de 2010. Consultado el 12 de noviembre de 2012 .
  • Página principal de Schematron del Centro de Computación de la Academia Sinica
  • Un libro sobre Schematron (en alemán)
  • Tutorial y referencia en línea de Schematron
Obtenido de " https://en.wikipedia.org/w/index.php?title=Schematron&oldid=1350811936 "