arina he wrote:
I was scraping internet for one xslt when I was converting drools 2 to jboss rule 4, but couldn't find one,
did you read this?
http://wiki.jboss.org/wiki/Wiki.jsp?page=Drools2Migration
 
so I rolled up sleeves and created one by myself, put up here in case anyone need it too.
How complete is it? Do you have any unit tests? If so we should add this as a contrib project for other users.
 
welcome comments.
 
Arina.
Keep up the good work :)
 
 

<?

xml version="1.0" encoding="UTF-8"?>

<

xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:fn= "http://www.w3.org/2005/xpath-functions" xmlns:java= "http://drools.org/semantics/java" > <xsl:output method="xml" version="1.0" indent= "yes" omit-xml-declaration="yes"/> <xsl:template match="/" > <package name="com.sample "> <global identifier="doc" type="Document" /> <xsl:apply-templates /> </package> </xsl:template> <xsl:template name="javaimport" match="java:import"> <import name="{.}" /> </xsl:template> <xsl:template name="javaFunction" match="java:functions"> <xsl:if test="contains(.,'public')" > <xsl:call-template name= "separate"> <xsl:with-param name="str" select="substring-after(.,'public ')" /> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="separate" > <xsl:param name="str" /> <xsl:choose> <xsl:when test="contains($str,'public')" > <xsl:call-template name= "drlFn"> <xsl:with-param name="fnBody" select="substring-before($str,'public')" /> </xsl:call-template> <xsl:call-template name= "separate"> <xsl:with-param name="str" select="substring-after($str,'public ')" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name= "drlFn"> <xsl:with-param name="fnBody" select="$str" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="drlFn" > <xsl:param name="fnBody" /> <function name="{substring-before(substring-after($fnBody,' '),'(')}" return-type="{substring-before($fnBody,' ')}"> <xsl:if test="normalize-space(substring-before(substring-after($fnBody,'(' ),')' ))!=''" > <xsl:call-template name= "params"> <xsl:with-param name="paramStr" select="normalize-space(substring-before(substring-after($fnBody,'(' ),')' ))" /> </xsl:call-template> </xsl:if> <body> <xsl:call-template name= "bdy"> <xsl:with-param name="bdyStr" select="substring-after($fnBody,'{' )" /> </xsl:call-template> </body> </function> </xsl:template> <xsl:template name="bdy" > <xsl:param name="bdyStr" /> <xsl:value-of select="substring-before($bdyStr,'}')" /> <xsl:if test="contains(substring-after($bdyStr,'}'),'}')" >

}

<xsl:call-template name= "bdy"> <xsl:with-param name="bdyStr" select="substring-after($bdyStr,'}')" /> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="params" > <xsl:param name="paramStr" /> <xsl:choose> <xsl:when test="contains($paramStr,',')" > <xsl:call-template name= "buildIdentifier"> <xsl:with-param name="tpy" select="substring-before($paramStr,' ')" /> <xsl:with-param name="idt" select="substring-after(substring-before($paramStr,','),' ')" /> </xsl:call-template> <xsl:call-template name= "params"> <xsl:with-param name="paramStr" select="normalize-space(substring-after($paramStr,','))"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name= "buildIdentifier"> <xsl:with-param name="tpy" select="substring-before($paramStr,' ')" /> <xsl:with-param name="idt" select="substring-after($paramStr,' ')" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="buildIdentifier" > <xsl:param name="tpy" /> <xsl:param name="idt" /> <parameter identifier="{$idt}" type="{$tpy}" /> </xsl:template> <xsl:template name="rules" match="rule" > <rule name="{@name}" > <xsl:if test="java:condition" > <lhs> <and-constraint-connective> <xsl:for-each select="java:condition" > <eval><xsl:value-of select="normalize-space(.)" disable-output-escaping="no" /></eval> </xsl:for-each> </and-constraint-connective> </lhs> </xsl:if> <xsl:for-each select="java:consequence" > <rhs> <xsl:value-of select="." /> </rhs> </xsl:for-each> </rule> </xsl:template>

</

xsl:stylesheet>

_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users