NUN.ME.SHU logo
NUN.ME.SHU banner
XML/XSL/CSS architecture
Switch to printer friendly page layoutView XML source of this pageNun.Me.Shu - page structure

Page structure in the Nun.Me.Shu architecture.



HTML table structure
The body of a page is divided in three tables (for modularity and to ensure that the header displays quickly, even if there's a lot of content to download).
  • Header table
  • Main table
  • Footer table
All three tables have the same width.
page layout
Click on image for larger version
Page Layout


The Main table consists of maximum three content columns: left, middle, and right. The left column displays the site navigation, the middle column displays the main content, and the right column displays the highlights. Left and right column are optional, resulting in four column configurations for the Main table:
  1. left - middle - right
  2. left - middle
  3. middle - right
  4. middle
Which of the four configurations for the Main table is chosen and whether the Header and/or Footer table are displayed is determined by Control Parameters that can be defined on three levels (in increasing order of priority):
  1. Site-wide defaults are defined in a stylesheet entity (ENT) file.
  2. Page-specific deviations from the site-wide defaults are defined in the content XML file.
  3. Individual page-request deviations from the above are defined in the querystring of a page URL.
This leveled control of a page's layout allows for easy implementation of for instance a printer-friendly version of a page: all that has to be done is add a querystring parameter to a URL that instructs the stylesheet not to display the left and right columns of the Main table.
The implementation of a printer-friendly version of a page in the Nun.Me.Shu architecture is a little more complicated than described above: it also lowers the header of a page, as can be seen by clicking the printer-friendly button (Switch to printer friendly page layout) on top of this page.


XML representation
A web page is represented in XML as a <page> (root element) with the following child elements:
<header>: header - Header table
<sitenav>: site navigation - Left column in Main table
<sectionnav>: section navigation - text block in Middle column of Main table
<content>: main content - Middle column of Main table
<highlights>: highlights/features/advertising - Right column of Main table
<footer>: footer - Footer table

Page content is functionally split into three components:
  • page-specific content
    These are elements that are different for each page: content, and maybe some additional page-specific footer or highlights. There is a separate XML file for each web page; this is the file that will be referenced through a URL.
  • site-wide wrapper
    These are elements that are the same site-wide: header, sitenav, highlights, footer. Each web page thus uses the same wrapper, which is defined in a single XML file that is associated with the stylesheet.
    Note: XML/XSL implementations that do not care for strict separation of content and presentation might include this type of content directly in the XSL stylesheet.
  • site-wide text fragments
    These are pieces of text that are not specific to any one page and that may or may not be displayed based on certain conditions. An example is a general error message that should be displayed if a web service is temporarily unavailable: any page that implements a web service can display this message, but only if the web service does not respond. All site-wide text fragments are collected in a single ENT file (and thus the text fragments are defined as entities).
    Note: XML/XSL implementations that do not care for strict separation of content and presentation typically include this type of content directly in the XSL stylesheet.