Other XML/XSLT publishing servers that we know of
Text in italics is copied from the respective web sites.
Usually these products are not as complete as Cocoon, but they might be good alternatives depending on your environment and requirements.
Apache AxKit is an XML Application Server for Apache. It provides on-the-fly conversion from XML to any format, such as HTML, WAP, etc. AxKit also supports XSP pages, using Perl as the progamming language, however its XSP pages are interpreted rather than transformed into source code and compiled/executed
This PHP extension provides a processor independent API to XSLT transformations. Currently this extension only supports the Sablotron library from the Ginger Alliance. Support is planned for other libraries, such as the Xalan library or the libxslt library.
Transform XML documents into XHTML with PHP and XSL - For a web applications programmer who has to develop complex enterprise level applications, web services or multi language dynamic websites (Content Management Systems), Krysalis is a development platform that improves the Apache/PHP framework by separating the application logic from the presentation layer, using open standards as XML/XSL/SOAP. Unlike any other application servers and frameworks, our platform is an open source solution for productive web development.
Transmorpher is a software environment for defining and processing complex transformations of XML documents. Transmorpher takes as input a transformation flow described in XML. It is portable, open to other transformation engines and yet sufficient for expressing complex flows of transformations. There is a comparison of XML processing models at their web site.
mod_xslt is a simple Apache module to serve XML based content. Data is stored in XML files on the server. The user requests the XML file and the translation method via a url such as this: http://localhost/sourcefile.html The module will parse this URL into a XML source file and an XSL source file. In the example above, the XML file will be sourcefile.xml. The module will open sourcefile.xml and determine its DOCTYPE. Based on the DOCTYPE, the XSL file will be opened. Should the DOCTYPE be "tutorial", the XSL file opened would be tutorial_html.xsl. The content-type returned to the browser is text/html. The translation occurs transparently to the user.#1
Not too sure of the status of this yet, but the Bitflux CMS uses a back-end called 'Popoon' (see links from this page or this message for info) which is a PHP server application that uses the same syntax as Cocoon.
Struts for transforming XML with XSL (stxx) is an extension of the Struts framework to support XML and and XML transforming technologies like XSL without changing the functionality of Struts. It's goal is to enable Cocoon-like functionality easily for Struts-based applications while providing a smoother transition to Cocoon later if necessary.
Posted on XSL-List:
Oracle's XSQL Pages XML/SQL/XSLT publishing framework delivers similar capabilities, is free, but is not open source.
Dynamic XML generation implemented in Java. Features an extensible XML-compliant procedural scripting language.
Barracuda is an Open-Source Presentation Framework designed to make it easier to build web apps by providing a simple yet powerful Server-Side Component Model that makes it easy to manipulate DOM structures using proven MVC patterns like you'd find in Swing. In addition, Barracuda supports Model 2 Flow Control handling with a sophisticated Server-Side Event Model. Barracuda also provides a Form Mapping & Validation package to automatically map forms to objects and validate them, along with integrated XMLC Localization support! Barracuda offers a number of utility classes in a library called Plankton. XMLC compiles HTML (or XML) documents into Java objects to provide programmatic "hooks" directly to tags within the DOM, making it easier for the developer to manipulate nodes in the document heirarchy while page designers can focus on the actual look and feel of the HTML.
In addition, Barracuda supports Model 2 Flow Control handling with a sophisticated Server-Side Event Model. Barracuda also provides a Form Mapping & Validation package to automatically map forms to objects and validate them, along with integrated XMLC Localization support! Barracuda offers a number of utility classes in a library called Plankton.
XMLC compiles HTML (or XML) documents into Java objects to provide programmatic "hooks" directly to tags within the DOM, making it easier for the developer to manipulate nodes in the document heirarchy while page designers can focus on the actual look and feel of the HTML.http://barracuda.enhydra.org/cvs_source/Barracuda/docs/landscape.html#Barracuda_Competitors
Whitebeam provides an extensible XML based interface to back end objects on any platform, the client model securely segregates thousands of customer applications within a single server. Interfaces currently exist to IBM DB2, Postgres, INN (News Service), SMTP (email) and HTTP (to access SOAP etc)
Murka is an apache module (mod_murka). It intercepts an http request at a very early stage of apache request processing and if the requested file has .html or .jsp type performs the following steps: 1. Checks if file exists. If it exists returns control to standard apache request processing. 2. If the file does not exist looks for xml file in the same directory and with the same name (but with .xml extension). For example if the request file had a name sample.html the xml file name would be sample.xml. 3. Processes the xml file to find the location of the corresponding xsl stylesheet. 4. Calls one of the XSLT engines (Xalan or Sablotron) with found xml and xsl files as parameters to produce an html file. 5. Saves html file at the requested location (sample.html in the sample case). 6. Returns control to apache Next time when the same html file is requested it would exist as a plain html and no murka processing would be necessary. The above procedure results in implicit html cache building for all requested html files. If any of the xml data files or presentation stylesheet xsl files changes, one just needs to delete the corresponding html file (clear cache) and murka would build the updated html file automatically.
Not wanting to rain on this party, but I fail to see how Skaringa and 4Suite are similar to Cocoon: I believe they are lower-level components and not XML/XSLT-based web publishing frameworks -- StevenNoels
I can't speak for Skaringa, but I'm afraid you're mistaken about 4Suite. If 4Suite is not an XSLT-based Web publishing framework, then I don't know what is. When I started my current project, I had two choices on the table: Cocoon or 4Suite. I have had pleasant experiences with Cocoon, but I chose 4Suite this time around, because I was intrigued by how it supplements and integrates an XML repository with an RDF metadata model. I hope to see 4Suite benefit from some of Cocoon's best ideas, especially the pipeline processing model. But to not call 4Suite an XML/XSLT Web publishing framework is a mistake indeed. -- EvanLenz
4Suite is an XML processing toolkit written mainly in Python (and some C). It has both command-line tools and a server component. The server features a document repository and an RDF metadata model, plus HTTP and other interfaces. The HTTP interface automatically hooks into the XSLT processor, and the XSLT processor can access the repository through extension functions and elements. The result is that you can build applications by just putting XML and XSLT docs into the repository, with no other programming needed. Included demos provide examples of using XML to set up the applications and using XUpdate to manipulate the repository contents and to modify statements in the RDF model. 4Suite also features various interfaces to query the RDF model using Versa, a fairly straightforward syntax.
One caveat is that the repository and RDF model both use a database (!PostGreSQL on *nix if available, or a custom flat-file driver); you can't just serve files off of a filesystem like an ordinary web server without copying them into the repository first. Another issue is that 4Suite, though mature and being used in production applications in corporate and academic environments, is still considered (as of mid-2002) to be alpha, pre-1.0 quality. It is also strongly recommended that you avoid 0.11.x releases and stick to the newer alphas or the latest CVS snapshots; much has changed since 0.11.
That said, the path to productivity with 4Suite is very short, with much less of a learning curve, as compared to something like Cocoon. 4Suite's performance, at least with XSLT processing, is somewhere between that of Saxon and MSXML. And its RDF features, if you choose to use them, are top-notch, handling even very large models with millions of statements with ease.
Framework for Java and XML language binding.
OXF is similar to Cocoon in many respects. They posted a comparative table. Orbeon Presentation Server (formerly OXF Server) is a J2EE-based MVC framework for building Web applications that present and capture XML using XForms, XSLT, and Web Services. The recent release of OXF Server and OXF Studio as open source software under the LGPL license.
NetKernelTM Standard Edition Developer Kit is a true realisation of an XML Application Server. Built over NetKernel Microkernel it offers a rich service-oriented environment for development and delivery of SOAP 1.1, SOAP 1.2 and REST web-services alongside traditional web applications.
NetKernelTM Microkernel is service-oriented microkernel. It provides a clean, robust and scalable foundation for the development and delivery of service-oriented architectures.
As usual, feel free to complete this list!