[x3d-public] XSLT tools
Don Brutzman
brutzman at nps.edu
Sat Jun 10 16:38:11 PDT 2017
On 6/8/2017 8:37 AM, John Carlson wrote:
> Don, what tools are there for writing xslt, or do you just get in there and code? Thanks! We have oxygen XML
>
> John
I typically just pound away with stone tools on the source... though Netbeans/X3D-Edit features certainly facilitate tag-matching and launching/testing/improving. Validating the content you use as input to the stylesheet is important too - GIGO.
XMLSpy has sophisticated debugging support. They have free-trial and commercial versions. Most capable tool that I have found.
https://www.altova.com
Search reveals a number of other tools, but none that I am familiar with. YMMV.
XSLT is a curious programming language because it is XML based, and so ill-formed programs simply don't validate. Further it is relatively verbose, but actually has an intentionally short set of constructs. As a result there is usually only one way to do something - a refreshing change from some languages. It is completely tuned to walking XML trees. In my experience it is difficult to write an XSLT program with hidden flaws - the XSLT stylesheet might not do exactly what you want, but it certainly executes exactly what you program. Usually easy to maintain/adapt once written.
The programming is declarative. Templates match elements or attributes to handle flow of control. Once you get the hang of it, all you need are if, choose/when/otherwise, or for-each blocks. More sophisticated processing is rarely needed on XML inputs, but can be accomplished by template rules implementing tail recursion. I find XSLT is easiest for processing X3D or other XML documents, more so than imperative program languages (Java etc.).
There are a number of good books but one is by far the most thorough and authoritative reference work, highly recommended once you are familiar with XSLT/XPath language constructs. Author is long-time lead of W3C XSLT standards development, he also monitors StackOverflow posts.
Michael Kay, _XSLT 2.0 and XPath 2.0 Programmers Reference_, 4th edition 2008, 1376 pages (no really).
http://www.wrox.com/WileyCDA/WroxTitle/XSLT-2-0-and-XPath-2-0-Programmer-s-Reference-4th-Edition.productCd-0470192747.html
Available X3D-related stylesheets, writeups and products are mostly found at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/
and
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/tooltips/
Many of those stylesheets include console-based diagnostic statements, i.e. <xsl:message> blocks. Typically I either hide them within trace-variable tests or XML comments so that they are easily reusable/adaptable. Trace statements have a lot of value (especially on big/huge inputs) and so retaining them adds value. They may help you understand the structure of code there as weool
Have fun with X3D XSLT! 8)
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list