Hice un ejemplo sobre lo que me refiero, quizás te valga.
menu.xml Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="menu.xsl"?>
<menu>
<item id="1">Menu 1</item>
<item id="2">Menu 2</item>
<item id="3">Menu 3</item>
<item id="4">Menu 4</item>
<item id="5">Menu 5</item>
</menu>
menu.xsl Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="menu">
<html>
<head>
<title>XML Y JAVASCRIPT EN UNO</title>
</head>
<body>
<xsl:for-each select="item">
<xsl:apply-templates select="."/>
</xsl:for-each>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<a href="#" onclick="alert('Hola:');void(0)">
<xsl:value-of select="text()"/>
<br/>
</a>
</xsl:template>
</xsl:stylesheet>
Es un pequeñísimo ejemplo de lo que quiero probar pero no me da tiempo a mucho más por hoy.
En él uso una función JavaScript como un simple alert con XML pero no la uso en el XML propiamente dicho sino en el XSL tal y como te decía y funciona.
Que te parece?
A mi me pareció demasiado fácil para que surjan tantos problemas con esto.. Algo de lo que preguntabas no debí de entenderlo bien.