Re: [xml-dev] Write an XSLT program that generates an XSLT program or write a universal XSLT program

From
Dimitre Novatchev <>
To
Roger L Costello <>
Date
2022-05-09T15:11:02Z
ID
<CAK4KnZf+a-BQOUT=s_q4uJ0PwEacyZ2gu_f3=+EsfFq-A6=>
Thread
Re: [xml-dev] Write an XSLT program that generates an XSLT program or write a universal XSLT program

> An alternative strategy would have been to create a universal stylesheet that directly performs Schematron validation on the XML doc to be validated:

 

> XML doc to be validated --> universal stylesheet --> validation results


Nothing new:

A simple LR-1 parser can parse every LR-1 language (instance):

https://en.wikipedia.org/wiki/LR_parser

And there is an XSLT implementation (circa 2008) of such:

https://github.com/dnovatchev/FXSL-XSLT2/blob/master/f/func-lrParse.xsl

Thanks,
Dimitre



On Mon, May 9, 2022 at 4:16 AM Roger L Costello <[email protected]> wrote:

Hi Folks,

 

The Schematron processor that I use is an XSLT program that takes as input a Schematron schema and the XSLT program transforms the Schematron schema into an XSLT program that is specific to the Schematron schema:

 

Schematron schema --> XSLT --> XSLT for the particular Schematron schema

 

Then the “XSLT for the particular Schematron schema” is run and it inputs the XML document to be validated. The output is the validation results:

 

XML doc to be validated --> XSLT for the particular Schematron schema --> validation results

 

Rick et al chose to implement Schematron validation by generating a stylesheet for the particular Schematron schema.

 

An alternative strategy would have been to create a universal stylesheet that directly performs Schematron validation on the XML doc to be validated:

 

XML doc to be validated --> universal stylesheet --> validation results

 

Interestingly, Michael Kay has a blog post (https://dev.saxonica.com/blog/mike/2018/02/could-we-write-an-xsd-schema-processor-in-xslt.html) in which he discusses the idea of using XSLT to build an XML Schema validator. He explores the idea of whether to write an XSLT program that generates another XSLT program (as Schematron does) or whether to write a universal XSLT program. At the end of his blog, Michael writes:

 

I still have an open mind about whether a universal stylesheet should be used, or a generated stylesheet for a particular schema.

 

A fascinating parallel, I think.

 

/Roger