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>
--- <html>
+++ <pre> <html>
<body>
<p>Hi, I'm an HTML page</p>
<p align="center">Written by Stefano</p>
(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>
--- <page>
+++ <pre> <page>
<author>sflkjoiuer</author>
<content>
<para>sofikdjflksj</para>
(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>
--- <dlkj>
+++ <pre> <dlkj>
<ruijfl>sofikdjflksj</ruijfl>
<wijlkjf>
<oamkfkj>sflkjoiuer</oamkfkj>
(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>
--- <hello></hello>
+++ <pre> <hello></hello>
</pre>
<p>is correct, while</p>
--- <pre>
--- <hello></hi>
+++ <pre> <hello></hi>
</pre>
<p>is not, but</p>
--- <pre>
--- <hello><hi/></hello>
+++ <pre> <hello><hi/></hello>
</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
--- <sidebar>, <news>, <status> 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 <sidebar>, <news>,
+++ <status> 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)--> HTML page
+++ <pre> XML page ---(transformation)--> 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>
--- <page>
+++ <pre> <page>
<content>
<para>Today is <dynamic:today/></para>
</content>
(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