[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: MatTS, an alternate syntax for XSLT
I find it mildly disappointing that you are still using long-winded names like "trackNbr" in your XML source documents, and that XPath function names still have long-winded names like, well, "name". Surely it's time we established a convention that all elements in user documents should be denoted by a single Kanji, and that function names should be written in Hebrew? Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Sean M. Burke [mailto:sburke@xxxxxxxx] > Sent: 01 April 2006 13:26 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: MatTS, an alternate syntax for XSLT > > [NB: at http://use.perl.org/~TorgoX/journal/29175 I have > pasted a copy > of this message, in case the Unicode characters don't show up > right in > your email client.] > > For some time now, the syntax of XSLT has bothered me -- its > verbosity, > that gushing typographic clutter, clearly encumbers best-practices > programming. > > XLove [http://www.cs.rit.edu/~dpl1926/] suggests an alternate syntax > that emphasizes the functional nature of XSLT; and SXML > [http://okmij.org/ftp/Scheme/SXML.scm] posits a representation of > general XML data as Lisp forms. But both of these, aside from > reducing > close-tags to a single character, do very little to solve > XSLT's clutter > problem. > > I think it's time for a better alternate syntax for viewing > and writing > XSLT. In this document I will propose such a system, which I > call MatTS > (Matryoshka Transformation Syntax). > > XLove and SXML start out with an implementation of alternate > syntax as > an input which becomes conventional XSLT. But so as to > better tune the > alternate syntax as a visual artifact, I instead choose to > implement the > alternate syntax as a view of XSLT, which XSLT becomes. (As such, I > have left the development of an editing environment as a mere > implementational detail which I am sure the marketplace will > provide for > in due time, as it has done for UML, that other recent > breakthrough in > informatic display.) > > Most hierarchy-based notations display their structure with bits of > matching punctuation, whether parens, brackets, or braces. > However, I > view this as a holdover from the days of daisywheel printers > and other > forms of mere movable type. With our modern bitmap displays and LASER > printers, it is far easier and clearer to display structure > as series of > matryoshka-like [http://en.wikipedia.org/wiki/Matryoshka_doll] nested > shapes -- say, boxes. Clearly, (foo ((bar) baz)) is inferior to the > clarity of this diagram: > > +---------------+ > |foo +---------+| > | |+---+ || > | ||bar| || > | |+---+ || > | |baz || > | +---------+| > +---------------+ > > [presented as ASCII art for ease of transmission] > > This sort of matryoshka notation is the basis of my new > variant syntax > for XSLT, and it in fact gives the syntax its name. But in and of > itself, this notation would go no further than Xlt and SXML > at relieving > XSLT's clutter problem. The greatest benefit of MatTS is in > providing a > terse syntax for all important XSLT constructs. In the best > tradition > of modern higher mathematical notation and typography > [http://math.berkeley.edu/~ilya/papers/PL_Grassmannian/gel_dik > f.pdf], I > have chosen well-known Greek letters and various printers' > symbols for > the operators. > > The following table illustrates and specifies this formalism: > > a apply-imports > _ apply-templates > t attribute > ? attribute-set > ? call-template > ? choose > ? comment > 5 copy > ? copy-of > ? decimal-format > p element > ? fallback > ? for-each > f if > O import > G include > T key > 5 message > ? namespace-alias > ? number > ? otherwise > ? output > ? param > ? preserve-space > e sort > ? strip-space > S stylesheet > ? template > ? text > ? transform > ? value-of > d variable > s when > ? with-param > ? processing-instruction > > ?... test="..." > v... name="..." > ... match="..." > '... select="..." > +...; (general attribute value) > > The preceding explanation aside, the best way to appreciate > MatTS is by > simply trying it out -- MatTS as a visualization application > is itself > implemented in browser-accessible XSLT, and so can be used to > view other > XSLTs as well as itself: > http://interglacial.com/~sburke/pub/xsl/matts_usage_example.xsl > http://interglacial.com/~sburke/pub/xsl/matts.xsl > Compare with the clutter of those XSLs when viewed in > conventional XSLT > notation: > http://interglacial.com/~sburke/pub/xsl/matts_usage_example.xsl.txt > http://interglacial.com/~sburke/pub/xsl/matts.xsl.txt > > > -- > Sean M. Burke http://search.cpan.org/~sburke/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|