<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Drools has no native understanding of SAX or DOM. But if using JAXB or
something doesn't suffice there is also the SXC project which is quite
nice.<br>
<a class="moz-txt-link-freetext" href="http://sxc.codehaus.org/">http://sxc.codehaus.org/</a><br>
<br>
Mark<br>
<br>
Anstis, Michael (M.) wrote:
<blockquote
 cite="mid:C7774483B6A70C4BB10E917CC1A59DC11BCB50@eu1wam35.warley.ford.com"
 type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta content="MSHTML 6.00.2900.3314" name="GENERATOR">
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009">I am not sure on what you
are trying to achieve.</span></font></div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009"></span></font>&nbsp;</div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009">Drools is a Rule Engine and
not a XML parser; the nearest I could find to what you are reporting
("I know XML Streaming is possible in Drools") is the following.&nbsp;</span></font></div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009"></span></font>&nbsp;</div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009"><a moz-do-not-send="true"
 href="http://netzooid.com/blog/2007/03/16/sxc-simple-xml-compiler-jaxb-runtime-streaming-xpath-implementation-and-more/">http://netzooid.com/blog/2007/03/16/sxc-simple-xml-compiler-jaxb-runtime-streaming-xpath-implementation-and-more/</a></span></font></div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009"></span></font>&nbsp;</div>
  <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="364303810-29012009">Can you enlighten me with
your knowledge of XML Streaming in Drools?</span></font></div>
  <br>
  <blockquote dir="ltr" style="margin-right: 0px;">
    <div class="OutlookMessageHeader" dir="ltr" align="left"
 lang="en-us">
    <hr tabindex="-1"> <font face="Tahoma" size="2"><b>From:</b>
Gupta, Ankit (Ankit) [<a class="moz-txt-link-freetext" href="mailto:gupta11@avaya.com">mailto:gupta11@avaya.com</a>] <br>
    <b>Sent:</b> 29 January 2009 10:04<br>
    <b>To:</b> Anstis, Michael (M.)<br>
    <b>Subject:</b> RE: [rules-users] Parsing XML using Drools<br>
    </font><br>
    </div>
    <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="515315309-29012009">Hi Mike,</span></font></div>
    <div dir="ltr" align="left"><font color="#0000ff" face="Arial"
 size="2"><span class="515315309-29012009">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks for
prompt reply ,</span></font></div>
    <div dir="ltr" align="left"><font color="#0000ff"><span
 class="515315309-29012009"><font face="Arial" size="2">Actually right
now I am streaming the xml </font>
    <p align="left"><font face="Arial"><font size="2"><font
 color="#008080"><font color="#008080">&lt;</font></font><font
 color="#3f7f7f"><font color="#3f7f7f">BenchmarkResultsFor</font></font><font
 color="#008080"><font color="#008080">&gt;</font></font></font></font></p>
    <p align="left"><font face="Arial"><font size="2"><font
 color="#008080"><span class="515315309-29012009">&nbsp;&nbsp; </span>&lt;</font><font
 color="#3f7f7f"><font color="#3f7f7f">Benchmark</font></font><font
 color="#008080"><font color="#008080">&gt;</font></font>DataProcessing<font
 color="#008080"><font color="#008080">&lt;/</font></font><font
 color="#3f7f7f"><font color="#3f7f7f">Benchmark</font></font><font
 color="#008080"><font color="#008080">&gt;</font></font></font></font></p>
    <p align="left"><font face="Arial"><font size="2"><font
 color="#008080"><span class="515315309-29012009">&nbsp;&nbsp; </span>&lt;</font><font
 color="#3f7f7f"><font color="#3f7f7f">Workload</font></font><font
 color="#008080"><font color="#008080">&gt;</font></font>1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16<font color="#008080"><font
 color="#008080">&lt;/</font></font><font color="#3f7f7f"><font
 color="#3f7f7f">Workload</font></font><font color="#008080"><font
 color="#008080">&gt;</font></font></font></font></p>
    <p align="left"><font face="Arial"><font size="2"><font
 color="#008080"><span class="515315309-29012009">&nbsp;&nbsp; </span>&lt;</font><font
 color="#3f7f7f"><font color="#3f7f7f">Memory</font></font><font
 color="#008080"><font color="#008080">&gt;</font></font>4, 4, 4, 8, 8,
12, 12, 16, 24, 24, 24, 24, 24, 24, 24, 24<font color="#008080"><font
 color="#008080">&lt;/</font></font><font color="#3f7f7f"><font
 color="#3f7f7f">Memory</font></font><font color="#008080"><font
 color="#008080">&gt;</font></font></font></font></p>
    <p><font face="Arial"><font size="2"><font color="#008080"><font
 color="#008080">&lt;/</font></font><font color="#3f7f7f"><font
 color="#3f7f7f">BenchmarkResultsFor</font></font><font color="#008080"><font
 color="#008080">&gt;</font></font></font></font></p>
    <p>&nbsp;</p>
    <p><font size="-0"><font size="-0"><font size="-0"><font
 face="Arial" size="2"><span class="515315309-29012009">here we are
using apache math api for interpolation </span></font></font></font></font></p>
    <p><font size="-0"><font size="-0"><font size="-0"><font
 face="Arial" size="2"><span class="515315309-29012009"></span></font></font></font></font>&nbsp;</p>
    <font size="-0"><font size="-0"><font size="-0"><font size="-0"><span
 class="515315309-29012009"><b><font color="#7f0055"><font
 color="#7f0055"> </font></font></b>
    <p align="left"><b><font color="#7f0055"><font color="#7f0055"><font
 face="Arial" size="2">public</font></font></font></b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial"><font size="2"><font
 color="#000000"> MemoryBenchmarkResult(String name, </font><b><font
 color="#7f0055"><font color="#7f0055">double</font></font></b></font></font><font
 face="Arial"><font size="2"><font color="#000000">[] x, </font><b><font
 color="#7f0055"><font color="#7f0055">double</font></font></b></font></font><font
 color="#000000" face="Arial" size="2">[] y) {</font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial" size="2">this</font></font></font></b><font
 size="2"><font face="Arial">.<font color="#0000c0"><font
 color="#0000c0">hostFunction</font></font></font><font face="Arial"> =
name;</font></font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><font
 color="#3f7f5f"><font color="#3f7f5f"><font face="Arial" size="2">//
Create the interpolation function</font></font></font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><font
 size="2"><font face="Arial">SplineInterpolator i1 = </font><b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial">new</font></font></font></b></font><font
 face="Arial" size="2"> SplineInterpolator();</font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial" size="2">this</font></font></font></b><font
 size="2"><font face="Arial">.<font color="#0000c0"><font
 color="#0000c0">workload</font></font></font><font face="Arial"> = x;</font></font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial" size="2">this</font></font></font></b><font
 face="Arial"><font size="2">.<font color="#0000c0"><font
 color="#0000c0">memory</font></font> = y;</font></font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p align="left"><font color="#7f0055"><font color="#7f0055"><b><font
 color="#7f0055"><font color="#7f0055"><font face="Arial" size="2">this</font></font></font></b><font
 face="Arial"><font size="2">.<font color="#0000c0"><font
 color="#0000c0">interpolator</font></font> = i1.interpolate(<b><font
 color="#7f0055"><font color="#7f0055">this</font></font></b></font></font><font
 face="Arial"><font size="2">.<font color="#0000c0"><font
 color="#0000c0">workload</font></font>, <b><font color="#7f0055"><font
 color="#7f0055">this</font></font></b></font></font><font size="2"><font
 face="Arial">.<font color="#0000c0"><font color="#0000c0">memory</font></font></font><font
 face="Arial">);</font></font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><font color="#7f0055"><font color="#7f0055"><font face="Arial"
 size="2">}</font></font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><font color="#7f0055"><font color="#7f0055">&nbsp;</font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"><font color="#7f0055"><font
 color="#7f0055"><font face="Arial" size="2">here we are passing the
values of X Axis (Workload) and we get the values of Y Axis (Memory ).
Reading or Streaming of this XML are doing using SAX .</font></font></font></span></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"><font color="#7f0055"><font
 color="#7f0055"><font face="Arial" size="2">This thing I want to do
with Drools ...... as I know XML Streaming is possible in Drools &nbsp;.</font></font></font></span></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"></span><font color="#7f0055"><font
 color="#7f0055">&nbsp;</font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"></span><font color="#7f0055"><font
 color="#7f0055">&nbsp;</font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"><font color="#7f0055"><font
 color="#7f0055"><font face="Arial" size="2">Regards</font></font></font></span></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"><font color="#7f0055"><font
 color="#7f0055"><font face="Arial" size="2">Ankit</font></font></font></span></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"></span><font color="#7f0055"><font
 color="#7f0055">&nbsp;</font></font></p>
    <font color="#7f0055"><font color="#7f0055"> </font></font>
    <p><span class="515315309-29012009"></span><font color="#7f0055"><font
 color="#7f0055">&nbsp;</font></font></p>
    </span></font></font>
    <p><font face="Arial"><font size="2"><font color="#008080"><font
 color="#008080">&nbsp;</font></font></font></font></p>
    </font></font></span></font></div>
    <font color="#0000ff"><font size="-0"><br>
    <div class="OutlookMessageHeader" dir="ltr" align="left"
 lang="en-us">
    <hr tabindex="-1"> <font face="Tahoma" size="2"><b>From:</b>
<a class="moz-txt-link-abbreviated" href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>
[<a class="moz-txt-link-freetext" href="mailto:rules-users-bounces@lists.jboss.org">mailto:rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Anstis,
Michael (M.)<br>
    <b>Sent:</b> Thursday, January 29, 2009 2:48 PM<br>
    <b>To:</b> Rules Users List<br>
    <b>Subject:</b> RE: [rules-users] Parsing XML using Drools<br>
    </font><br>
    </div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Arial" size="2">It is not clear how you want to
use the XML?</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Arial" size="2">If the XML represents Facts then
you could use a worker Fact and "FROM" to deserialise them and make
them available to WM. For example:-</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">rule "get some XML facts"</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">when</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">$w :
Worker()</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">Cheese( )
from $w.getCheesesFromXML();</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">then</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">//Do
something with cheese</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">end</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Arial" size="2">Obviously the XML need not be
true serialised objects (in a JAXB sense) but simply the properties
that "getCheeseFromXML" rehydrates.</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Arial" size="2">Drools is not exposing any of
the XML libraries; they are merely used by your code. The above would
be (partially) equivalent to:-</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">Worker w = new Worker();</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">List&lt;Cheese&gt; cheeses
=&nbsp;w.getCheesesFromXML();</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">for(Cheese c : cheeses) {</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">&nbsp;&nbsp;&nbsp; wm.insert(c);</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">}</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 color="#0000ff" face="Courier New" size="2">rule "Cheese pre-loaded"</font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">when</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">Cheese( )</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">then</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">//Do
something with cheese</font></font></span></div>
    <div dir="ltr" align="left"><span class="248215508-29012009"><font
 face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">end</font></font></span></div>
    <div>&nbsp;</div>
    <div><span class="248215508-29012009"><font color="#0000ff"
 face="Arial" size="2">Partially equivalent as you could retract
Cheese( ) in the second way which would affect truth maintenance
whereas the first way would (I believe) not.</font></span></div>
    <div><span class="248215508-29012009"></span>&nbsp;</div>
    <div><span class="248215508-29012009"><font color="#0000ff"
 face="Arial" size="2">With kind regards,</font></span></div>
    <div><span class="248215508-29012009"></span>&nbsp;</div>
    <div><span class="248215508-29012009"><font color="#0000ff"
 face="Arial" size="2">Mike</font></span></div>
    <div><br>
    </div>
    <blockquote dir="ltr" style="margin-right: 0px;">
      <div class="OutlookMessageHeader" dir="ltr" align="left"
 lang="en-us">
      <hr tabindex="-1"> <font face="Tahoma" size="2"><b>From:</b>
<a class="moz-txt-link-abbreviated" href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>
[<a class="moz-txt-link-freetext" href="mailto:rules-users-bounces@lists.jboss.org">mailto:rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Gupta,
Ankit (Ankit)<br>
      <b>Sent:</b> 29 January 2009 07:22<br>
      <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
      <b>Subject:</b> [rules-users] Parsing XML using Drools<br>
      </font><br>
      </div>
      <div><font face="Arial" size="2"><span class="968152007-29012009">Hi
All,</span></font></div>
      <div><font face="Arial" size="2"><span class="968152007-29012009">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
How can we read and parse a XML file using drools ?</span></font></div>
      <div><font face="Arial" size="2"><span class="968152007-29012009"></span></font>&nbsp;</div>
      <div><font face="Arial" size="2"><span class="968152007-29012009">Does
Drools support the SAX or DOM parsing .</span></font></div>
      <div><font face="Arial" size="2"><span class="968152007-29012009"></span></font>&nbsp;</div>
      <div><font face="Arial" size="2"><span class="968152007-29012009"></span></font>&nbsp;</div>
      <div><font face="Arial" size="2"><span class="968152007-29012009">Regards</span></font></div>
      <div><font face="Arial" size="2"><span class="968152007-29012009"></span></font>&nbsp;</div>
      <div><font face="Arial" size="2"><span class="968152007-29012009">Ankit</span></font></div>
    </blockquote>
    </font></font></blockquote>
  <pre wrap=""><font color="#0000ff"><font size="-0">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</font></font></pre>
</blockquote>
<br>
</body>
</html>