cocoon_600.jpg (12071 bytes)

What is it?

Cocoon is a 100% pure Java publishing framework HTTPServlet that relies on new W3C technologies (such as DOM, XML, and XSL) to provide web content.

The Cocoon project aims to change the way web information is created, rendered and delivered. This new paradigm is based on fact that document content, style and logic are often created by different individuals or working groups. Cocoon aims to a complete separation of the three layers, allowing the three layers to be independently designed, created and managed, reducing management overhead, increasing work reuse and reducing time to market.

What does it do?

Web content generation is mostly based on HTML, but HTML doesn't separate the information from its presentation, mixing formatting tags, descriptive tags and programmable logic (both on server side and client side). Cocoons changes this view allowing content to be written in XML, style on XSL stylesheets and logic on logicsheets/actionsheets. This allows the complete separation (placing them on different files) of the three layers used to create content. The Cocoon framework creates web content by processing these layers with the ability to create valid HTML as output.

What does it change for me?

The Cocoon project is able to create virtually any well-formed XML document. For this reason, its most common use is the automatic creation of well-formed HTML through the XSL rendering of statically or dynamically generated XML files.

The Cocoon model divides the development of web content in three separate levels:

  1. XML creation: the XML file is created by the content owners. They do not require specific knowledge on how the XML content is futher processed rather than the particular choosen DTD.

  2. XML processing: the requested XML file is processed and the logic contained by the logicsheet is applied. The processing instructions and d
    efined active tags are evaluated at this time.

  3. XSL rendering: the created document is then rendered by applying an XSL stylesheet to it.

Known problems

The biggest known problem in this framework is the lack of XML/XSL knowledge, being relatively new formats. We do believe, though, that this publishing framework will be a winner in medium to high web site complexity and will lead the transition from an HTML oriented to a XML oriented web of knowledge, allowing the use of existing client technologies.

Even if considered heavy and hype overloaded, the XML/XSL pair will do magic once its public knowledge receives the spread it deserves. This project wants to be a small step in this direction, helping people to learn this technology and to focus on what they need with examples, tutorial and source code.

The big concern is processing complexity: the kind of operations required to process the document layers are complex and not designed for real-time
operation. For this reason, Cocoon aims to be a page compiler for dynamic pages, hardcoding those layers in binary Java servlet code and a cache system for static pages.

Another problem is the intrinsic difficulty in page compiling the three processing layers into a single servlet, due to the post-processing requirements of XSL rendering. This problem will be solved with the availability of XSL-enabled web browsers since the XSL rendering would be then performed on client side.

General Information

Here you find all the information you need to use, understand and enhance Cocoon.

Copyright (c) 1999 The Java Apache Project.
$Id: index.html,v 1.4 1999/03/22 23:50:04 stefano Exp $
All rights reserved.