Then use !GEO.isEmpty() as a condition.
--- On Tue, 10/7/08, Otaduy del Paso, Zaloa <zotaduy(a)indra.es> wrote:
From: Otaduy del Paso, Zaloa <zotaduy(a)indra.es>
Subject: RE: RV: [rules-users] Checking an xml field
To: "Rules Users List" <rules-users(a)lists.jboss.org>
Date: Tuesday, October 7, 2008, 10:51 AM
Scott,
The rules I have now, compile. The generated jaxb classes I
have
regarding to what I'm trying to do are:
EVENT.java
public class EVENT {
@XmlElement(name = "EVENT_ID", required =
true)
protected String eventid;
@XmlElementRefs({
@XmlElementRef(name = "NODE_ID",
namespace =
"http://oasis-fp6.org/schemas/TSO/1_0", type =
JAXBElement.class),
@XmlElementRef(name = "OTHER_EVENT_ID",
namespace =
"http://oasis-fp6.org/schemas/TSO/1_0", type =
JAXBElement.class)
})
@XmlElement(name = "GEO")
protected List<EVENT.GEO> geo;
@XmlElement(name = "PREDICTED_CASUALTIES")
protected List<EVENT.PREDICTEDCASUALTIES>
predictedcasualties;
@XmlElement(name = "TREND")
protected String trend;
........
public static class GEO {
@XmlElement(name = "DESCRIPTION",
required = true)
protected String description;
@XmlElement(name = "POSITION", required =
true)
protected POSITION position;
@XmlElement(name = "WEATHER")
protected List<String> weather;
@XmlElement(name = "TEXT")
protected String text;
}
POSITION.java
public class POSITION {
@XmlElement(name = "LOC_ID")
protected String locid;
@XmlElement(name = "NAME")
protected String name;
@XmlElement(name = "COORD")
protected POSITION.COORD coord;
.......
public static class COORD {
@XmlElementRefs({
@XmlElementRef(name = "LON",
namespace =
"http://oasis-fp6.org/schemas/TSO/1_0", type =
JAXBElement.class),
@XmlElementRef(name = "HEIGHT",
namespace =
"http://oasis-fp6.org/schemas/TSO/1_0", type =
JAXBElement.class),
@XmlElementRef(name = "LAT",
namespace =
"http://oasis-fp6.org/schemas/TSO/1_0", type =
JAXBElement.class)
})
}
I hope this is enough to understand what I'm working
with. Sorry if I
didn't explain myself correctly.
Thanks in advance,
Zaloa Otaduy del Paso
________________________________
De: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] En nombre de
Scott Reed
Enviado el: martes, 07 de octubre de 2008 17:39
Para: Rules Users List
Asunto: Re: RV: [rules-users] Checking an xml field
Zaloa,
You haven't answered my question as what the problem
is. Do these rules
compile?
It seems to me that you have misunderstood how the
condition part of the
rules work.
I agree with David that it would help for you to study the
manual some
more and to work through some of the tutorials.
Since this is a Drools forum, there are probably not a lot
of folks who
understand exactly how JAXP translates the XML into beans.
You are more
likely to get help here if you include the relevant
portions (get
methods) of the API output by JAXP.
Otaduy del Paso, Zaloa [10/7/2008 11:22 AM] wrote:
Hi David,
Thanks for your helpful response. The problem was that the
element GEO
can appear 0 or many times so what I needed to write was
this
when
OASISTSO10($e: EVENT)
OASISTSO10($e.GEO[0].POSITION.LOCID
== "40005")
Then
Action
instead of
when
OASISTSO10($e: EVENT)
OASISTSO10($e.GEO.POSITION.LOCID ==
"40005")
Then
Action
Now I'm facing another problem. I need to check if the
element GEO
exists before checking the POSITION, otherwise it throws an
outofbound
exception.
I tried with:
when
OASISTSO10($e: EVENT)
EVENT($g: GEO)
OASISTSO10($e.GEO[0].POSITION.LOCID
matches
"40.*")
But it doesn't work. Any hints on this?
Thanks in advance,
Zaloa Otaduy del Paso
________________________________
De: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] En nombre de
David Sinclair
Enviado el: martes, 07 de octubre de 2008 15:58
Para: Rules Users List
Asunto: Re: RV: [rules-users] Checking an xml field
Read the manual man. Your rules don't make any sense
http://downloads.jboss.com/drools/docs/4.0.7.19894.GA/html_single/
On Tue, Oct 7, 2008 at 9:49 AM, Scott Reed
<sreed(a)avacoda.com> wrote:
What is the problem you are seeing? Do the rules compile
ok?
Otaduy del Paso, Zaloa [10/6/2008 12:08 PM] wrote:
Does anybody know the answer to my question? I'm not
able to solve this
issue and don't find any clarifying tutorial either....
Hi,
I'm new in drools and I'm having some problems
accessing an xml field.
I'm using drools with jaxb to treat xml files that
follow an specific
xsd. I have the following xml (this is just a piece of the
xml):
<OASIS_TSO_1_0>
<EVENT>
<EVENT_ID>EVENT_ID_03/10/2008
10:22:36</EVENT_ID>
<NODE_ID>00</NODE_ID>
<OTHER_EVENT_ID>Incidente UME</OTHER_EVENT_ID>
<EVENT_TYPE>POL</EVENT_TYPE>
<SOURCE>HUMDED</SOURCE>
<SEVERITY>EXTREM</SEVERITY>
<CERTAINTY>88</CERTAINTY>
<DECL_DATIME>2008-10-03T10:20:47.0000000+02:00</DECL_DATIME>
<GEO>
<DESCRIPTION/>
<POSITION>
<LOC_ID>14021</LOC_ID>
<COORD>
<LAT>37.9811636567434</LAT>
<LON>-4.85417587343286</LON>
<HEIGHT>0</HEIGHT>
</COORD>
</POSITION>
</GEO>
</EVENT>
</OASIS_TSO_1_0>
I already have a couple of rules working, but they are
simple rules,
like this one:
rule "Rule1"
salience 10
when
OASISTSO10($e: EVENT)
OASISTSO10($e.SEVERITY == "EXTREM") or
OASISTSO10($e.SEVERITY ==
"SEVERE")
then
action
The problem appears when I have to check the LOC_ID field
and I don't
know how to access to it. I have tried several things but
none of them
work
1.
when
OASISTSO10($e: EVENT)
OASISTSO10($e.GEO.POSITION.LOCID ==
"40005")
then
2.
when
OASISTSO10($e: EVENT)
OASISTSO10($g: $e.GEO)
OASISTSO10($p: $g.POSITION)
OASISTSO10($p.LOCID ==
"40005")
Then
I have also tried with ($e.GEO.POSITION.DESCRIPTION, just
in case the
"_" character was the problem. But the same
results... I have searched
also for examples with xmls but I haven't had luck.
Any help would be appreciated. Thanks in advance,
Zaloa
________________________________
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
________________________________
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users