SGML/XML DTD Editing - tdtd Version 0.7

tdtd README document for revision 0.7, from

This package contains an emacs major mode for editing SGML and XML
DTDs.  The current revision is 0.7, dated March 15, 1999.

The tdtd home page is


File				Contents

readme.txt			The file you are reading
dot_emacs			Some things for your .emacs file
tdtd.el				A collection of DTD-related procedures
tdtd-font.el			Font lock keywords for DTDs
tdtd-font-maker.el		Data and procedure to create tdtd-font.el
make-regexp.el                  Used by tdtd-font-maker.el
changelog.txt			List of changes
tutorial.txt			A tutorial on using dtd-mode


 - Standalone mode for editing DTDs;

 - "Goto" menu for locating declarations within the current buffer;

 - `dtd-etags' function for creating Emacs TAGS files for easy lookup
   across multiple files of any element, parameter entity, or
   notation's definition using Emacs's built-in tag-lookup functions;

 - `dtd-grep' function for searching files that shares a file history
   with `dtd-etags' for easy searching of the same files with both

 - Specific font lock highlighting of declarations in XML DTDs, SGML
   DTDs, SGML Declarations, and System Declarations so that the
   important information stands out;

 - XML-specific behaviour that, at user option, is triggered by
   automatic detection of the XML Declaration; 

 - Functions for writing and editing element, attribute, internal
   parameter entity and external parameter entity declarations and
   comments to ease creating and keeping a consistent style; and

 - Elements and parameter entity names referenced in declarations are
   stored in minibuffer history to minimise retyping in new

dtd-mode references `sgml-validate' for its validation function.  Use
with Lennart Staflin's psgml package is recommended.

Use with resize-minibuffer-mode is also recommended.

The "Goto" menu is only available if you have imenu.el.

dtd-mode was tested using NTEmacs 19.34.1 and NTEmacs 20.3.1.


dtd-mode uses many user-definable variables to control the formatting
of declarations, some of which are shown in the following examples:

 		        dtd-comment-start-column    dtd-dtd-max-column
                        |       	     dtd-comment-max-column  |
                        |       				  |  |
<!--                    This is a comment                          -->

           |    	dtd-element-tag-ommission-column
           |            |   dtd-element-content-spec-start-column
           |            |   |dtd-element-content-spec-continuation-column
           |            |   ||  		    dtd-dtd-max-column
           |            |   ||  				     |
<!ELEMENT  element-tag  - - (insert, your, content, specification,
                             here)                                   >


I would be glad to accept bug reports and/or enhancements.


1. Unzip the distribution.

   This should extract the files listed in the manifest above.

   tdtd is authored on a PC.  Make sure that the files are unzipped
   with the correct line endings for your platform.

2. Copy the tdtd.el and tdtd-font.el files to your emacs site-lisp
   directory (e.g., /usr/local/lib/emacs/site-lisp).

   XEmacs users also need to make sure that they have imenu.el
   installed before they can use the "Goto" menu.

3. Byte compile tdtd.el and tdtd-font.el using M-x byte-compile-file
   and supplying the path name of each file.

   If you byte-compiled a previous version of tdtd.el and
   tdtd-font.el, then you must byte-compile the new files (or remove
   the old .elc files) so that autoload loads the correct versions.

   If you do not have imenu.el, you may receive a "assignment to free
   variable imenu-create-index-function" warning when you byte compile
   tdtd.el.  You will, however, be able to use the compiled tdtd.elc
   without error (and without the "Goto" menu).

   You do not need tdtd-font-maker.el or make-regexp.el in order to
   use tdtd.  They are provided in case you want to modify the
   font-lock regular expressions and remake tdtd-font.el.

4. Add the elisp code in dot_emacs to your .emacs file.

5. When you visit a file with an extension of .dtd, etc., dtd-mode
   will automatically be loaded.

* MAKING tdtd-font.el

tdtd-font.el is created by tdtd-font-maker.el.  You should not need to
remake tdtd-font.el unless you have tinkered with the regular
expressions in tdtd-font-maker.el.

1. Load file `tdtd-font-maker.el'.

2. Execute `dtd-make-tdtd-font'.

   tdtd-font.el is created in the current directory.

$Id: readme.txt,v 1.14 1999/03/11 14:53:19 tkg Exp $