The additional structure dimension

Let us consider a simple example of a structured document, e.g. a requirement document. A simple requirement may have

  • some classification like functional or non-functional
  • a priority (low, middle, high)
  • a unique id
  • associated test cases
  • most important, the requirements text.

The nodes application separates this structure from its representation as an HTML page.

Only the structure data will be stored in the application repository. The repository is organized as a tree similar to a filesystem and using the repository means navigating within that tree. Each tree node has an associated node type which specifies, which properties the node may have and which child nodes.

The administrator can configure a display template for a node type (a "virtual template"), this will be used to display and edit the node. When navigating to a node with an associated template

  • The application will generate the HTML page from the node properties using the template.
  • If editing is requested, it provides an editor, that supports editing of only the structured content, but prevents from erroneous modification of the "decorating" HTML representation.
  • Once editing is done, the page will be parsed, the structured parts will be extracted and only these will be saved into the node.

Of course, the same is true for the relationships between the nodes. When the user configures presentation hyperlinks in the template, the system will create references between the nodes, when the user saves the HTML representation.

Note, that hyperlinks associated to such node references will not depend on the node location, i.e. if a node is moved within the repository, the reference and hence the hyperlink will remain valid.