The Real Topic: General DTD-to-XSD Migration

Many publishers, institutions and technical documentation departments own large XML holdings that were created over many years. These holdings often consist of thousands of XML files that are valid against one or more DTDs. The files may still be usable, but the model behind them is usually too permissive for modern production: values are encoded as plain text, units are inconsistent, image references are not normalized, metadata fields are optional in the wrong places, and project-specific rules live in documentation rather than in executable validation.

The migration from DTD to XSD is therefore not merely a syntax change from one schema language to another. It is a modelling project. A DTD answers the question: which element structures were broadly allowed in the old system? A curated XSD answers a more precise question: which structures, datatypes and controlled values do we want to permit in the new production system?

This principle is independent of JATS. It applies to DocBook, DITA customizations, TEI subsets, proprietary editorial DTDs, technical documentation vocabularies, product catalogues, legal XML, educational content, scholarly books and manuscript systems. The vocabulary changes, but the migration logic is the same:

  • Identify the old DTDs and their modules.
  • Analyse the real corpus, not only the formal DTD.
  • Infer an observed schema from actual documents.
  • Curate a stricter XSD that expresses the future production rule set.
  • Write transformations from old XML into the curated model.
  • Package XML and assets so that validation can cover complete publications.
  • Add Schematron and reporting for quality rules that XSD cannot express well.

 

Flow diagram for a general DTD to XSD migration workflow
Figure 1. The general migration flow. JATS is only one possible vocabulary; the method is reusable for all large DTD-based archives.
<< back                                                                                                             next >>