[Authors] [News] [Requirements] [Download] [Success Stories] [Reference] [Panel] [Back to HELM software]

UWOBO: an XSLT Stylesheet (Chain) Processor top
Last update: Thu, 20 Mar 2003 16:18:51 +0100 zacchiro
Contact: zack@cs.unibo.it

UWOBO is a Web-Service based XSLT processor.

UWOBO interface is based on HTTP GET method: UWOBO can indeed be contacted with a proper URL containing all parameters needed to request stylesheet application.

UWOBO supports not only the usual single XSLT stylesheet application to an XML document, but also application of stylesheets chains. An XSLT stylesheets chain is a trasformation described providing an ordered list of XSLT stylesheets. First stylesheet is applied to the input XML document, output of this trasformation is the input for the application of the second stylesheet and so on until the last one. Last trasformation output is the final output sent back to the client.

UWOBO supports all output properties defined in the XSLT recommendation. Output properties are read from the last stylesheet of the chain and can be overridden by proper parameters.

UWOBO is fully developed in the OCaml programming language and is distributed under the term of the GNU General Public License (GPL).

UWOBO was born at the University of Western Ontario, London, Canada. Later it has been further refined and developed at the University of Bologna (hence the name).
Current version of UWOBO has been fully reimplemented from scratch at the University of Bologna, here you can find a mirror of the old version web page (beware that some links can be broken).

Authors top
Main authors of the current version: Main authors of the old version: Acknowledgments:
News top

July 11, 2003

New release 0.2.1: parameter values can now have single or double quotes inside them (but not both of them at the same time, since the value must be a valid XPath string literal).

March 18, 2003

No news yet, stay tuned!
Requirements top

UWOBO is a standalone HTTP Daemon written in OCaml. XSLT transformations are performed using libxslt which is in turn based on libxml.

In order to build UWOBO from sources you will need:
Download top
Success Stories top
Reference top

UWOBO web service is actually bound only to the HTTP GET method. All command and parameters are encoded in the request URL. The generic format of UWOBO invocations is:

http://uwobo_url/command[?parameters]

uwobo_url includes hostname on which UWOBO is running and TCP port on which UWOBO is listening (default is 58080).

A list of available commands (as returned by invoking UWOBO's /help method) follows:

help
display this help message

add?bind=key,uri[&bind=key,uri[&...]]
load a new stylesheet, specified by uri, and bind it to key key

remove[?keys=key1,key2,...]
unload stylesheets specified by key1, key2, ... or all stylesheets if no key was given

reload[?keys=key1,key2,...]
reload stylesheets specified by key1, key2, ... or all stylesheets if no key was given

list
return a list of loaded stylesheets

apply?xmluri=uri&keys=key1,key2,...[¶m.name=value[¶m.name=value[&...]]][¶m.key.name=value[¶m.key.name=value[&...]]][&prop.name[=value][&prop.name[=value][&...]]]
apply a chain of stylesheets, specified by key1, key2, ..., to an input document, specified by uri.
Additional parameters can be set for each stylesheet application: global parameters (i.e. parameters passed to all stylesheets) are set using param.name=value syntax, per stylesheet parameters are set using param.key.name=value where key is the key of a loaded stylesheet.
Properties of the final chain output can be set too: valueless properties can be set using prop.name syntax, others can be set using prop.name=value syntax.
Current supported properties are: cdata-section-elements, doctype-public, doctype-system, encoding, indent, media-type, method, omit-xml-declaration, standalone, version.

Panel top

We have designed a simple web page (namely the UWOBO panel) which allows a simple interaction with the processor. Currently, the page is tuned to be used in the context of HELM, but you can download and customize it to your needs.
Use the panel!.