XML-Daten bestehen aus Elementen, auch Tags genannt, sowie null oder mehreren Attributen und deren Werten. Damit stellt sich aber ein Problem: wie soll ein Parser im Internet eine Unterscheidung treffen zwischen gleichen Namen, die zu verschiedenen logischen Zuordnungen gehören, und aus verschiedenen XML-Instanzen zusammengesetzt werden.
Angenommen, die beiden folgenden Elementgruppen kämen aus zwei verschiedenen DTDs, nämlich books und owners:
<Buch>
<Titel>Tauben im Gras</Titel>
<Autor>Wolfgang Koeppen</Autor>
</Buch>
Das Problem wird deutlich: beide Elemente haben eine semantisch logische Bedeutung, sind aber quasi Homonyme. Der erste Tag bezieht sich auf den Buchtitel, der zweite auf den akademischen Titel des Besitzers. Seitens einer Modellierung in einer DTD, stellt das kein Problem dar, aber wenn man das nun unterscheiden muss, was dann?
Genau hier setzt der Ansatz der XML-Namensräume (Namespace) an: Wer schon einmal mit einer Technologie gearbeitet hat, die auf Namensräume aufsetzt - wie bspw. XSL, XSLT oder Schema, wird das Grundprinzip kennen: es wird ein Präfix definiert, welches es ermöglicht die Namensräume der verschiedenen Elementgruppen zu unterscheiden