2002-07-17  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd: 
	DocBook XML V4.2 released

2002-05-28  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd: 
	Updated comments to reflect CR3

2002-05-21  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbnotnx.mod: SVG notation accidentally left out of notation.class

	* docbookx.dtd: Fix syntactic error intentionally introduced behind mutually exclusive PEs. Now make the DTD useless, but not syntactically invalid

2002-05-12  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbpoolx.mod: Add accidentally missing local.info.class to info.class

2002-03-19  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod: 
	Prepare for CR1

	* catalog.xml, docbook.cat: Prepare for CR1 and fix search-and-replace typos

	* dbpoolx.mod: Revise graphic attributes: add contentwidth, contentdepth, and valign

	* dbpoolx.mod: Implemented RFE #480954: add textdata element

	* dbpoolx.mod: Make type other tokens in bibliorelation unique for SGML compatibility

	* dbpoolx.mod: Make spatial/temporal other tokens unique for SGML compatibility

	* dbpoolx.mod: Added blockinfo element

	* dbpoolx.mod: Move bibliorelation type attribute into a PE so that it can be expanded the way we want

	* dbpoolx.mod: Implemented RFE #480957

	* dbpoolx.mod: RFE #513426: Text alternative for tables

	* dbpoolx.mod: Added bibliosource, bibliorelation, and bibliocoverage

	* dbpoolx.mod: Add consortium to the list of classes on orgname

	* dbpoolx.mod: Add class attribute to orgname

	* docbookx.dtd: DocBook V4.2 Candidate Release 1 released

2002-02-05  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbhierx.mod: Implemented RFE #501363

	* dbpoolx.mod: Implemented RFE #498848

	* dbpoolx.mod: Implemented RFE #492099

	* dbpoolx.mod: Implemented RFE #480955

2002-01-06  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbcentx.mod: Added marked sections around character set entity references

2001-11-20  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd: 
	DocBook V4.2b1 released

	* dbpoolx.mod: Implemented RFE #482821

2001-11-19  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbhierx.mod, dbpoolx.mod: Implemented RFE #456460

2001-11-18  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbpoolx.mod: RFE #482817: Add errortext element

2001-11-17  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbpoolx.mod: RFE 482821: Add extension to the list of class values on filename

	* dbpoolx.mod: RFE 482053: Add support for DOI in meta

	* dbpoolx.mod: Removed bogus occurrence indicator in info.class; fixed typo in qandaset PEs

2001-11-13  Norman Walsh <nwalsh@users.sourceforge.net>

	* 40chg.txt, 41chg.txt, LostLog: Removed old files

	* Makefile: Makefile

	* Makefile: Fixed typo

	* README: Removed version information

	* README, readme.txt: Renamed

	* calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd: 
	Removed 'XML' from public identifiers for files that will now be common to both XML and SGML

	* catalog.xml: Fixed missing end tag

2001-11-12  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, dbcentx.mod, dbgenent.mod, dbnotnx.mod, readme.txt: 
	Updated version numbers

	* catalog.xml, docbook.cat: Added XML Catalog; updated public identifiers in catalog

	* dbpoolx.mod: Former RFE 133: Added newsgroup class to systemitem

	* dbpoolx.mod: Implemented RFE #480956

2001-11-09  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbhierx.mod: Implemented RFE #426382

	* dbhierx.mod: Implemented RFE #417671

	* dbhierx.mod, dbpoolx.mod: Implemented RFE #436072

	* dbhierx.mod, dbpoolx.mod, docbookx.dtd: Changed version number

	* dbnotnx.mod: Implemented RFE #440597

	* dbpoolx.mod: Implemented RFE #431413

	* dbpoolx.mod: Implemented RFE #434439

	* dbpoolx.mod: Expand the content model of the following elements from smallcptr.char.mix back to cptr.char.mix: interfacename, action, database, filename, hardware, keycap, option, parameter, property, and systemitem (command, interface, and literal were never reduced).

	* dbpoolx.mod: Implemented RFE #431415

	* dbpoolx.mod: Implemented RFE #431418

	* dbpoolx.mod: Implemented RFE #431419

	* dbpoolx.mod: Implemented RFE #439136

	* dbpoolx.mod: Implemented RFE #435485

	* dbpoolx.mod: Implemented RFE #435466

2001-11-07  Norman Walsh <nwalsh@users.sourceforge.net>

	* calstblx.dtd, dbcentx.mod, dbhierx.mod, dbpoolx.mod, docbookx.dtd: 
	Towards a 4.2 release: reparameterize so that the SGML DTD is just a customization of the XML DTD

	* calstblx.dtd, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd: 
	Whitespace fixes

2001-08-07  Norman Walsh <nwalsh@users.sourceforge.net>

	* dbhierx.mod: RFE 426382: Norm to allow SimpleSect inside Section

	* dbpoolx.mod: RFE 431419: Norm to add markup for FS type and partition

	* dbpoolx.mod: Fix comments; implement proposal of the TC to expand the content model of selected inlines

	* dbpoolx.mod: RFE 434439: Add language attribute to fieldsynopsis et al.

	* dbpoolx.mod: RFE 431418: Norm to add typing to funcdef and paramdef

	* dbpoolx.mod: RFE 431415: Norm to add markup for host identifiers

2001-06-18  Norman Walsh <nwalsh@users.sourceforge.net>

	* 40chg.txt, 41chg.txt, LostLog, Makefile, calstblx.dtd, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.cat, docbookx.dtd, readme.txt: 
	Additional work on DocBook XML V5.0; I had the wrong CVS repository for a while so there's a bunch of changes lumped together here

	* Makefile: branches:  1.1.2;
	file Makefile was initially added on branch V50-devel.

2001-03-12  <ndw@users.sourceforge.net>

	* calstblx.dtd, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt: 
	Updated version numbers

	* dbcentx.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd: 
	New file.

	* docbook.cat: New file.

	* docbookx.cat: branches:  1.1.2;
	file docbookx.cat was initially added on branch V50-devel.

	* docbookx.cat: New file.

2001-01-14  <ndw@users.sourceforge.net>

	* dbpoolx.mod: branches:  1.5.2;
	RFE #140: Allow multiple MsgExplan inside SimpleMsgEntry

2000-11-12  <ndw@users.sourceforge.net>

	* dbhierx.mod: branches:  1.6.2;
	Add refentry; accidentally left out

	* dbhierx.mod: Allow beginpage to be the first child of toc, lot, appendix, chapter,
	part, preface, reference, and refentry. (It can't be at the start of
	bibliography, glossary, index, or setindex because of ambiguity
	problems.)

2000-09-19  <ndw@users.sourceforge.net>

	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt, soextblx.dtd: 
	DocBook XML V4.0

	* 40chg.txt, soextblx.dtd: branches:  1.2.2;
	DocBook XML V4.1

	* 41chg.txt, LostLog, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd, readme.txt: 
	DocBook XML V4.1.1

	* 41chg.txt, LostLog, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd, readme.txt: 
	DocBook XML V4.1

	* 41chg.txt, LostLog, docbook.cat: branches:  1.3.2;
	DocBook XML V4.1.2

	* calstblx.dtd, dbcentx.mod, dbnotnx.mod, docbookx.dtd, readme.txt: 
	branches:  1.4.2;
	DocBook XML V4.1.2

	* dbgenent.mod: branches:  1.2.2;
	DocBook XML V4.1.2

	* dbhierx.mod, dbpoolx.mod: DocBook XML V4.1.2

