You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by da...@cocoon.zones.apache.org on 2005/11/18 23:17:47 UTC

[DAISY] Updated: Introducing Apache Cocoon

A document has been updated:

http://cocoon.zones.apache.org/daisy/legacydocs/420.html

Document ID: 420
Branch: main
Language: default
Name: Introducing Apache Cocoon (unchanged)
Document Type: Cocoon Document (unchanged)
Updated on: 11/18/05 10:17:40 PM
Updated by: Stefano Mazzocchi

A new version has been created, state: publish

Parts
=====
Content
-------
This part has been updated.
Mime type: text/xml (unchanged)
File name:  (unchanged)
Size: 12814 bytes (previous version: 12956 bytes)
Content diff:
(39 equal lines skipped)
    <h1>Personal Experiences</h1>
    
    <p>In 1998, Stefano Mazzocchi volunteered to create the documentation
--- infrastructure for the java.apache.org project, which is composed of a bunch of
+++ infrastructure for the java.apache.org project, which was composed of a bunch of
    different codebases, maintained by a bunch of different people, with different
    skills, different geographical locations and different degree of will and time
    to dedicate to the documentation effort.</p>
    
    <p>But pretty soon he realized that no matter how great and well designed the
    system was, HTML was a problem: it was *not* designed for those kinds of things.
--- By looking at the main page
--- (<a href="http://java.apache.org/">http://java.apache.org/</a>) from the
--- browser, you can clearly identify the areas of the screen: sidebar, topbar,
--- news, status. But if you viewed the underlying HTML, boom: a nightmare of table
--- tags and nesting and small little tricks to make the HTML appear the same on
--- every browser.</p>
+++ By looking at the main page from the browser, you could clearly identify the
+++ areas of the screen: sidebar, topbar, news, status. But if you viewed the
+++ underlying HTML, boom: a nightmare of table tags and nesting and small little
+++ tricks to make the HTML appear the same on every browser.</p>
    
--- <p>So he looked around for alternative technologies, but *all* of them were
--- trying to add more complexity at the GUI level (Microsoft Frontpage, Macromedia
+++ <p>So he looked around for alternative technologies, but all of them were trying
+++ to add more complexity at the GUI level (Microsoft Frontpage, Macromedia
    Dreamweaver, Adobe GoLive, etc...) hoping to "hide" the design problems of HTML
    under a thick layer of WYSIWYG looks.</p>
    
(17 equal lines skipped)
    ability to perform "semantic analysis" of the HTML content.</p>
    
    <p>Semantic analysis? Yeah, it's the kind of thing the human brain is simply
--- great at doing, while computer programs simply fail at big time.</p>
+++ great at doing, while computer programs have a hard time doing.</p>
    
    <p>So, with HTML, we went a step up and created a highly visual and appealing
    web of HTML content, but we went two steps back by removing all the higher level
(2 equal lines skipped)
    <p>Ok, let's make an example... most of you have seen an HTML page... if not,
    here is an example:</p>
    
--- <pre>
---  &lt;html&gt;
+++ <pre> &lt;html&gt;
      &lt;body&gt;
       &lt;p&gt;Hi, I'm an HTML page&lt;/p&gt;
       &lt;p align="center"&gt;Written by Stefano&lt;/p&gt;
(11 equal lines skipped)
    <li>I contain the sentence "Written by Stefano"</li>
    </ul>
    
--- <p>Suppose you are a Chinese guy that doesn't understand our alphabet, try to
--- answer the following question:</p>
+++ <p>Suppose you are a Chinese person that doesn't understand the latin alphabet,
+++ try to answer the following question:</p>
    
    <p>Who wrote the page?</p>
    
(6 equal lines skipped)
    
    <p>Suppose you receive this page:</p>
    
--- <pre>
---  &lt;page&gt;
+++ <pre> &lt;page&gt;
      &lt;author&gt;sflkjoiuer&lt;/author&gt;
      &lt;content&gt;
       &lt;para&gt;sofikdjflksj&lt;/para&gt;
(4 equal lines skipped)
    <p>Can you now tell me who wrote the page? Easy, you say, "sflkjoiuer" did.
    Good, but later you receive:</p>
    
--- <pre>
---  &lt;dlkj&gt;
+++ <pre> &lt;dlkj&gt;
      &lt;ruijfl&gt;sofikdjflksj&lt;/ruijfl&gt;
      &lt;wijlkjf&gt;
        &lt;oamkfkj&gt;sflkjoiuer&lt;/oamkfkj&gt;
(18 equal lines skipped)
    <h1>The XML Language</h1>
    
    <p>XML is most of the times referred to as the "eXtensible Markup Language"
--- specification. A fairly small yet complex specification that indicates how to
+++ specification. A fairly small yet dense specification that indicates how to
    write languages. It's a syntax. To tell you the truth, nothing fancy at all. So
    </p>
    
--- <pre>
---  &lt;hello&gt;&lt;/hello&gt;
+++ <pre> &lt;hello&gt;&lt;/hello&gt;
    </pre>
    
    <p>is correct, while</p>
    
--- <pre>
---  &lt;hello&gt;&lt;/hi&gt;
+++ <pre> &lt;hello&gt;&lt;/hi&gt;
    </pre>
    
    <p>is not, but</p>
    
--- <pre>
---  &lt;hello&gt;&lt;hi/&gt;&lt;/hello&gt;
+++ <pre> &lt;hello&gt;&lt;hi/&gt;&lt;/hello&gt;
    </pre>
    
--- <p>is correct. That's more than this, but I'll skip the technical details here.
+++ <p>is correct. That's more than this, but we'll skip the technical details here.
    </p>
    
--- <p>XML is the ASCII for the new millenium, it's a step forward from ASCII or
--- UNICODE (the international extension to ASCII that includes all characters from
--- all modern languages). It defines a "lingua franca" for textual languages.</p>
+++ <p>XML is a step forward from ASCII or UNICODE (the international extension to
+++ ASCII that includes all characters from all modern languages). It defines a
+++ "lingua franca" for markup languages.</p>
    
    <p>Ok, great, so now instead of having one uniform language with visual
    semantics (HTML) we have a babel of languages each with its own semantics. How
--- this can possibly help you?</p>
+++ can this possibly help you?</p>
    
    <h1>XML Transformations</h1>
    
--- <p>This was the point where Stefano was more or less two years ago for
--- java.apache.org: I could use XML and define my own semantics with
--- &lt;sidebar&gt;, &lt;news&gt;, &lt;status&gt; and all that and I'm sure people
--- would have found those XML documents much easier to write (since the XML syntax
--- is very similar to the HTML one and very user friendly)... but I would have
--- moved from "all browsers" to "no browser".</p>
+++ <p>This was the point where Stefano was around 1998 for java.apache.org: he
+++ could use XML and define his own semantics with &lt;sidebar&gt;, &lt;news&gt;,
+++ &lt;status&gt; and all that and people would have found those XML documents much
+++ easier to write (since the XML syntax is very similar to the HTML one and very
+++ user friendly)... but he would have moved (at that time!) from "all browsers" to
+++ "no browser".</p>
    
    <p>And having documentation that nobody can browse is totally useless.</p>
    
    <p>The turning point was the creation of the XSL specification which included a
    way to "transform" an XML page into something else. (It's more complex than
--- this, but, again, I'll skip the technical details).</p>
+++ this, but, again, we'll skip the technical details).</p>
    
    <p>So now you have:</p>
    
--- <pre>
---  XML page ---(transformation)--&gt; HTML page
+++ <pre> XML page ---(transformation)--&gt; HTML page
                        ^
                        |
              transformation rules
(27 equal lines skipped)
    <p>We believe the single most important Cocoon innovation is SoC-based design.
    </p>
    
--- <p>SoC is something that you've always been aware of: not everybody is equal,
--- not everybody performs the same job with the same ability.</p>
+++ <p>SoC is something that you've always been aware of: not everybody performs the
+++ same job with the same ability.</p>
    
    <p>It can be observed that separating people with common skills in different
    working groups increases productivity and reduces management costs, but only if
(20 equal lines skipped)
    
    <p>Let's have an example:</p>
    
--- <pre>
---  &lt;page&gt;
+++ <pre> &lt;page&gt;
      &lt;content&gt;
       &lt;para&gt;Today is &lt;dynamic:today/&gt;&lt;/para&gt;
      &lt;/content&gt;
(30 equal lines skipped)
    
    <h1>Here we go</h1>
    
--- <p>If you've reached this far in my text, you should be able to grasp the value
--- of the Cocoon Project as well as distinguish most of the marketing hype that
--- surrounds XML and friends.</p>
+++ <p>If you've reached this far, you should be able to grasp the value of the
+++ Cocoon Project as well as distinguish most of the marketing hype that surrounds
+++ XML and friends.</p>
    
    <p>Just like you shouldn't care if somebody offers you software that is "ASCII
    compliant" or "ASCII based", you shouldn't care about "XML compliant" or "XML
(8 equal lines skipped)


Fields
======
no changes

Links
=====
no changes

Custom Fields
=============
no changes

Collections
===========
no changes