Namespaces




Anamespace groups elements together by partitioning elements and their attributes into logical areas
and providing a way to identify the elements and attributes uniquely. Namespaces are also used to
reference a particular DTD or XML Schema. Namespaces were defined after XML 1.0 was formally
presented to the public. After the release of XML 1.0, the W3C set out to resolve a few problems, one of
which is related to naming conflicts. To understand the significance of this problem, first think about the
future of the Web.

Shortly after the W3C introduced XML 1.0, an entire family of languages such as Mathematical Markup
Language (MathML), Synchronized Multimedia Integration Language (SMIL), Scalable Vector Graphics
(SVG), XLink, XForms, and the Extensible Hypertext Markup Language (XHTML) started appearing.
Instead of relying on one language to bear the burden of communicating on the Web, the idea was to
present many languages that could work together. If functions were modularized, each language could
do what it does best; however the problem arises when a developer needs to use multiple vocabularies
within the same application. For example, one might need to use a combination of languages such as
SVG, SMIL, XHTML, and XForms for an interactive Web site. When mixing vocabularies, you have to
have a way to distinguish between element types. Take the following example:

<html>

<head>

<title>Book List</title>

</head>