The DevCenter has moved!

The Developer Center has a new home, The site you are currently viewing is available as a read-only archive.
Things to note:
  1. Your username & password is the same on the new site,
  2. Going forward, please use the new URL,
  3. The old discussion forums and old KB articles are still available as an archive (read-only)

Ektron Knowledge Base

The Knowledge Base has thousands of articles describing open and past issues and providing answers to frequently asked questions.

Hover the mouse over to the side bar to open a side menu and expend a node for a list of articles.

INFO: XSLT: namespaces

Applies To:

Managing namespaces in XSLT can be confusing. A namespace declaration in the source XML document can cause the match statements in your templates to fail (see XSLT: XPath select statements do not match XML or XHTML with a default namespace). Despite the possible problems they can cause, they are important. In fact, when mixing two or more schemas in a single document, they can be essential. For instance, say you wish to use XML tags from a proprietary schema, XHTML, and Dublin Core. To avoid confusion, the tags from the proprietary schema and Dublin Core should have a namespace prefix. For best results in eWebEditPro+XML, it is recommended that standard XHTML tags to not have a namespace prefix.

To eliminate unneeded and unwanted namespace declarations (that is, namespace nodes) from the output of an XSLT, apply the principles listed below. See also, XSLT: Indentity templates: namespace nodes.

  • Avoid using xsl:copy and instead write templates that explicitly create the element.

<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="@*|node()"/>

  • Exclude result prefixes of namespaces declared in the XSLT.

<xsl:stylesheet version="1.0" xmlns:xsl="" xmlns:xlf="urn:oasis:names:tc:xliff:document:1.1"

More Resources:

XSLT: XPath select statements do not match XML or XHTML with a default namespace

XSLT: Identity templates

More KB articles on XSLT