request for comment: adding xslt processing to mapserver

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Wed Mar 28 17:17:16 EDT 2007


For a lot of same additional IT infrastructure requirement issues, I 
would like to see a stable C-API or a stable C/Mapscript API so 
extensions to mapserver could be built into a single executable for 
deployment on servers. If such an animal existed, then it could easily 
be used along with the WxS stuff to solve Paul issue. The result could 
be a single executable with the custom behavior needed.

-Steve W

Paul Spencer wrote:
> On 28-Mar-07, at 2:26 PM, Daniel Morissette wrote:
> 
>> Paul Spencer wrote:
>>> Would it be possible to optionally accumulate the output from 
>>> msIO_printf into an in-memory buffer and then use libxml2 to parse it 
>>> and libxslt to transform it?  I see that msIO_printf gets stdout via 
>>> msIO_getHandler which I would assume would allow directing stdout to 
>>> a memory buffer of some kind?
>>> If this could be done, then we could avoid using libxml2 by default 
>>> and thus not affect, in any way, the normal output from WMS, WFS 
>>> etc.  If an XSLT was requested in this particular case, then the 
>>> calls to msIO_printf would write to a buffer rather than stdout and 
>>> the buffer could be processed through libxml2 and libxslt.
>>
>>
>> Yes, the msIO_* stuff was designed for that. Look at the msIO_install* 
>> functions in mapio.c, or look at how MapScript uses them to capture 
>> msIO_* output to a string buffer.
>>
>> Note that what you suggest here is doing in C in the MapServer core 
>> what you can already do with MapScript today using "RFC-16: MapScript 
>> WxS Services":
>> http://mapserver.gis.umn.edu/development/rfc/ms-rfc-16/
> 
> Correct, it could be accomplished using WxS.  One of the objectives of 
> this work would be to reduce the IT infrastructure requirements for 
> deploying new OGC services.   Using WxS is equivalent to using an 
> external service in this case, and would require the following 
> additional steps beyond using a mapserv cgi:
> 
> * building and installing mapserv with a mapscript extension
> * configuring web server for the particular flavour of mapscript you 
> want to use
> * ensuring the scripting language has packages for xml and xslt
> * writing/maintaining code in the mapscript language to implement the 
> parsing and transformation
> * maintaining the scripting language installation over time as security 
> patches come out (etc)
> 
> There are similar problems with external services.
> 
> Cheers
> 
> Paul
> 
> +-----------------------------------------------------------------+
> |Paul Spencer                          pspencer at dmsolutions.ca    |
> +-----------------------------------------------------------------+
> |Chief Technology Officer                                         |
> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+



More information about the mapserver-dev mailing list