[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
=?utf-8?Q?Re=3A_=5Bxml-dev=5D_Here=C2=92s_how_the_Schematron___p?==?utf-8?Q?rogram__generates_programs____program_generating___pro?==?utf-8?Q?grams?=
- From: Michael Kay <mike@saxonica.com>
- To: "G. Ken Holman" <gkholman@CraneSoftwrights.com>
- Date: Tue, 5 Apr 2016 15:23:13 +0100
See also the paper on meta-stylesheets by Ashley Clark at Balisage 2012:
http://www.balisage.net/Proceedings/vol8/html/Clark01/BalisageVol8-Clark01.html
and the essay on meta-stylesheets in my XSLT 2.0 Prog Ref, p 393-397.
I first encountered the idea of generated stylesheets in a project creating an on-line banking application. This was before XSLT 1.0 was standardized and it used Microsoft's WD-xsl. The application contained several hundred screens/forms, with a very high incidence of common components between them. Each screen/form had its own stylesheet, executed client-side in IE, but the stylesheets were all generated (using XSLT of course) from a common pool of template rules to achieve reusability and uniformity of presentation.
Michael Kay
Saxonica
> On 5 Apr 2016, at 14:14, G. Ken Holman <gkholman@CraneSoftwrights.com> wrote:
>
> At 2016-04-05 12:54 +0000, Costello, Roger L. wrote:
>> I encourage you to use these ideas to write your own programs that generate programs!
>
> That XSLT is written in XML has made this possible since XSLT was released.
>
> Rick Jelliffe was brilliant in recognizing how a language like Schematron could be used for value validation ... and he pulled it off well.
>
> Here are two public examples of mine that were first published in 2003 for synthesizing XSLT using XSLT. In both cases the user's objective is to annotate a prototypical result instance with information about the source tree so that the environment can synthesize the XSLT needed to transform the source tree into the result tree:
>
> http://www.CraneSoftwrights.com/resources/#literatexslt
> http://www.CraneSoftwrights.com/resources/#resultxslt
>
> After pushing the button to create the result, the output XSLT stylesheet is used in production to transform production data into production results. I've used it for creating XSL-FO stylesheets. A B2B company in Italy uses it for e-commerce. I'm not sure how many others of the many downloads get used in production as it is fairly esoteric.
>
> LiterateXSLT is a monolithic environment where modularity is not important and the annotations are expressed directly about the source tree. ResultXSLT is a modular environment where the annotations are expressed indirectly about the source tree so that multiple different source trees can take advantage of the stylesheet fragments created for producing the result tree.
>
> It is good of you to push concepts to new users, but these concepts are not new. Programs have long written programs ... XSLT has made it a straightforward task.
>
> . . . . . . . Ken
>
>
> --
> Check our site for free XML, XSLT, XSL-FO and UBL developer resources |
> Streaming hands-on XSLT/XPath 2 training @US$45: http://goo.gl/Dd9qBK |
> Crane Softwrights Ltd. _ _ _ _ _ _ http://www.CraneSoftwrights.com/x/ |
> G Ken Holman _ _ _ _ _ _ _ _ _ _ mailto:gkholman@CraneSoftwrights.com |
> Google+ blog _ _ _ _ _ http://plus.google.com/+GKenHolman-Crane/posts |
> Legal business disclaimers: _ _ http://www.CraneSoftwrights.com/legal |
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]