Since the XSLT stylesheet and the file it operates on are both XML documents, we need some way to distinguish between more than one set of XML element names. Each set of names is called a namespace.
The solution to this problem is to define a two-part element name:
<namespace:element-name...>
where namespace defines
which set of element names we're talking about, and
element-name is the element name
inside that namespace.
In an XSLT stylesheet, any element name that doesn't
have an xsl: prefix
represents an element (with its content, if any) that gets
written to the output.
Besides the xsl:
namespace and the namespace of the elements you are writing
to the output, you may also use other namespaces. You can
control which namespaces are output and which are acted on:
see the section on the attributes of the root
element, below.
For an example of a situation where you need to refer to other namespaces, see the section on extension elements below.
For more information, see the reference for XML namespaces.