XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
rajat nairSubject: Conditional statements in xquery
Author: rajat nair
Date: 18 Jan 2008 02:24 PM
Hi,
the following is my xquery
declare namespace a = "http://www.openapplications.org/oagis/9";
declare variable $d:="";
{

for $PurchaseOrderLine in /*:ProcessPurchaseOrder/*:DataArea/*:PurchaseOrder/*:PurchaseOrderLine
let $d:= $PurchaseOrderLine/*:Item/*:ItemID/*:ID
return
<ResponseDetail>

<ItemLineNumber>
{$PurchaseOrderLine/*:LineNumber/text()}
</ItemLineNumber>
{
if ($d/text()="") then
<ItemNumber source ="">
{$PurchaseOrderLine/*:Item/*:ItemID/*:ID/text()}
</ItemNumber>
else
<ItemNumber source ="UI ">
{$PurchaseOrderLine/*:Item/*:ItemID/*:ID/text()}
</ItemNumber>
}
<ItemNumber source ="BP">
{$PurchaseOrderLine/*:Item/*:CustomerItemID/*:ID/text()}
</ItemNumber>
<ItemNumber source ="MP">
{$PurchaseOrderLine/*:Item/*:ManufacturerItemID/*:ID/text()}
</ItemNumber>
<ItemNumber source ="VC">
{$PurchaseOrderLine/*:Item/*:SupplierItemID/*:ID/text()}
</ItemNumber>
else()}
</ResponseDetail>
}

The lines
if ($d/text()="") then
<ItemNumber source ="">
{$PurchaseOrderLine/*:Item/*:ItemID/*:ID/text()}
</ItemNumber>
fail to work and always the result in the else loop is displayed.

>> what i m trying to do is when $PurchaseOrderLine/*:Item/*:ItemID/*:ID/text = null then the tags holding the null information should be
<ItemNumber source ="">
</ItemNumber>
and when not null the tags should be
<ItemNumber source ="UI">
<ItemNumber source ="">
{$PurchaseOrderLine/*:Item/*:ItemID/*:ID/text()}
</ItemNumber>
and similarily for the other tags too.
I don't know if i m missing something or if my approach is wrong.Any help would be greatly appreciated.I m using the saxon processor to generate java code from the following xquery, and run it.

Regards
Rajat




Posttop
Minollo I.Subject: Conditional statements in xquery
Author: Minollo I.
Date: 18 Jan 2008 02:34 PM
Try using if (empty($d)) then ... else ...

 
Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.