Namespaces for Extensions
XSLT extension elements and extension functions must have a namespace prefix different from the XSLT namespace prefix. For example, here’s the start of a stylesheet that declares several namespace prefixes:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xalan-java="http://xml.apache.org/xslt/java"
xmlns:saxon-java="java:java.lang.Math"
extension-element-prefixes="xalan-java saxon-java">By default, the XSLT processor copies all of the non-XSLT
namespaces to the output document. That means the svg, xalan-java, and saxon-java namespaces will be defined in the
output. In this example, we’re generating an SVG document using
extensions associated with the xalan-java and saxon-java namespaces. We don’t need our
extension namespaces defined in the output document, so we use the
extension-element-prefixes
attribute to make sure they aren’t in the generated document. The
svg namespace, on the other hand, will
appear in the output document, which is exactly what we
want.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access