O'Reilly logo

Practical Internet Groupware by Jon Udell

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Instrumenting a Docbase for Collaborative Review

To transform an XML repository into an HTML docbase with an NNTP discussion component, you need to do the following three things.

Insert link targets into the docbase

Links in the discussion area point back to these targets, as do links in the web-based table of contents.

Insert comment links into the docbase

These links invoke the comment form, or rather the script that generates that form. The links encode the information that the script needs to produce an NNTP message that will bind to the right spot in the newsgroup and that will point back to the right spot in the docbase.

Create the initial discussion framework

The docbase’s headers (h1..h6) define the desired structure. To populate the newsgroup accordingly, you generate a set of NNTP messages whose Message-ID: and References: headers correspond to that structure; then load those messages using one of several techniques. Let’s consider each of these three steps in more detail.

Inserting Link Targets into the Docbase

We want to translate <p> or <li> into <a name="252"><p> or <a name="1124"><li> so that comments posted regarding these elements can point back to the right spot in the text.

Although the final solution I’ll present uses Perl’s XML::Parser, the examples in Example 9.3 and Example 9.4 use two other parsers, one driven by Java and one by JavaScript. Why? There’s more than one way to do it, and that can come in handy when you’re stuck. For example, when I started working ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required