Yes Eric..

This stx is even cleaner and it works too, 

================ post.stx ==================================================
<?xml version="1.0" encoding="UTF-8"?>
<stx:transform xmlns:stx="http://stx.sourceforge.net/2002/ns"; version="1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:sf="http://stx.sourceforge.net/2003/functions";
pass-through="all" output-method="xml" strip-space="yes"> 
<stx:template match="ARCXML">
        <stx:process-self 
filter-method="http://www.ietf.org/rfc/rfc2616.txt#POST"; name="wfs"> 
<stx:with-param name="target">
http://some.esriArcIMS.Server.com/servlet/com.esri.esrimap.Esrimap?ServiceName=someDataStore&amp;CustomService=Query
</stx:with-param>
</stx:process-self>
</stx:template>
</stx:transform>
======================================================================
 

It runs into an arbitrary XML and sends all the ARCXML query to the server and 
inserts the result in lieu on the query..

Eric

-----Message d'origine-----
De : Boisvert, Eric [mailto:[EMAIL PROTECTED] 
Envoyé : 17 janvier 2008 10:48
À : users@cocoon.apache.org
Objet : RE: IncludeTransformer -- it works


 I'll be damned.. It works perfectly !

Here's my pipeline

<map:pipeline>
<map:match pattern="dev/get">
<!-- test STX POST trick -->
<map:generate src="document/ai.xml"/>
<map:transform type="stx" src="style/post.stx"/> <map:serialize type="xml"/> 
</map:match> </map:pipeline>

It reads a document (ai.xml) that has 2 ARCXML calls - works exactly the same 
as WFS servers.


========== ai.xml ================================= <?xml version="1.0" 
encoding="ISO-8859-1"?> <proc> <q1> <ARCXML version="1.0">
        <REQUEST>
                <GET_FEATURES outputmode="newxml" geometry="true" 
featurelimit="1">
                        <LAYER id="litho"/>
                        <SPATIALQUERY subfields="FIELD1 FIELD2 #SHAPE#">
                                <FEATURECOORDSYS id="4326"/>
                                <FILTERCOORDSYS id="4326"/>
                                <SPATIALFILTER relation="area_intersection">
                                        <ENVELOPE minx="12.5" miny="42.6" 
maxx="13.29" maxy="43.13"/>
                                </SPATIALFILTER>
                        </SPATIALQUERY>
                </GET_FEATURES>
        </REQUEST>
</ARCXML>
</q1>
<q2>
<ARCXML version="1.0">
        <REQUEST>
                <GET_FEATURES outputmode="newxml" geometry="true" 
featurelimit="1">
                        <LAYER id="litho"/>
                        <SPATIALQUERY subfields="FIELD3 FIELD4 #SHAPE#">
                                <FEATURECOORDSYS id="4326"/>
                                <FILTERCOORDSYS id="4326"/>
                                <SPATIALFILTER relation="area_intersection">
                                        <ENVELOPE minx="12.5" miny="42.6" 
maxx="13.29" maxy="43.13"/>
                                </SPATIALFILTER>
                        </SPATIALQUERY>
                </GET_FEATURES>
        </REQUEST>
</ARCXML>
</q2>
</proc>


And here the STX

================ post.stx ==================================================
<?xml version="1.0" encoding="UTF-8"?>
<stx:transform xmlns:stx="http://stx.sourceforge.net/2002/ns"; version="1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:sf="http://stx.sourceforge.net/2003/functions";
pass-through="all" output-method="xml" strip-space="yes"> <stx:buffer 
name="wfs"/> <stx:template match="ARCXML">
<!-- load the ARCXML query in a buffer --> <stx:result-buffer name="wfs" 
clear="yes">
        <ARCXML version="1.0">
                <stx:process-children/>
        </ARCXML>
</stx:result-buffer>
<!-- now send that baby to the server --> <stx:process-buffer 
filter-method="http://www.ietf.org/rfc/rfc2616.txt#POST"; name="wfs"> 
<stx:with-param 
name="target">http://some.esriArcIMS.Server.com/servlet/com.esri.esrimap.Esrimap?ServiceName=someDataStore&amp;CustomService=Query</stx:with-param>
</stx:process-buffer>
</stx:template>
</stx:transform>


And it does work.. 
STX in pass-through="all" just ignore the tags that does not match and pass 
them down the stream, it only does something when it matches ARCXML tag.  So 
the result is indeed

<proc>
        <q1>
       the result of the first query
       </q1>
        <q2>
        the result of the second query
      </q2>
</proc>

CQFD ! (french speaking people will understand)

Cheers

Eric

P.S. 
Maybe a cleaner stx would be

<stx:process-self filter-method="http://www.ietf.org/rfc/rfc2616.txt#POST"; 
name="wfs"> <stx:with-param 
name="target">http://some.esriArcIMS.Server.com/servlet/com.esri.esrimap.Esrimap?ServiceName=someDataStore&amp;CustomService=Query</stx:with-param>
</stx:process-self>

No need for a buffer.. I should try.

-----Message d'origine-----
De : Sébastien Geindre [mailto:[EMAIL PROTECTED]
Envoyé : 17 janvier 2008 10:35
À : users@cocoon.apache.org
Objet : Re: IncludeTransformer


> I never try, but I will shortly (like.. Today) for exactly the same 
> reasons Sébastien (to fetch data from a remote WFS).  STX is a bit 
> more tricky that XSLT but in a simple series of WFS calls, it should 
> be quite obvious.  The great benefit of STX is that it's SAX driven 
> (so I don't expect it should build a big buffer - GML documents tends 
> to be quite large)
>   
Great !!!
Hope you succeed..
> Wish me the best.
>   
we do !!! ;)
> Eric
>   



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to