Hi, I'm trying to explain, perhaps there are some more authorative voices.... As I was struggling understanding the structure,too.
I will go top-down, explaining referencing the match:pattern stuff, and what it is producing: 1) <map:match pattern=""> is just a convienience for redirecting to deliver index.html by default. 2) <map:match pattern="*.html">: generate pages from files xdocs/*.xml, except book.xml. So for example requesting index.html this pattern matches, and processing starts from here. For example userdoc/index.html does not match, and is processed by **/*.html. So now it is time to get the content of the requested page. Each page of the documentation is has a menu-part, and a body-part. As you write documentation pages you don't write the menu-part, it is merged in by the map:aggregate. I will continue to explain for the index.html example: Building for example index.html means get the xml-content for the menu on the left, and get the content of the page itself. This kind of merge is done by the map:aggregate merging book-index.xml, and body-index.html. The "cocoon:/" prefix of the src attribute in map:part says get pipeline from the current sitemap. I think there was some mailing about "Our protocols". Thus now the xml-content of book-index.xml, and body-xml is requested. book-index.xml is matched by <map:match pattern="**book-**.xml">, and body-xml.xml is matched by <map:match pattern="body-**.xml"> At the end of the map:aggregate there is the complete xml-content for the requested page. The following stylesheet transformation reenders the xml content. The transforming style sheet site2html.xsl is a bit complicate. In principle it defines the basic tables of the page, and copies in the menu-xml (<xsl:copy-of select="/site/menu/node()|@*"/> ), and body-xml (><xsl:copy-of select="/site/document/body/node()|@*"/>). Last the xml content is serialized to html, as this is the default seralization. 3) <map:match pattern="**/*.html">: Processes all documents in any subdirectory of xdocs. The pipeline steps are basically the same as for 2). The only difference is that another book.xml is used. Each subdir of xdocs is expected to have a book.xml, which specifies what links should be places in the menu at left hand side of a page. 4) <map:match pattern="**book-**.xml">: This pattern matched book-index.xml, and moreover any book request for documents residing in a subdir of xdocs, eg userdoc/index.xml. In the pipeline In the pipeline {1} is substituted by directory part eg. userdoc, and {2} is matched by the suffix of the book-name, eg.: index, or license, etc. The generator fetches the book.xml from the right subdir, and the stylesheet reenders the book.xml. The parameter passed to the stylesheet helps to identify for which page the book.xml has been request, making it possible to disable the link for this page, and enabling only links to the other pages. As the output of this map:match is not sent directly to the browser - it is part of a map:aggregate, the serialization is not html, but xml. 5) <map:match pattern="body-**.xml">: This pattern matches all documents conforming directly to the document-v10.dtd, other documents like faq, are matched by some special matchers, as they need an extra step converting its content to the document-v10.dtd. But the steps for this match is simple, get the cotent and reenders it. Building the menu on the left, merging menu and page content is done not here. For example it matches body-index.xml, body-userdoc/index.html, etc. 6) <map:match pattern="body-faq.xml">: As noted above this matches only the faq.xml. As faq.xml does not conform directly to document-v10.dtd. There is some extra step to convert it to document-v10.dtd. This is done by the <map:transform src="stylesheets/faq2document.xsl"/>. Moreover if you have once more than one faq.xml, lets's say faq-1.xml, faq-2.xml. You will need to change this map:match, to something like: <map:match pattern="body-faq-*.xml"> <map:generate src="xdocs/faq-{1}.xml"/> <map:transform src="stylesheets/faq2document.xsl"/> <map:transform src="stylesheets/document2html.xsl"/> <map:serialize/> </map:match> Or if you once have another dtd stemming from the document-v10.dtd you will have to add some new map:match which does the extra transformation Hope this helps bye... David Crossley wrote: >It would greatly assist any Cocoon user to have some >xml comments documentation inside the sitemap.xmap > >For example, i have been trying to figure out how the >documentation/sitemap.xmap works ... i cannot yet. > >So would someone with more understanding please add >some rudimentary explanation. > >This would be a good form of expedient documentation for >the fast up-coming 2.0 release. We often learn by example. >We need a sitemap that explains itself. > >thanks, David > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, email: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]