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
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Rusty ManesiyaSubject: Suppress namespace on every node
Author: Rusty Manesiya
Date: 06 Mar 2007 03:07 PM
Originally Posted: 06 Mar 2007 03:06 PM
How can I tell XQuery to stop putting the namespace information on every node, instead somehow add reference to the name space.

<a:listOfParty xmlns:a="http://www.test.org/schema/AP/party"><a:party><a:id>4926</a:id><a:typeCode><b:value xmlns:b="http://www.test.org/schema/AP/core"/></a:typeCode><a:description/><a:relatedDates><b:dateData xmlns:b="http://www.test.org/schema/AP/core">

Thanks

Postnext
Ivan PedruzziSubject: Suppress namespace on every node
Author: Ivan Pedruzzi
Date: 06 Mar 2007 09:31 PM

Hi Rusty,

Which XQuery processor are you running?

Could you please show us the query?

Ivan Pedruzzi
Stylus Studio Team

Postnext
Rusty ManesiyaSubject: Suppress namespace on every node
Author: Rusty Manesiya
Date: 07 Mar 2007 08:08 AM
Below is the query. When i run it it places the namespace data on every starting node, I wish a better way to just declare it once when it generates the XML and leave for e.g <a:id> as is. Trying to reduce XML size.

=======================================================================
declare namespace a = "http://www.test.org/schema/AP/party";
declare namespace b = "http://www.test.org/schema/AP/core";
declare function local:getParty($INPARTY as element(PARTY)) as element()*{

for $PARTY in collection("PARTY")/PARTY
where $PARTY/ID/text() = $INPARTY/ID/text()
return
<a:id>
{$PARTY/ID/text()}
</a:id>
union
<a:typeCode>
<b:value>
{$PARTY/TYPECODE/text()}
</b:value>
</a:typeCode>
};

let $SRCHPARTY := collection("PARTY")/PARTY[ID = 1234]
return
<a:listOfParty>
<a:party>
{local:getParty($SRCHPARTY)}
</a:party>
</a:listOfParty>

Postnext
Rusty ManesiyaSubject: Suppress namespace on every node
Author: Rusty Manesiya
Date: 07 Mar 2007 08:40 AM
Originally Posted: 07 Mar 2007 08:11 AM
FYI... I am using DataDirect XQuery processor.

Thanks

Also, How can I call a XQuery function from java code that Stylus Studio generates?
The reason I ask becuase we would like to use the same query but would like different functions like for e.g

getPartyByFirstName()
getPartyByLastName()
getPartyByCountryCode() etc...

I can write all these functions in XQuery, but than how would I call it from java code (The one that StylusStudio generates).

Posttop
Ivan PedruzziSubject: Suppress namespace on every node
Author: Ivan Pedruzzi
Date: 07 Mar 2007 11:58 AM
Hi Rusty

To avoid name-space proliferation wrap your sequence with an element that carries the declarations

<root
xmlns:a="http://www.test.org/schema/AP/party"
xmlns:b="http://www.test.org/schema/AP/core"
>
{
let $SRCHPARTY := collection("PARTY")/PARTY[ID = 1234]
return
<a:listOfParty>
<a:party>
{local:getParty($SRCHPARTY)}
</a:party>
</a:listOfParty>
}
</root>


To invoke the query functions from java you should have one function per query. Make use of external variables to parametrize your query like that then use the XQJ API to call out from Java.

declare namespace a = "http://www.test.org/schema/AP/party";
declare namespace b = "http://www.test.org/schema/AP/core";
declare variable $partyID external;

declare function local:getParty($INPARTY as element(PARTY)) as element()*{

for $PARTY in collection("PARTY")/PARTY
where $PARTY/ID/text() = $INPARTY/ID/text()
return
<a:id>
{$PARTY/ID/text()}
</a:id>
union
<a:typeCode>
<b:value>
{$PARTY/TYPECODE/text()}
</b:value>
</a:typeCode>
};

let $SRCHPARTY := collection("PARTY")/PARTY[ID = $partyID]
return
<a:listOfParty>
<a:party>
{local:getParty($SRCHPARTY)}
</a:party>
</a:listOfParty>

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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.