category-group: documents
layer(s): 10

header file(s): z_doc.h, z_htmldoc.h

classes in this group: document_o, htmldoc_o

A system exists in order to manage documents. The basic premise for this system is as follows. A master copy of a document exists somewhere. The storage medium where it is found can take on many forms - a file system, a database, a source code control system, and a custom-made program with facility to store and retrieve documents. In order for a storage medium to be accepted into the document management system, the document store must be able to support these operations via programmatic API: saving, updating, deletion, and retrieval of a document/. Also, there must be a way to set up an address that uniquely identifies a document. We assign the following properties to a document:

ID ...........: serial key
extern_ID ....: external ID - assigned by the user. This is what the user
                uses to refer to the document
cave_ID ......: ID used by the object that holds the document (if used)
ref ..........: any other extern_ID that this document refers to
title ........: 1-line document title
subject ......: what the document is about
format .......: e.g., HTML, Word, Adobe PDF, text, etc.
category .....: free-form text, what the document is about
creation_date : when the document was first created
author .......: who made the document (originally)
primary_lang .: the language the document is written in
alt_lang .....: any other secondary language (if used)
encoding .....: the primary character set used for the document, as a whole.
filter_rules  : -
location .....: where the document is found. This is basically an address.
                It could be in a database, version control system (Source Safe,
                RCS, MVCS, etc.), or in a file system. It may be found inside a
                program that controls access to the document.
description ..: details (free-form text)
notes ........: any comments