The software I'm developing has documentation written in DocBook 4.2 with DTD and I'd like to migrate to 5.0 and drop DTD. Most of the content is migrated, but one last remaining thing is version macro. I used to have a file (generated by Makefile) called version.ent:
<!ENTITY __VERSION__ "1.2.3-git">
This file was then referenced once in every file I wanted to have the software version included:
<!ENTITY % version SYSTEM "version.ent"> %version; ]>
With those in place, it was possible to do things like this:
Welcome to the User's guide of foo version &__VERSION__.
How such mechanism should be implemented in DocBook 5.0 without using DTD?
After a bit of digging, I found the solution to be internal DTD subset. I mistakenly assumed that DTD is not supposed to be used altogether, but it was incorrect.
This page explains it well: http://www.sagehill.net/docbookxsl/Db5Entities.html. Relevant quotes:
Also: