A namespace-aware parser does add a couple of checks to the normal
well-formedness checks that a parser performs. Specifically, it
checks to see that all prefixes are mapped to URIs. It will reject
documents that use unmapped prefixes (except for
xml and xmlns when used as
specified in the XML 1.0 or Namespaces in XML specifications.) It
will further reject any element or attribute names that contain more
than one colon. Otherwise, it behaves almost exactly like a
non-namespace-aware parser. Other software that sits on top of the
raw XML parser, an XSLT engine for example, may treat elements
differently depending on to which namespace they belong. However, the
XML parser itself mostly doesn't care as long as all
well-formedness and namespace constraints are met.
A possible exception occurs in the unlikely event that elements with
different prefixes belong to the same namespace. In this case, a
namespace-aware parser will report the elements as being the same,
while a non-namespace-aware parser will report them as different.
About equally unlikely is the case where two elements or attributes
with the same qualified name are in different namespaces because the
common prefix is bound to different URIs in different places in the
document. Slightly more likely is the case where two unprefixed names
are placed in different default namespaces. In both these cases, a
namespace-aware processor will report them as different, whereas a
non-namespace-aware processor will treat them the same. Many parsers
let you turn namespace processing on or off as you see fit.
 |  |  |
4.2. Namespace Syntax |  | 4.4. Namespaces and DTDs |