stringtranslate.com

Esquematrón

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 utilizando una pequeña cantidad de elementos y lenguajes XPath . En muchas implementaciones, el XML de Schematron se procesa en código XSLT para su implementación en cualquier lugar donde se pueda utilizar 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 sea controlado por uno de sus hermanos. O puede solicitar o requerir que el elemento raíz, independientemente de qué elemento sea, tenga atributos específicos. Schematron también puede especificar las relaciones requeridas entre múltiples archivos XML. Las restricciones y las reglas de contenido pueden estar asociadas con mensajes de error de validación en "inglés simple" (o en cualquier idioma), lo que permite la traducción de códigos de error numéricos de Schematron en mensajes de error de usuario significativos. Los usuarios de Schematron definen todos los mensajes de error por sí mismos. [1]

La recomendación ISO actual 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:2020).

Usos

Las restricciones se especifican en Schematron utilizando 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 de la validación estructural
Al probar las restricciones de coocurrencia, restricciones no regulares y restricciones entre documentos, Schematron puede ampliar 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 usarse para expresar reglas sobre estructuras complejas con 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 admiten Schematron.

Versiones

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

Las versiones más comunes de Schematron son:

Schematron como estándar 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:2020).

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

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

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

Regla de muestra

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

<schema xmlns= "http://purl.oclc.org/dsdl/schematron" > <pattern> <title> Reglas de fecha </title> <rule context= "Contract" > <assert test= "ContractDate > current-date()" > ContractDate debe estar en el pasado 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 fallará y se devolverá al usuario un mensaje de error que es el cuerpo del elemento assert.

Implementación

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

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

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

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 pensaba". 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, 2006-06-01 , consultado el 2014-06-15
  4. ^ "7.2.5 p:validate-with-schematron". XProc: un lenguaje de canalización XML . Consorcio World Wide Web . 2010-05-11 . Consultado el 2012-11-12 .

Enlaces externos