Douglas,
Sorry, this is my bad. It turns out that we blissfully ignore the expression
language attribute in the source ('from-spec") of the <copy> element (shown
in the "from-spec" variant below).
<from expressionLanguage="anyURI"?>expression</from>
For now, at least until I resolve the problem, please set the
expressionLanguage attribute globally on the <process> element.
Best Regards,
Karthick Sankarachary
On Tue, Feb 3, 2009 at 10:15 AM, Jackson, Douglas <
[email protected]> wrote:
> Hi!
> I have not been able to get the xquery stuff to work. I created an
> extremely simple BPEL to test it. I am attaching a zip file with all
> of the files from the process. I would appreciate it if someone could
> tell me where I am going wrong. (The commented out from clause works)
> The process throws an Uninitialized variable for me. I built the ode from
> the trunk. I also built off the 1.2 branch with the same results. What is
> the minimum version of Ode in which this would work?
> Thanks in advance!
> -Doug.
>
> -----Original Message-----
> From: Ford, Mark [mailto:[email protected]]
> Sent: Monday, January 26, 2009 8:00 AM
> To: [email protected]
> Subject: Re: BPEL assignment question
>
> My guess is that you need to wrap the expression within a CDATA or escape
> the XML.
>
>
> On 1/24/09 6:52 PM, "Jackson, Douglas" <[email protected]>
> wrote:
>
> Hi!
> I do get some warnings that I cannot explain at bpel compile time - I set
> the expressionLanguage="...xquery1.0" on the process node and on the <from>
> node:
> WARN - GeronimoLog.warn(92) | Unrecognized element in BPEL dom: {
> http://xxx/yyy}c-info <http://xxx/yyy%7Dc-info>
>
> WARN - GeronimoLog.warn(92) | null:449: warning: [XPath20Syntax] The string
> "
> " is not a valid XPath 2.0 expression: empty string
>
> WARN - GeronimoLog.warn(92) | Unrecognized element in BPEL dom: {
> http://xxx/yyy}a-request
> -Doug <http://xxx/yyy%7Da-request%0A-Doug>.
>
> -----Original Message-----
> From: Jackson, Douglas [mailto:[email protected]]
> Sent: Saturday, January 24, 2009 12:06 PM
> To: [email protected]
> Subject: RE: BPEL assignment question
>
> Hi!
> Thank you Karthick and Mark for your responses!
>
> I followed your advice, but now the variable that I am assigning the XQuery
> value to says it is uninitialized when I refer to it in another copy just
> after the copy that set the variable. There are no errors from the XQuery
> or BPEL prior to referring to the variable in the subsequent copy. Is there
> anything I can do to figure out what is going wrong?
> I am going to try to simplify the XQuery (removing variable references) to
> see if that makes any difference.
>
> Any debugging advice would be appreciated.
> Thanks!
> -Doug.
>
> -----Original Message-----
> From: Karthick Sankarachary [mailto:[email protected]]
> Sent: Friday, January 23, 2009 3:27 PM
> To: [email protected]
> Subject: Re: BPEL assignment question
>
> Douglas,
>
> I couldn't agree more with Mark's recommendation to use XQuery for
> constructing XML nodes, whether it be an element, attribute or what have
> you. And, yes that feature has been pretty well tested.
>
> For more details, please refer to the
> constructors<http://www.w3.org/TR/xquery/#id-constructors>section in
> the XQuery spec. It lets you not only write static XML fragments,
> but also build dynamic XML fragments on the fly.
>
> Regards,
> Karthick
>
> On 1/23/09, Ford, Mark <[email protected]> wrote:
> >
> > You should look at XQuery for this use case. I haven't tested with ODE
> yet
> > but I saw a post from a while back that the trunk supports XQuery with
> the
> > following namespace:
> >
> > urn:oasis:names:tc:wsbpel:2.0:sublang:xquery1.0
> >
> > Your example below would look like this in XQuery:
> >
> > <from
> expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xquery1.0">
> >
> > <c-info xmlns="http://xxx/yyy">
> >
> > <c-id>{$unique-id}</c-id>
> > <client-id>{$client-id}</client-id>
> > (: other elements go here :)
> > </c-info>
> > </from>
> >
> > The text between the curly braces is executable and will produce the
> > results you're looking for. This is a very simple example of a literal
> style
> > XQuery expression. I find this a much better way of constructing
> elements.
> > Often times you can collapse many different copy operations into a single
> > operation which greatly simplifies the coding and maintenance of the
> > process.
> >
> >
> >
> > On 1/23/09 2:16 PM, "Jackson, Douglas" <[email protected]>
> > wrote:
> >
> > Hi!
> > I am trying to create a complex element in an assignment without first
> > creating a literal element and subsequently filling in values.
> >
> > I tried an assignment like the following:
> >
> > <from>concat('<c-info xmlns="http://xxx/yyy">',
> > '<c-id>', $unique-id, '</c-id>',
> > '<client-id>', $client-id,
> '</client-id>',
> > '<type>', 'Type', '</type>',
> > '<owner>',
> > $req-msg.req-part/p:r-info/p:user-name, '</owner>',
> > '<group>',
> > $req-msg.req-part/p:r-info/p:group,
> > '</group>',
> > '</process-info>')</from>
> >
> > But Ode interpreted it as:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <c-info xmlns="http://xxx/yyy"><c-info xmlns="http://xxx/yyy
> >
> "><c-id>1232736236359-63</c-id><client-id>cmid</client-id><type>Type</type><owner>fred</owner><group>cgroup</group></c-info></c-info>
> > This would expand to a lot of code with literal + replacement...
> >
> > I guess I could write an extension function that would convert the string
> > to a node...
> >
> > Ode could add a new form of <from> like <literal-with-replacement> that
> > allowed the variables to be substituted. :)
> > -Doug.
> >
> >
> >
> >
>
>
> --
> Best Regards,
> Karthick Sankarachary
>
>