_   _        _          _ _     _           
 ___(_)_| |_  ___| |__ _   _(_) | __| | ___ _ __ 
/ __| |_   _|/ _ | '_ \ | | | | |/ _' |/ _ | '__|
\__ \ | | |_|  __| |_)| |_| | | | (_| |  __| |   
|___/_| \___|\___/_.__/\__,_|_|_|\__,_|\___/_|   

SiteBuilder

This tiny XSLT for the Xalan XML-processor can be used to transform XML-web-pages defined in one XML file similar to the following into a directory-strucrure of XHTML/HTML files to be published on a www-server.

<website>
  <pagetree build="yes">
    <pagespec path="home" build="yes"/>
    <pagespec path="studium" build="yes">
      <pagespec path="informatik" build="no"/>
      <pagespec path="info-links" build="rec"/>
    </pagespec>
    ...
  </pagetree>
  <page id="home">
    ...
  </page>
  <page id="studium">
    ...
  </page>
  ...
</website>

In this example the following files would be created:

  • index.html
  • studium/index.html
  • studium/info-links/index.html

Of course you can have the files output to other filenames than 'index.html' and other locations than the calculated path from the pagespectree too, as you can insert links to other pages in this navigational structure.

SiteBuilder comes along with:

  • sitebuilder.xsl
  • website.dtd - the commented DTD for the XML processed with sitebuilder. Attention: Use this only as a documentation not for validation!
  • demosite.xml - a demo website.
  • demotrans.xsl - a demo pagetranslator.
  • demobuild.bat - a shell-script used to build the demowebsite.
  • readme.txt - a description how to use all this.

Version history:

  • 0.9.4
    • Introduced optional pageref attribute in pagespec to determine the page, so that you can have the same paths for diffenrent page ids.
    • Introduced optional absolutepath attribute in pagespec to give an absolute path where the file should be output instead of the path calculated from the path attributes.
    • Status-output is valid html now.
    • Link-, outputdirectory-prefixes and default-filename can now be set in the xml, as a variable or from the commandline.
    • I did a little bugfixing on the dtd. I hope it is correct now because I'm not very familiar with dtds. :-(
  • 0.9.3
    Pages will be output even if there is a href-attribure specified in the "pagespec". If you don't want them to be output specify build="no". (This can be used when you need to build a template for a page that is on a different url e.g. a script that is in cgi-bin.
    The href-attribute was also removed from "website.dtd".
  • 0.9.2
    Was the first release.

Download SiteBuilder

You may send any questions and bugreports to sbuilder@tkuhn.de.