[CITE-Forum] GetFeature POST requests with dynamic parameters

Ingo Simonis ingo.simonis at igsi.eu
Wed May 28 15:28:09 EDT 2014


Thank you very much, Richard, that works!


On 28.05.2014, at 18:44, Richard Martell <rmartell at galdosinc.com> wrote:

> Ingo,
> 
> Try adding an explicit namespace node:
> 
> <body>
>  <wfs:GetFeature service="WFS" version="1.1.0">
>    <wfs:Query typeName="tns:{$ftname} " srsName="urn:ogc:def:crs:EPSG::4326">
>      <xsl:namespace name="tns" select="$namespace"/>
>    </wfs:Query>
>  </wfs:GetFeature>
> </body>
> 
> 
> This works in a vanilla XSLT script. However I have heard from other test developers that namespace 
> bindings declared in a message body are mysteriously discarded in some (most? | all?) cases on submit.
> 
> 
> --
> Richard
> 
> 
> -----Original Message-----
> From: Ingo Simonis [mailto:ingo.simonis at igsi.eu] 
> Sent: Wednesday, 28 May, 2014 05:28
> To: Richard Martell
> Cc: cite-forum at lists.opengeospatial.org
> Subject: Re: [CITE-Forum] GetFeature POST requests with dynamic parameters
> 
> Thank you, Richard. Unfortunately this does not work. {$tns} does not get resolved by the testing engine. The log.xml of that test shows: 
> 
> <body>
>  <wfs:GetFeature service="WFS" version="1.1.0">
>    <wfs:Query xmlns:tns="{$namespace}" typeName="tns:AggregateGeoFeature" srsName="urn:ogc:def:crs:EPSG::4326"/>
>  </wfs:GetFeature>
> </body>
> 
> strangely enough, the test engine resolves typeName="tns:{$ftname}" properly, but does ignores the namespace variable. Any idea?
> 
> Best regards, 
> Ingo
> 
> 
> On 27.05.2014, at 22:12, Richard Martell <rmartell at galdosinc.com> wrote:
> 
>> Hi Ingo,
>> 
>> You can include the message body either inline or by reference (XInclude). In the end these are equivalent because the 
>> inclusions are dereferenced before the final XSLT script is generated.
>> 
>> <body>
>> <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs"  xmlns:ogc="http://www.opengis.net/ogc" service="WFS" version="1.1.0">
>>   <wfs:Query xmlns:tns="{$tns} " typeName="tns:{$ftname} " srsName="urn:ogc:def:crs:EPSG::4326" />
>> </wfs:GetFeature>
>> </body>
>> 
>> It can be tricky parameterizing the namespace bindings. Note the use of attribute value templates for $tns 
>> and $ftname. I haven't actually seen this done before in a CTL script; the bindings may be ignored when the 
>> request is submitted but you can try it out and see.
>> 
>> --
>> Richard
>> 
>> 
>> -----Original Message-----
>> From: CITE-Forum [mailto:cite-forum-bounces+rmartell=galdosinc.com at lists.opengeospatial.org] On Behalf Of Ingo Simonis
>> Sent: Tuesday, 27 May, 2014 09:34
>> To: cite-forum at lists.opengeospatial.org
>> Subject: [CITE-Forum] GetFeature POST requests with dynamic parameters
>> 
>> Dear All
>> 
>> I am currently working on the WFS-1.1.0 tests to make them independent of the data served by a service instance. As long as KVP-POST is supported, this is not much of a problem, as I can read all necessary information from the capabilities document and then set the request parameters dynamically. The following expert shows this approach:
>> 
>> <code>
>>     <xsl:variable name="ftname">
>>       <xsl:value-of select="$CAPABILITIES//wfs:FeatureTypeList/wfs:FeatureType[1]/wfs:Name"/>
>>     </xsl:variable>
>>     ...
>>     <xsl:variable name="request1">
>>       <request>
>>         <url>
>>           <xsl:value-of select="$wfs.DescribeFeatureType.post.url"/>
>>         </url>
>>         <method>post</method>
>>         <param name="service">WFS</param>
>>         <param name="version">1.1.0</param>
>>         <param name="request">DescribeFeatureType</param>
>>         <ctl:param name="typename">
>>           <xsl:value-of select="$ftname"/>
>>         </ctl:param>
>>         ...
>> 
>> The problem arises when KVP-POST is not supported, i.e. when I need to send XML request statements. The common approach is to put request into a separate document and load it at runtime:
>> <code>
>>           <xsl:variable name="request1">
>>               <request>
>>                   <url>
>>                       <xsl:value-of select="$wfs.GetFeature.post.url"/>
>>                   </url>
>>                   <method>post</method>
>>                   <body>
>>                       <xi:include href="wfs-1.1.0-Basic-GetFeature-tc19.1.body.xml"/>
>>                   </body>
>> 
>> 
>> I wonder if there is any approach that allows me to set request parameters dynamically in such a scenario. Is it possible to put all XML inline into the test directly? If yes, how to deal with the namespace settings in such a situation?
>> 
>> Any help highly appreciated, 
>> Ingo
>> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.opengeospatial.org/pipermail/cite-forum/attachments/20140528/783c9c0a/attachment.sig>


More information about the CITE-Forum mailing list