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
Ethan SteinSubject: copy/modify with Stylus Studio 2007 R2
Author: Ethan Stein
Date: 12 May 2009 08:35 PM
Has the copy/modify/replace value of functions changed between Stylus Studio 2007 R2 and Stylus Studio 2008R2/2009?

If so, what was the original implementation? The reason I ask is that apparently in SS2007R2, the following does not work:

<ExtractData>
{
for $CurrentYearPlan in $xPRSXMLInput/ExtractData/CurrentYearPlan
return
copy $CYPlan := $CurrentYearPlan
modify
(
for $planName in $CYPlan/*[contains(upper-case(local-name()),"PLANNAME")]
return
replace value of node $planName with local:transformPlanName($planName/text())
) return $CYPlan
}
</ExtractData>

I'm hoping someone can tell me why it does not work in SS2007R2.

Thanks.

Postnext
Ivan PedruzziSubject: copy/modify with Stylus Studio 2007 R2
Author: Ivan Pedruzzi
Date: 12 May 2009 10:37 PM

HI Ethan,

DataDirect XQuery introduced support for XQuery Update Facility (XUF) in version 4.0, therefore starting with Stylus Studio 2009.

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Postnext
Ethan SteinSubject: copy/modify with Stylus Studio 2007 R2
Author: Ethan Stein
Date: 12 May 2009 10:53 PM
So then using Stylus Studio 2007 R2, how would I replace the values of any nodes that begin with PlanName inside an XML, similar to the following:

ExtractData>
<CurrentYearPlan>
<PlanID>H0303015</PlanID>
<ContractNumber>H0303</ContractNumber>
<PBPNumber>015</PBPNumber>
<BusinessSegment>Secure Horizons West</BusinessSegment>
<PlanType>HMO</PlanType>
<PlanDescription>Health Maintenace Organization</PlanDescription>
<SNPFlag>False</SNPFlag>
<PlanName1>Hello</PlanName1>
<PlanName2>Marry</PlanName2>
<LegalDescription>PACIFICARE OF ARIZONA, INC</LegalDescription>
<BrandName>AARP</BrandName>
<DrugCoverageType>MAPD</DrugCoverageType>
...
</ExtractData>
</CurrentYearPlan>


ExtractData>
<CurrentYearPlan>
<PlanID>H0303015</PlanID>
<ContractNumber>H0303</ContractNumber>
<PBPNumber>015</PBPNumber>
<BusinessSegment>Secure Horizons West</BusinessSegment>
<PlanType>HMO</PlanType>
<PlanDescription>Health Maintenace Organization</PlanDescription>
<SNPFlag>False</SNPFlag>
<PlanName1>Goodbye</PlanName1>
<PlanName2>John</PlanName2>
<LegalDescription>PACIFICARE OF ARIZONA, INC</LegalDescription>
<BrandName>AARP</BrandName>
<DrugCoverageType>MAPD</DrugCoverageType>
...
</ExtractData>
</CurrentYearPlan>

Postnext
Ivan PedruzziSubject: copy/modify with Stylus Studio 2007 R2
Author: Ivan Pedruzzi
Date: 13 May 2009 12:40 AM

In XQuery 1.0 you have to use a recursive function that traverses and copies the input document


declare variable $data as document-node(element(*, xs:untyped)) external;

declare function local:transformPlanName($text)
{
concat("PLANNAME_", $text)
};

declare function local:rename($n as element(*, xs:untyped) )
{
element {name($n)}{
$n/@*,
if(starts-with(upper-case(local-name($n)),"PLANNAME")) then
local:transformPlanName($n/text())
else(
$n/text(),
for $child in $n/*
return local:rename($child)
)
}
};

local:rename($data/ExtractData)

Ivan Pedruzzi
Stylus Studio Team

Posttop
Ethan SteinSubject: copy/modify with Stylus Studio 2007 R2
Author: Ethan Stein
Date: 24 May 2009 05:37 AM
Great, that did it. Thanks!

 
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.