Why the Standalone Declaration?

The problem is that declarations in the DTD can actually affect how an application sees the content of the document. Which declarations can do this is described in exhaustive detail in a list a couple of paragraphs down.

In most cases, this probably isn't a problem; most XML applications will pretty well know whether or not the documents' consumers will be using the DTD or not, and if this matters. But if you want to be sure, you can povide a Standalone Document Declaration (SDD), which tips a receiving application off that reading the DTD might change the document.

Important Note

Neither the presence of the SDD nor its value has any effect on the required behavior of the XML processor or the application. (In fact, due to what is probably an error in the specification, the processor is not even required to inform the app as to its value). It is merely a statement of fact about the document, so that if any downstream application needs to be really sure that it is seeing the document exactly the same way as another application that used the DTD, it will know when it has to go fetch and read the DTD.

Back-link to spec

Copyright © 1998, Tim Bray. All rights reserved.