One of the problems with SGML has historically been that in its (laudable) attempt to maximize generality, it adopted a large number of optional features. This meant, in practice that if I had a conforming SGML document and you had another, we might not be able to interchange them.
This design goal was met; XML has no options, and every XML processor in the world should be able to read evey XML document in the world, assuming that it can decode the characters.
Back-link to specCopyright © 1998, Tim Bray. All rights reserved.