IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
  • 1.  XQuery if sencence

    Posted 04/06/04 05:01 PM

    Hello!!
    I am quite new with XQuery and i’ve a problem with if-sentence.

    I want to replace a node if the condition is true, else insert a node. The problem is the following one. I need to prove that two attributes of the same node!!! and I don’t know how do it!!

    This is my Query:

    1)update
    2) if (document(“D:/AGENCIA.xml”)//AGENCIA/VUELO[@CODIGO=“ZARMAD1”]/PLAZA[@NUMERO=“01”])
    3) then
    4) replace document(“D://AGENCIA.xml”)//AGENCIA/VUELO[@CODIGO=“ZARMAD1”]/PLAZA[@NUMERO=“01”]
    5) with
    6) Mr Smith
    7)
    8) else
    9) insert
    10) MR Smith
    11) 70
    12) Bussines
    13)
    14) into document(“D:/AGENCIA.xml”)//AGENCIA/VUELO[@CODIGO=“ZARMAD1”]/PLAZA;
    15)document(“D:/AGENCIA.xml”)

    In line 2 is my problem:
    PLAZA has two attributes NUMERO adn LIBRE, and I want to do something like :
    if(CODIGO=“code” and LIBRE=“TRUE”) but in Xquery of course, could some of you help me, please?

    Thanks a lot

    Mar


    #webMethods
    #API-Management
    #Tamino


  • 2.  RE: XQuery if sencence

    Posted 04/22/04 06:17 PM

    Hello,
    you can simulate an if by 2 where expressions
    according the approach described below.

    Best regards
    Walter



    if (booleanExpression)
    then (expression1)
    else (expression2)

    is equivalent to Tamino XQuery

    let $condition := (booleanExpression)
    return (
    let $d := “then”
    where $condition
    return (expression1),
    let $d := “else”
    where not($condition)
    return (expression2),
    )

    If the conditional expression is not contained in filter or sort expression (it is independent of the context item) then a simpler expression can be used:

    let $condition := (booleanExpression)
    return ( (expression1)[$condition], (expression2) [not($condition)] )



    Example
    ? W3C XQuery
    if (input()/cruise[price = 1088])
    then ( )
    else ( )

    ? Tamino XQuery 4
    let $condition := (input()/cruise[price = 1088])
    return
    (let $d := “then”
    where $condition
    return ,
    let $d := “else”
    where not($condition)
    return )


    more simpler case
    ? W3C XQuery
    if (count($b/author) > 2)
    then
    else ()

    ? Tamino XQuery 4
    let $a:= “then”
    where (count($b/author) > 2)
    return


    #Tamino
    #API-Management
    #webMethods