GNUstep Documentation XML markup language (GSDoc) A person who devotes far too much time to GNUstep development. 1.0.3 6 Nov, 2006 This documents the GNUstep Documentation markup language. Free Software Foundation, Inc. Introduction

The GNUstep documentation markup language (GSDoc) is an XML language designed specifically for writing documentation for the GNUstep project. In practice, that means that it is designed for writing about software, and in particular, for writing about Objective-C classes.

This document itself is an example, as well as a test case, of GSDoc itself.

Why another documentation language?

There are several reasons for producing the new markup language -

There were no existing markup languages that dealt well with documenting software written in the Objective-C language, except the GDML language - which has no easy to use support software. While the DocBook system works nicely for general software documentation, it requires a relatively large amount of support software and comes with a lot of baggage that's not directly useful for GNUstep. The GNU info system comes with easy to use, lightweight conversion tools, but is particularly ill suited to Objective-C documentation because the colon character using in Objective-C method names is used in info markup. LinuxDoc, while being a nice basic system, seems to be in the process of being replaced by DocBook.

So, with only one markup language available that supported Objective-C, and with XML software becoming available, the decision was to take GDML and update it to be an XML language, in the hope that this would -

Provide optimal support for GNUstep documentation. Minimize the amount of work needed for development of software tools. Provide future-proofing in that documentation written in one XML language should be quite easy to convert to another if necessary.
The gsdoc DTD and what it means

The GSDoc markup language is defined by an SGML DTD, that specifies the tags that may be used in marking up a GSDoc document, and how and where those tags may be placed. The reader is encouraged to consult the DTD directly on any points that the present document leaves unclear. The DTD is stored under GNUSTEP_SYSTEM_LIBRARY/DTDs in a standard GNUstep installation. .. where GNUSTEP_SYSTEM_LIBRARY is defined in the GNUstep configuration file (GNUstep.conf).

The gsdoc DTD defines an XML language - that is, a markup language that conforms to a specific subset of SGML features defined as XML. The advantage of XML is that it provides most of the useful features of SGML while being much more light-weight (easy to use) because you can forget about the rest of SGML. As XML looks set to become increasingly popular, we can hope that documentation written with an XML language will be easily imported into XML software tools as they become available, so we will not (in the GNUstep project) need to devote a lot of time and effort to maintaining documentation tools.

Element reference

The allowable elements in GSDoc documents are described below, broken into sections by usage context.