Site structure definition and Forrest

Andreas Hartmann <[email protected]> Mon, 07 Apr 2003 11:44:20 +0200
Newsgroups gmane.comp.cms.wyona.devel
Message-ID <[email protected]>
Hi Lenya developers,

I would like to discuss the design of the site structure
definition file.

In Forrest, they use a loosely structured XML file
(http://xml.apache.org/forrest/linking.html#site.xml):

           <about label="About">
             <index label="Index" href="index.html"/>
             <license label="License" href="license.html"/>
             <your-project label="Using Forrest"
                 href="your-project.html">
               <new_content_type href="#adding_new_content_type"/>
             </your-project>
             <linking label="Linking" href="linking.html"/>
             <changes label="Changes" href="changes.html"/>
             <todo label="Todo" href="todo.html"/>
             <live-sites label="Live sites" href="live-sites.html"/>
           </about>

The element names are used for semantic linking:
<link href="site:changes">.

In my eyes, there are some drawbacks regarding
- readability
- processing (e.g., via XSLT)
- automatic creation (some kind of creativity is needed for
   element names)

I would rather use well-defined element names and maybe
an optional id(?) attribute for semantic linking.

The new tree.xml file looks promising. I could imagine to
transform such a file into a site.xml file for Forrest-based
publications.

Was the structure of the tree.xml file already defined or is
it a new creation? In this case I would avoid using capital
letters in attribute names.

The question is if this file is the appropriate place for
assigning document types to documents. I could imagine that
it is possible to aggregate multiple documents on a page
or to use some different mechanism (e.g., based on a
DirectoryGenerator). This is the point where Alfred's
srcpipe concept enters the stage (every page is mapped
to a Cocoon pipeline).

To keep things simple, we could generally map pages to
doctypes and allow to override this mechanism using
optional attributes.

What do you think?

Andreas