In order to process XML data every program or server process needs an XML parser. The parser extracts the actual data out of the textual representation and creates either events or new data structures from them.
Parsers also check whether documents conform to the XML standard and have a correct structure.
This is essential for the automatic processing of XML documents. Not all parsers on the market are validating, although most of the more recent implementations are. Support for XML Schema is naturally less prevalent as the specification is not yet a final recommendation and some software manufacturers got burnt by early implementations. With the growing number of existing XML vocabularies, tag names in different DTDs are more and more likely to clash, so a facility for using multiple DTDs for an XML document was needed. XML Namespaces is such a facility that enables the direct association of tag names with a certain DTD and therefore the combination of multiple DTDs.