You were right.
With that things become easy.
The template looks like this - atleast from what I could figure out
<xsl:template match="input:root">
<xsl:apply-templates select="input:event" />
</xsl:template>
<xsl:template match="input:event">
<properties>
<xsl:apply-templates/>
</properties>
</xsl:template>
<xsl:template match="input:event/*">
<property name="{local-name()}" string_value="{.}"/>
</xsl:template>
But there is a small twist to this.Is there soem way to
test whether a node has numeric value or not.A pseudocode will be like this :
if(test{.} is a number) then
<property name="{local-name()}" num_value="{.}"/>
else
<property name="{local-name()}" string_value="{.}"/>