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
Doug LundinSubject: WSCC to KML transform help
Author: Doug Lundin
Date: 10 Mar 2008 09:02 AM
Hello,

I am exploring the use of Web Service Call (.WSCC) in Stylus and trying to establish a proof-of-concept.

I'm not strong in XSLT, not sure this approach is possible or even a good idea and appreciate any thoughts.

Goal: Start from a Web Service Call, extract data and transform into XML that can be fed into Google Earth (.KML).

Thanks in advance
Doug


FILE: TAP_refuel_getRefuelView1.wscc
------------------------------------
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<types:getRefuelView1 xmlns:types="/model/common/types/">
<types:msnId>1</types:msnId>
<types:trackStart></types:trackStart>
<types:trackEnd/>
</types:getRefuelView1>
</SOAP-ENV:Body>
<stylus:stylus_studio xmlns:stylus="http://www.stylusstudio.com"><scenarios><scenario default="yes" name="Scenario1" processortype="Apache Axis 1.1" transport="http"><property name="ProxyServerBypass" value=""/><property name="_stylus_soapaction" value="/model/common/getRefuelView1"/><property name="ProxyUser" value=""/><property name="_stylus_endpoint" value="http://localhost:8988/EJB-TAP_refuel-Model-context-root/TAPService"/><property name="_stylus_soapclient" value="Apache Axis 1.1"/><property name="_stylus_operation" value="getRefuelView1"/><property name="ProxyPassword" value=""/><property name="ProxyServer" value=""/><property name="_stylus_wsdlurl" value="http://localhost:8988/EJB-TAP_refuel-Model-context-root/TAPService?WSDL"/></scenario></scenarios></stylus:stylus_studio></SOAP-ENV:Envelope>

FILE: Output of (TAP_refuel_getRefuelView1.wscc)
------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"><env:Header/><env:Body><ns0:getRefuelView1Response xmlns:ns0="/model/common/types/"><ns6:result xsi:type="ns1:RefuelViewSDO" xmlns:ns1="/model/common/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns6="/model/common/types/"><ns1:MsnId>1</ns1:MsnId><ns1:LnoId>87998</ns1:LnoId><ns1:AcId>B-52</ns1:AcId><ns1:TankerId>KC-747</ns1:TankerId><ns1:TrackStart>8</ns1:TrackStart><ns1:TrackEnd>9</ns1:TrackEnd><ns1:Lat>12.34567</ns1:Lat><ns1:Lon>21.76543</ns1:Lon></ns6:result></ns0:getRefuelView1Response></env:Body></env:Envelope>

File: TAP_refuel_getRefuelView1.xsl
-----------------------------------
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<kml>
<Document>
<Style id="default">
<IconStyle>
<Icon>
<href>root://icons/palette-4.png</href>
<y>128</y>
<w>32</w>
<h>32</h>
</Icon>
</IconStyle>
<LabelStyle>
<scale>0.7</scale>
</LabelStyle>
<LineStyle>
<color>19010000</color>
<width>0.5</width>
</LineStyle>
<PolyStyle>
<color>b03f85cd</color>
</PolyStyle>
</Style>
<xsl:apply-templates/>
</Document>
</kml>
</xsl:template>
<xsl:template match="ns4:result">
<Folder>
<name>
<xsl:value-of select="@name"/>
</name>
<xsl:for-each select="row">
<Placemark>
<LookAt>
<altitude>0</altitude>
<range>900</range>
<tilt>3.888617968917447e-011</tilt>
<heading>-12.05772031636419</heading>
</LookAt>
<styleUrl>#default</styleUrl>
<Point>
<coordinates>,</coordinates>
</Point>
</Placemark>
</xsl:for-each>
</Folder>
</xsl:template>
</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2007. Progress Software Corporation. All rights reserved.

<metaInformation>
<scenarios>
<scenario default="yes" name="Scenario1" userelativepaths="yes" externalpreview="no" url="ws:///c:\WSI_Demo\kml\Misc Stylus\TAP_refuel_getRefuelView1.wscc" htmlbaseurl="" outputurl="" processortype="saxon8" useresolver="yes" profilemode="0"
profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no"
validator="internal" customvalidator="">
<advancedProp name="sInitialMode" value=""/>
<advancedProp name="bXsltOneIsOkay" value="true"/>
<advancedProp name="bSchemaAware" value="true"/>
<advancedProp name="bXml11" value="false"/>
<advancedProp name="iValidation" value="0"/>
<advancedProp name="bExtensions" value="true"/>
<advancedProp name="iWhitespace" value="0"/>
<advancedProp name="sInitialTemplate" value=""/>
<advancedProp name="bTinyTree" value="true"/>
<advancedProp name="bWarnings" value="true"/>
<advancedProp name="bUseDTD" value="false"/>
<advancedProp name="iErrorHandling" value="fatal"/>
</scenario>
</scenarios>
<MapperMetaTag>
<MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no">
<SourceSchema srcSchemaPath="ws:///c:\WSI_Demo\kml\Misc Stylus\TAP_refuel_getRefuelView1.wscc" srcSchemaRoot="env:Envelope" AssociatedInstance="" loaderFunction="document" loaderFunctionUsesURI="no"/>
</MapperInfo>
<MapperBlockPosition>
<template match="/">
<block path="kml/Document/xsl:apply-templates" x="381" y="36"/>
</template>
<template match="sheet">
<block path="Folder/name/xsl:value-of" x="436" y="37"/>
<block path="Folder/xsl:for-each" x="393" y="80"/>
<block path="Folder/xsl:for-each/Placemark/name/xsl:value-of" x="341" y="85"/>
<block path="Folder/xsl:for-each/Placemark/description/xsl:value-of" x="301" y="85"/>
<block path="Folder/xsl:for-each/Placemark/LookAt/longitude/xsl:value-of" x="261" y="85"/>
<block path="Folder/xsl:for-each/Placemark/LookAt/latitude/xsl:value-of" x="221" y="85"/>
<block path="Folder/xsl:for-each/Placemark/Point/coordinates/xsl:value-of" x="181" y="85"/>
<block path="Folder/xsl:for-each/Placemark/Point/coordinates/xsl:value-of[1]" x="141" y="85"/>
</template>
<template match="ns4:result">
<block path="Folder/name/xsl:value-of" x="203" y="153"/>
<block path="Folder/xsl:for-each" x="353" y="151"/>
</template>
</MapperBlockPosition>
<TemplateContext></TemplateContext>
<MapperFilter side="source"></MapperFilter>
</MapperMetaTag>
</metaInformation>
-->

Desired output format:
-----------------------------------
<?xml version="1.0"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document><Style id="default"><IconStyle><Icon><href>root://icons/palette-4.png</href><y>128</y><w>32</w><h>32</h></Icon></IconStyle><LabelStyle><scale>0.7</scale></LabelStyle><LineStyle><color>19010000</color><width>0.5</width></LineStyle><PolyStyle><color>b03f85cd</color></PolyStyle></Style>
<Folder><name>Aruba</name><Placemark><name>Rooi Afó </name><description>Hidrográfico </description><LookAt><longitude>-70</longitude><latitude>12.5333333</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70,12.5333333</coordinates></Point></Placemark><Placemark><name>Ceru Alejandro </name><description>Orográfico </description><LookAt><longitude>-69.9333333</longitude><latitude>12.45</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.9333333,12.45</coordinates></Point></Placemark><Placemark><name>Alto Vista </name><description>Orográfico </description><LookAt><longitude>-70.0166667</longitude><latitude>12.5666667</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.0166667,12.5666667</coordinates></Point></Placemark><Placemark><name>Ceru Alto Vista </name><description>Orográfico </description><LookAt><longitude>-70.0166667</longitude><latitude>12.5666667</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.0166667,12.5666667</coordinates></Point></Placemark><Placemark><name>Anaubi </name><description>Orográfico </description><LookAt><longitude>-70.0333333</longitude><latitude>12.6</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.0333333,12.6</coordinates></Point></Placemark><Placemark><name>Andicouri </name><description>Hidrográfico </description><LookAt><longitude>-69.95</longitude><latitude>12.5333333</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.95,12.5333333</coordinates></Point></Placemark><Placemark><name>Andicouri Baai </name><description>Hidrográfico </description><LookAt><longitude>-69.95</longitude><latitude>12.5333333</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.95,12.5333333</coordinates></Point></Placemark><Placemark><name>Andicuri </name><description>Hidrográfico </description><LookAt><longitude>-69.95</longitude><latitude>12.5333333</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.95,12.5333333</coordinates></Point></Placemark><Placemark><name>Angochi </name><description>Lugar poblado </description><LookAt><longitude>-69.95</longitude><latitude>12.5166667</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.95,12.5166667</coordinates></Point></Placemark><Placemark><name>+++ Arashi +++</name><description>Hidrográfico </description><LookAt><longitude>-70.05</longitude><latitude>12.6</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.05,12.6</coordinates></Point></Placemark><Placemark><name>Arasji </name><description>Hidrográfico </description><LookAt><longitude>-70.05</longitude><latitude>12.6</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.05,12.6</coordinates></Point></Placemark><Placemark><name>Arasji </name><description>Lugar poblado </description><LookAt><longitude>-70.0666667</longitude><latitude>12.6166667</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-70.0666667,12.6166667</coordinates></Point></Placemark><Placemark><name>Arikok </name><description>Orográfico </description><LookAt><longitude>-69.9333333</longitude><latitude>12.5166667</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.9333333,12.5166667</coordinates></Point></Placemark><Placemark><name>Aruba </name><description>Orográfico </description><LookAt><longitude>-69.9666667</longitude><latitude>12.5</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.9666667,12.5</coordinates></Point></Placemark><Placemark><name>Rooi Awa Marga </name><description>Hidrográfico </description><LookAt><longitude>-69.95</longitude><latitude>12.5333333</latitude><altitude>0</altitude><range>900</range><tilt>3.888617968917447e-011</tilt><heading>-12.05772031636419</heading></LookAt><styleUrl>#default</styleUrl><Point><coordinates>-69.95,12.5333333</coordinates></Point></Placemark></Folder>
</Document>
</kml>

Postnext
Doug LundinSubject: WSCC to KML transform help
Author: Doug Lundin
Date: 10 Mar 2008 11:58 AM
I guess my biggest challenge is how to extract the Namespace references out of the WSCC.

Postnext
Ivan PedruzziSubject: WSCC to KML transform help
Author: Ivan Pedruzzi
Date: 10 Mar 2008 04:38 PM
Hi Doug,

We have few questions about the message response and the XSLT you have posted.

Could you please contact us at stylus-field-report@progress.com?

Thanks
Ivan Pedruzzi
Stylus Studio Team

Postnext
Doug LundinSubject: WSCC to KML transform help
Author: Doug Lundin
Date: 12 Mar 2008 07:38 AM
Ivan,
Thanks for the response but I've figured it out. I'd be happy to share my solution if you are interested.
Doug

Posttop
Ivan PedruzziSubject: WSCC to KML transform help
Author: Ivan Pedruzzi
Date: 12 Mar 2008 10:51 AM
Doug,

My suggestion would be to move to XQuery.

You will be able to invoke the service and generate the result in a single step.

Have a look to the attached file.

Hope this helps
Ivan


DocumentInvoke.xquery

 
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.