Click here to Skip to main content
13,003,102 members (57,190 online)
Click here to Skip to main content
Articles » Web Development » ASP » XML/XSL » Revisions
Add your own
alternative version


56 bookmarked
Posted 12 Jun 2001

XML MessageBoard

, 12 Jun 2001
Rate this:
Please Sign up or sign in to vote.
An example use of XML for storage of hierarchical messages
<!-- Download Links --> <!-- Main HTML starts here -->


As part of my quest to learn more about XML and its associated technologies, I decided to implement a XML bulletin board / message board system. It serves as useful example to others learning the technology and to those who simply would like to incorporate a message board system into their website (without having to install an expensive SQL database). This version of the XML Messageboard should work correctly under the production MSXML 3.0. If you don't already have the XML 3.0 SDK, download it from the Microsoft Web Site!

The downloadable archive contains the following files:


The main page leading to others


Contains application scope logic (loading XML doc)


HTML form for entry of new messages


HTML form for entry of message replies


ASP logic for displaying a single message


XSL stylesheet for displaying a singlemessage


ASP logic for displaying hierarchical list of messages


XSL stylesheet for displaying hierarchical list of msgs


ASP logic for inserting a message in the message tree

XML Schema for the messageboard.XML

To install and run this XML application on your own system you will need:

  • An ASP enabled web server such as Internet Information Server
  • Microsoft’s XML parser (MSXML 3.0 and higher)

You’ll need to configure your web server’s file write access permissions in the directory where you install the above files. This can be a little tricky in IIS so be sure read the IIS documentation to find out how.

A message board system is suited to XML implementation, because it is inherently a hierarchical system.


A message is contained within a message group. A reply to a message is neatly contained within its original message. This simple structure is used to define a message tree. The entire message tree is stored in the XML flat file messageboard.xml.

The information contained in the message tree is displayed in an appropriate format using XSL style sheets. This example does not rely on the presence of an XML/XSL capable browser. It uses XSL processing on the server-side to output HTML for legacy browser
compatibly. However the example could just as easily be modified to support XSL processing on the client.

The root node (“messageboard”) in the XML message tree is constructed in the Application_OnStart method of global.asa supposing no messages have been posted. The DOMDocument object is therefore defined at application-level scope, meaning that multiple users access the same document tree in memory.

Each message in the message board contains the following attributes:

Subject = the subject of the message
Nick = the nickname of the person who wrote the message
Id = a unique identifier associated with the stored message
PostDt =  the time and date when the message was posted

The file submitmessage.asp contains ASP the logic for inserting a message node into the message tree, in response to new post and reply to message operations. The message hierarchy is stored in the file messageboard.xml. This file is automatically created if it does not exist, so don't be surprised if its missing in the distribution.

The XSL stylesheets viewmessagelist.xsl, and viewmessage.xsl, display a list of hierarchical messages in a message group and the contents of a message, respectively.

XSL parameters are used extensively, for example, to display a particular message associated with a message Id, the viewmessage.xsl stylesheet includes the tag:

<xsl:param name="msgid"/>

The above msgid parameter is supplied prior to XSL processing in the ASP script:

xslproc.addParameter "msgid",CStr(id) xslproc.transform

where id contains the unique id of the message to be displayed.

Message IDs are used to locate messages in the message board, using the nodeFromID() method available in the MSXML-2 XMLDOMDocument object.

By far the most interesting style sheet is viewmessagelist.xsl. The style sheet displays the message hierarchy by recursively applying message templates and using the HTML DIV tag to format the output in an indented fashion.

There are a number of useful extensions that can be added to this example, if you’re keen to beef up your XML expertise:

  • Implement a search function enabling users to find messages on the message board
  • Incorporate message count statistics for each message group
  • For each user (nick) supply information on which messages have been read / not read
  • Link up message groups from different sources (i.e. web sites)


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Web Developer
South Africa South Africa
No Biography provided

You may also be interested in...

Comments and Discussions

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170626.1 | Last Updated 13 Jun 2001
Article Copyright 2001 by jamieb22
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid