Are there any applications of XSLT
This is an announcement for "The Schematron", which is a tree-pattern schema language built on top of XSL.
Example of error browser: www.ascc.net/xml/resource/schematron/DavidCarlisle/schematron-frame.html
Schematron home page: http://www.ascc.net/xml/resource/schematron/schematron.html The basic idea is to piggyback on top of XPath. I think the resulting language is pretty good: trivial to implement, easy to use, and very powerful. It allows validation of structures that cannot be found using regular grammar-based schema languages.
It is an open source project; I am in particular trying to get a language that is useful for "overlaying" schemas (e.g. for best practise, variants and debugging) rather than "defining" schemas (which XML Schemas is addressing.) Anyone who wants to contribute some code or ideas to this, please feel free.
To which Nic Miloslav added: Schematron tutorial at Zvon I have just published the first version of Schematron tutorial at: http://zvon.vscht.cz/HTMLonly/SchematronTutorial/General/contents.html
There is a lot of work to be done to make it really useful but it demonstrates some strength of Schematron.
If I can speak for myself with Schematron a dream come true. This was precisely the tool I was looking for. And I actually missed it the first time. I had seen the announcement some time ago. Then, on this Friday, I have seen it mentioned in a message at comp.text.xml, peeped in and was trapped. This week I have started to play with it and I have realized that it solves many problems I had so far with XML validation. It is superbly simple, elegant, XPath based and already implemented!
More recently, Rick announced:
The Topologi Schematron Validator is a tool for checking XML documents against the assertions in a Schematron schema.
You can validate one or several XML documents using DTDs, W3C XML Schemas and Schematron, view the results in a convenient linked-view browser, automatically generate RDF statements or Topic Maps, edit the results, print the results, and save the results. A variety of Schematron schemas have been included in this distribution, including RSS, RDF, SOAP, SMIL, WSDL, QAML, XTM, XLink, WAI XHTML, RDDL XHTML, CALS tables and, of course, Schematron 1.5 itself.
Percussion Rhythmyx - virtual XML data server, visual designer maps relational databases to XML, run-time engine serves data as either XML, HTML (via XSL), or binary content.
Rhythmyx XSpLit - goes "backwards" from HTML files to XSL and XML. You start with an HTML file containing both content and format, then add labels to define the content on the page (using straight text or the "id" attribute of existing HTML tags). XSpLit parses the page, separating the content definition into an XML DTD and the formatting into an XSLT style sheet. The style sheet will thus produce an HTML page that looks like the original HTML but with any other XML content that conforms to the associated DTD. Supports repeated formatting for repeated XML fields, nested formatting, attributes, etc. XSpLit currently ships as part of Rhythmyx but can be run separately after the Rhythmyx installation.
More info and free evals available. http://www.percussion.com
Marrowsoft Limited announced the public Beta release of their Xselerator product - a fully integrated XSLT IDE. Xselerator Beta is available as a 30-day trial from...Marrowsoft
Some of the rich features of Xselerator are:-
ANN Schematron 1.5
After a long gestation, I am very happy to announce a new, complete implementation of Schematron 1.5, with an accompanying meta-stylesheet to generate the conformance language. SeeSchematron news
The Schematron 1.5 Schema for Schematron 1.5 has been upgraded to use diagnostics, phases and an abstract element to demonstrate the usage of these. Existing 1.3 Schematron schemas should be compatible with the new 1.5 skeleton. This is a beta, please report any problems and suggested fixes/enhancements. I will be successively testing it on other XSLT implementations over the next few weeks (anyone want to tackle MS XSLT?)
Special thanks to all who have contributed bits: Miloslav Nic, Ludwig Svenonius and Francis Norton may all find familiar-looking blocks of code. As well, thanks for everyone who has contributed bug reports, fixes and encouragement.
[ANN] Zvon XSLTracer
We have released a new tool - XSLTracer.
It enables to visualize the processing of an XML file by an XSLT stylesheet:
The package can be downloaded at: zvon
I will appreciate your comments, suggestion and also contributions.
The XPath Visualiser
The XPath Visualiser is an interactive tool that hilights all nodes of a user-specified XPath expression's result-nodeset in a colour-coded collapsible display of an xml source document.
This tool is very convenient for anyone who is a stylesheet author, is interested to learn or just curious about building XPath expressions.
The XPath Visualiser can be used in different scenarios
Composing the exact XPath expression when designing an XSLT stylesheet.
As a "nodeset view" in a watch window of an XSLT debugger.
Learning and playing with XPath expressions.
As an example how to process completely un-anticipated XML documents using "push processing".
The latest version of the XPath Visualiser can be downloaded at vbxml
Requirements: The September release of MSXML 3.0 and IE 5.
Many thanks to Mike Kay -- this work was extremely influenced by the continuous help provided in all his answers to my questions.
Also thanks to Jonathan Marsh -- a customised version of his IE defaultss.xsl stylesheet is the basis for this work. Any errors in the customised stylesheet are entirely mine.
I'd greatly appreciate any observations, remarks and suggestions for improvement of the functionality and efficiency of the tool.
Right now (Nov 2000) the latest drop contains an even enhanced version. With the new functionality added, the XPath Visualiser is more of a full-blown XPath Interpreter, than just the node-set browser it was in the previous release.
In addition to XPath expressions that are evaluated to nodesets the user can now enter expressions that are evaluated to scalars (number or boolean or string).
Now it's possible not only to find a specific node-set within the source xml document, but also to obtain its quantitative characteristics -- counts, sums, arithmetical and relational results, strings, substrings etc.
One good consequence is that info about hidden nodes (not present in the text of the xml source) can now be obtained in this way.
I've put two XSLT transformations on my homepage. that are of general interest I hope.
An XML to HTML Verbatim Formatter with Syntax Highlighting -> generates a verbatim HTML representation of a given XML document
An XSLT Loop Compiler -> allows usage of special loop elements (for and while) within stylesheets. This compiler translates them into 100% XSLT.
In between there is a little prime number computing stylesheet ... I leave it to you to decide how useful it is :-)
Applications for Learning XPATH
Here are a couple of new IE/DHTML utilities for XPath. The first is an interactive XPath/XSLPatterns expression builder. If you saw my previous one, this one is a big improvement because it highlights the selected nodes as you type. If you're trying to learn XPath, it might be helpful. It also places a dot in front of the selected nodes to help identify the selection if you type something like this: //*. Find it at xpath builder. (requires IE5 and MSXML 3.0)
The second utility automatically abbreviates a verbose XPath expression. It collapses 'child::', 'attribute::', '/descendant-or-self::node()/', 'self::node()', 'parent::node()', and [position() = 5] variants into their corresponding abbreviations. See  compress. (only requires IE4, I think)
If you find these useful, you may want to check out this similar XSLT utility - Command line app to transform using msxml:  utility Any feedback is appreciated,
I've been working on a little XSLT application to help people browse their stylesheets. For beginners, it gives a description of what each instruction is doing in theory (it doesn't trace the actual running of the stylesheet), including a summary of any XPaths. For people writing complex stylesheets, it provides summary views.
To use it:
Download it from: my website, unzip it into a directory, load xslt-doc.xsl in MSIE, and you will be prompted for a stylesheet to load; enter its file name relative to the XSLTDoc directory
As an alpha, I'd welcome testing and feedback. Let me know what you think, and especially if you find any bugs or have good ideas for improvements.
The XSLTDoc application gives you:
It's all import/include aware, and tells you when a particular named template, variable declaration and so on are overridden in importing stylesheets.
Getting linking done with matching/moded templates is a goal, but it's pretty tricky especially as there may be *several* templates that match in a particular case, and it's really impossible to know which will do so without having a specific source XML instance.
[ANNOUNCE] XSLT-process 2.1 available
What is it?
XSLT-process is a minor mode for GNU Emacs/XEmacs which transforms it into a powerful editor with XSLT processing and debugging capabilities. With this mode you can:
- run an XSLT processor on the Emacs buffer you edit, and view the results either in another Emacs buffer or in a browser.
- run an XSLT processor in debug mode and view what happens during the XSLT transformation. You can set breakpoints, run step by step into your stylesheet, view global and local XSLT variables and many more. In this mode you effectively use GNU Emacs/XEmacs as an XSLT debugger.
- when used with the DocBook-XSL package, GNU Emacs/XEmacs becomes a powerful DocBook processing system.
Currently the Saxon and Xalan Java XSLT processors, and Apache FOP are supported, and the mode comes out of the box configured to use them.
The package has been tested on XEmacs, versions 21.1.14 and 21.4.3, and GNU Emacs 20.7.1, under both Linux and Windows 2000.
The package is free software and is distributed under GPL. The home page of XSLT-process is located at sourceforge/
XMLStarlet Command Line XML Toolkit
XMLStarlet Command Line XML Toolkit 0.1.0 has been released - see sourceforge
This project pursues a goal to create command line XML toolkit to transform, query, validate, and edit XML documents and files using simple set of shell commands in similar way it is done for plain text files using grep/sed/awk/tr/diff/patch.
This toolkit can be used by those who deal with many XML document on UNIX shell prompt as well as for automated processing with shell scripts.
The toolkit's feature set includes options for:
Validating XML files (simple well-formedness check, DTD, XSD, RelaxNG)
Calculating values of XPath expressions on XML files (such as running sums, etc)
Searching XML files for matches to given XPath expressions
Applying XSLT stylesheets to XML documents (including EXSLT support, and passing parameters to stylesheets)
Querying XML documents (ex. querying for value of some elements of attributes, sorting, etc)
Modifying XML documents (ex. deleting some elements)
Re-formatting XML documents (as changing indentation, etc)
Fetching XML documents using http:// or ftp:// URLs
Browsing structure of XML documents (in similar way to 'ls' command for directories)
Including one XML document into another using XInclude
XML c14n canonization
XMLStarlet command line toolkit is written in C and uses libxml2 and libxslt from http://xmlsoft.org/.
Implementation of extensive choice of options for XMLStarlet was only possible because of rich feature set of libxml2 and libxslt (many thanks to the developers of those libraries for great work).
XMLStarlet is linked statically to both libxml2 and libxslt, so generally all you need to use it is one executable file.
XMLStarlet is open source freeware under MIT license which allows free use and distribution for both commercial and non-commercial projects.
New binaries for Solaris8-sparc/RedHat-7.3/Mandrake-9.1/ has been released. (i586 rpm are for Mandrake-9.1 and i386 are for RedHat 7.3)
We welcome any user's feedback on this project which would greatly help us to improve its quality. Comments, suggestions, feature requests, bug reports can be done via SourceForge project web site (see XMLStarlet Sourceforge forums at sourceforge)