Bob DuCharme
March 24, 2003
"We are normal and we want our freedom."
- Bonzo Dog Band
The dtdnorm.py script uses Lars Marius Garshol's xmlproc Python XML parser to resolve all the parameter entity references in a DTD. (Lars wrote dtdnorm.py and gave me permission to post it here. I added a few tweaks that are identified in the code.) dtdnorm.py is very handy for turning a collection of DTD files that reference each other into a single file that can replace the main one. No knowledge of Python is required to use it.
In addition to the dtdnorm.py script, you'll need xmlproc and a Python implementation. I'm using ActiveState's free Python, which you can get here.
After installing Python, get xmlproc from here. Unzip it into its own directory somewhere and put dtdnorm.py into the same directory. For me, the directory is called \dev\xmlproc, so by entering the following
python \dev\xmlproc\dtdnorm.py
I display the directions for dtdnorm:
Enter python dtdnorm.py mainfile.dtd outfile.dtd to turn mainfile.dtd and all referenced external parameter entities into the single DTD file outfile.dtd. The xmlproc Python XML parser is required to run dtdnorm.