Hi Mark,<br><br>I have a simple app converting around 30 drl files with about 230 rules using this xslt, I was able to run all those rules without any manually modification after covertion which was my goal -:), lazy me.&nbsp; this xslt should cover most cases.
<br><br>it converts two major parts: functions to package, rule to rule, and&nbsp; as well as some minor tags such as import. out of those &quot;functions&quot; part is a little hard, but I managed do it though xslt.<br><br>since my rules are not very complex ones, I&#39;m sure there are some case I don&#39;t cover. so&nbsp; far I know two&nbsp; issues:
<br>&nbsp; 1, the attribute for rules is not covered since I don&#39;t local attribute for individual rule, we use global&nbsp; vars,<br>&nbsp; 2, need put xml schema into header.<br><br>should be more, and that&#39;s why I put up here so that people can give comments and suggestion to make its coverage wider and more useful.
<br><br>BTW, this is only for&nbsp; &quot;XML-to-XML&quot; format, not drl format.<br><br>one thing I was impressed by the Jboss Rule 4 is the backward compatibility. we were coded against JSR94 interface, after upgrade from drools 2 to 4, I only did a minor change on global variable. it works perfectly. good work Mark.
<br><br><br><div class="gmail_quote">On Dec 19, 2007 12:59 PM, Mark Proctor &lt;<a href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




  
  

<div bgcolor="#ffffff" text="#000000">
arina he wrote:
<blockquote type="cite"><div>
  <div>I was scraping internet for one xslt&nbsp;when I was converting
drools 2 to jboss rule 4,&nbsp;but couldn&#39;t find one,</div></div>
</blockquote>
did you read this? <br>
<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=Drools2Migration" target="_blank">http://wiki.jboss.org/wiki/Wiki.jsp?page=Drools2Migration</a><br>
<blockquote type="cite"><div>
  <div> </div>
  <div>&nbsp;</div>
  <div>so I rolled up sleeves and created one by myself, put up here in
case anyone need it too.</div></div>
</blockquote>
How complete is it? Do you have any unit tests? If so we should add
this as a contrib project for other users.<br>
<blockquote type="cite">
  <div>&nbsp;</div>
  <div>welcome comments.</div>
  <div>&nbsp;</div>
  <div>Arina.</div>
</blockquote>
Keep up the good work :)<br>
<blockquote type="cite"><div><div></div><div>
  <div>&nbsp;</div>
  <div>&nbsp;</div>
  <div><font color="#008080" size="2">
  <p align="left">&lt;?</p>
  </font><font color="#3f7f7f" size="2">xml </font><font color="#7f007f" size="2">version</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;1.0&quot; </font><font color="#7f007f" size="2">
encoding</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;UTF-8&quot;</font><font color="#008080" size="2">?&gt;
  <p align="left">&lt;</p>
  </font><font color="#3f7f7f" size="2">xsl:stylesheet </font><font color="#7f007f" size="2">version</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;1.0&quot; </font><font color="#7f007f" size="2">
xmlns:xsl</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;<a href="http://www.w3.org/1999/XSL/Transform" target="_blank">http://www.w3.org/1999/XSL/Transform</a>&quot;
  </font><font color="#7f007f" size="2">xmlns:xs</font>
  <font size="2">=</font><font color="#2a00ff" size="2">&quot;<a href="http://www.w3.org/2001/XMLSchema" target="_blank">http://www.w3.org/2001/XMLSchema</a>&quot;
  </font><font color="#7f007f" size="2">xmlns:fn</font><font size="2">=</font>
  <font color="#2a00ff" size="2">&quot;<a href="http://www.w3.org/2005/xpath-functions" target="_blank">http://www.w3.org/2005/xpath-functions</a>&quot;
  </font><font color="#7f007f" size="2">xmlns:java</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;<a href="http://drools.org/semantics/java" target="_blank">http://drools.org/semantics/java</a>&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:output </font><font color="#7f007f" size="2">method</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;xml&quot; </font>

<font color="#7f007f" size="2">version</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;1.0&quot; </font><font color="#7f007f" size="2">indent</font><font size="2">=</font><font color="#2a00ff" size="2">

&quot;yes&quot; </font><font color="#7f007f" size="2">omit-xml-declaration</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;yes&quot;</font><font color="#008080" size="2">/&gt;</font><font size="2"> </font>

<font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template
  </font><font color="#7f007f" size="2">match</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;/&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">package </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;com.sample
&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">global </font><font color="#7f007f" size="2">identifier</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;doc&quot; </font>

<font color="#7f007f" size="2">type</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;Document&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:apply-templates </font><font color="#008080" size="2">/&gt;</font><font size="2"> </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">

package</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;javaimport&quot; 
</font><font color="#7f007f" size="2">match</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;java:import&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">import </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{.}&quot; </font><font color="#008080" size="2">

/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;javaFunction&quot; 
</font><font color="#7f007f" size="2">match</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;java:functions&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:if </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;contains(.,&#39;public&#39;)&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;separate&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;str&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after(.,&#39;public &#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:if</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;separate&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;str&quot; </font><font color="#008080" size="2">

/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:choose</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:when </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;contains($str,&#39;public&#39;)&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;drlFn&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;fnBody&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-before($str,&#39;public&#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;separate&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;str&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after($str,&#39;public &#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:when</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:otherwise</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;drlFn&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;fnBody&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;$str&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:otherwise</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:choose</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;drlFn&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;fnBody&quot; </font>

<font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">function </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{substring-before(substring-after($fnBody,&#39;
&#39;),&#39;(&#39;)}&quot; </font><font color="#7f007f" size="2">return-type</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{substring-before($fnBody,&#39;
&#39;)}&quot;</font><font color="#008080" size="2">&gt;</font><font size="2"> </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:if
  </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;normalize-space(substring-before(substring-after($fnBody,&#39;(&#39;
),&#39;)&#39; ))!=&#39;&#39;&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;params&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;paramStr&quot; 
</font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;normalize-space(substring-before(substring-after($fnBody,&#39;(&#39;
),&#39;)&#39; ))&quot; </font><font color="#008080" size="2">
/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:if</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">body</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;bdy&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;bdyStr&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after($fnBody,&#39;{&#39; )&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">body</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">function</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;bdy&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;bdyStr&quot;
  </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:value-of </font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-before($bdyStr,&#39;}&#39;)&quot;
  </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:if </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;contains(substring-after($bdyStr,&#39;}&#39;),&#39;}&#39;)&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  <p align="left">}</p>
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;bdy&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;bdyStr&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after($bdyStr,&#39;}&#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:if</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;params&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;paramStr&quot;
  </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:choose</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:when </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;contains($paramStr,&#39;,&#39;)&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;buildIdentifier&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;tpy&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-before($paramStr,&#39; &#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;idt&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after(substring-before($paramStr,&#39;,&#39;),&#39;
&#39;)&quot; </font><font color="#008080" size="2">
/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;params&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;paramStr&quot; 
</font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;normalize-space(substring-after($paramStr,&#39;,&#39;))&quot;</font><font color="#008080" size="2">/&gt;</font>


  <font size="2"></font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:when</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:otherwise</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:call-template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">
&quot;buildIdentifier&quot;</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;tpy&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-before($paramStr,&#39; &#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:with-param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;idt&quot; </font>

<font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;substring-after($paramStr,&#39; &#39;)&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:call-template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:otherwise</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:choose</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;buildIdentifier&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;tpy&quot; </font><font color="#008080" size="2">

/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:param </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;idt&quot; </font><font color="#008080" size="2">

/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">parameter </font><font color="#7f007f" size="2">identifier</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{$idt}&quot; 
</font><font color="#7f007f" size="2">type</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{$tpy}&quot; </font><font color="#008080" size="2">/&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:template </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;rules&quot; </font>

<font color="#7f007f" size="2">match</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;rule&quot; </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">rule </font><font color="#7f007f" size="2">name</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;{@name}&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:if </font><font color="#7f007f" size="2">test</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;java:condition&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">lhs</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">and-constraint-connective</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:for-each </font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;java:condition&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">eval</font><font color="#008080" size="2">&gt;&lt;</font><font color="#3f7f7f" size="2">xsl:value-of </font><font color="#7f007f" size="2">


select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;normalize-space(.)&quot;
  </font><font color="#7f007f" size="2">disable-output-escaping</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;no&quot;
  </font><font color="#008080" size="2">/&gt;&lt;/</font><font color="#3f7f7f" size="2">eval</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:for-each</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">and-constraint-connective</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">lhs</font><font color="#008080" size="2">&gt;</font><font size="2"> </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">

xsl:if</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:for-each </font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;java:consequence&quot;
  </font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">rhs</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;</font><font color="#3f7f7f" size="2">xsl:value-of </font><font color="#7f007f" size="2">select</font><font size="2">=</font><font color="#2a00ff" size="2">&quot;.&quot; </font>

<font color="#008080" size="2">/&gt;</font><font size="2"> </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">rhs</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:for-each</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">rule</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">&lt;/</font><font color="#3f7f7f" size="2">xsl:template</font><font color="#008080" size="2">&gt;</font><font size="2">
  </font><font color="#008080" size="2">
  <p>&lt;/</p>
  </font><font color="#3f7f7f" size="2">xsl:stylesheet</font><font color="#008080" size="2">&gt;</font></div>
  </div></div><pre><hr size="4" width="90%"><div>
_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
  </div></pre>
</blockquote>
<br>
</div>

<br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">

https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br>