XML de saída XSL sem prefixo sem usar o namespace padrão?

Eu tenho um XSL onde eu preciso gerar saída ao longo das linhas deste:

<moo xmlns="http://api.example.com">
    <foo>1358944586848</foo>
    <bar>
        <a>1</a>
        <b>2</b>
        <c>3</c>
    </bar>
</moo>

Eu poderia fazer assim:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://api.example.com">

    <xsl:template match="/">
        <xsl:element name="moo">
            <!-- and so on -->

No entanto, eu meio que odeio usar o prefixo xsl em meus arquivos xsl porque eu sinto que ele fica muito confuso. Selecionando com XPath é fácil de qualquer maneira, desde que você pode definirxpath-default-namespace para o que você está transformando, se necessário. Mas não háelement-default-namespace disponível, tanto quanto eu posso ver, então como posso gerar a saída desejada em um bom caminho?

Eu sei que posso fazer isso:

<stylesheet version="2.0"
    xmlns="http://www.w3.org/1999/XSL/Transform">

    <template match="/">
        <element name="moo" namespace="http://api.example.com">
            <!-- and so on -->

Mas então eu tenho que definir este namespace explicitamente em cada elemento que eu criar, ou eles vão acabar com o namespace XSL. Existe uma maneira limpa de criar elementos com um determinado namespace (sem prefixo) e não tocar no namespace padrão do arquivo xsl?

Atualizar:

Figurou talveznamespace-alias poderia fazer alguma coisa, mas não consegue descobrir como usá-lo. Tentei isso, mas não parece fazer nenhuma diferença na saída:

<stylesheet version="2.0"
    xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:out="http://api.example.com">

<namespace-alias stylesheet-prefix="out" result-prefix=""/>

    <template match="/">
        <element name="out:moo">
            <!-- and so on -->

onamespace-alias coisa provavelmente não está fazendo o que eu acho que é: p

A solução final que usei, com base na resposta de JLRishe

remove-prefixos.xsl

<?xml version="1.0" encoding="UTF-8"?>
<stylesheet version="2.0" xmlns="http://www.w3.org/1999/XSL/Transform">
    <template match="/">
        <variable name="result">
            <next-match />
        </variable>
        <apply-templates select="$result" mode="remove-prefixes" />
    </template>

    <template match="*" priority="1" mode="remove-prefixes">
        <element name="{local-name()}" namespace="{namespace-uri()}">
            <apply-templates select="@* | node()" mode="remove-prefixes" />
        </element>
    </template>
    <template match="@*|node()" mode="remove-prefixes">
        <copy>
            <apply-templates select="@* | node()" mode="remove-prefixes" />
        </copy>
    </template>

</stylesheet>

subject.xsl

<!-- snip -->
<import href="remove-prefixes.xsl" />
<!-- snip -->

questionAnswers(3)

yourAnswerToTheQuestion