[mapserver-users] XML interface for query templates

Cameron Shorter cameron at socialchange.net.au
Sun Apr 22 19:45:08 EDT 2001


Hi,
We are playing around with a perl wrapper for mapserv which will provide
a GML interface to mapserv.

However, we have run into a problem with queries.  Query responses need
to be returned in XML format.  Some the the .dbf files we have contain
">" chars which needs to be converted to ">" if it used in an XML
response.  Currently, this option does not seem to be available in
mapserv.

So, what I'd like to add to the query object is an option like:
* xml_conversion [true|false] which defaults to false

When xml_conversion=true, data from the .dbf columns will be converted
to be xml compliant.


If this is OK by mapserv architects and our clients, then we will go
ahead and implement it.

--------
The logic required would be something like the following (example in
perl)

        # Make the strings XML compliant:
        for (@_) {
                s/\&/&/g;
                s/\</&lt;/g;
                s/\>/&gt;/g;

                # strip quotes if they are at wrapped around a term but
don't
                # remove them if they are in the middle of a term.
                # Ie, "Towns" = Towns
                #      Town's = Town's
                s/^\'(.*)\'$/$1/;
                s/^\"(.*)\"$/$1/;
                s/\'/&apos;/g;
                s/\"/&quot;/g;
        }

--------
The extra parameter would need to be inserted in maplexer.l

--------

My guess is that the xml conversion would need to be inserted in
mapserv.c somewhere near line 1277:

	for(i=0;i<Query->numitems;i++) {	 
	  sprintf(substr, "[%s]", Query->items[i]);
	  if(strstr(outstr, substr) != NULL) { /* do substitution */
	    outstr = gsub(outstr, substr, Query->data[i]);
	  }
	} /* next item */

...


-- 
Cameron Shorter          Web Mapping Manager
Social Change Online
248 Johnson St           Tel: +61 (0) 2 9692 5115
Annandale NSW 2038       Fax: +61 (0) 2 9692 5192
Sydney, Australia        http://webmap.socialchange.net.au



More information about the mapserver-users mailing list