[mapserver-users] WFS layer - XML/JSON safe chars

Rahkonen Jukka (MML) jukka.rahkonen at maanmittauslaitos.fi
Fri Apr 15 07:21:31 PDT 2016


Hi,

I was thinking that the output of GetCapabilities is XML and & must be escaped in XML. So if I write & into the abstract and Mapserver works correctly it should write my test abstract “test ä &”  escaped perhaps as
test ä &
That is the output from the online tool at http://www.freeformatter.com/xml-escape.html#ad-output

So my conclusion was that because Mapserver does not do it right here it won’t do it right elsewhere.

But now I made another test by editing the Geoserver test file “states.shp” in Spatialite as
UPDATE states set STATE_NAME=’Colo&rado’ WHERE STATE_NAME=’Colorado’;

Output of GetFeature from WFS 1.1.0 from Mapserver 7.0.0  includes
     <ms:STATE_NAME>Colo&rado</ms:STATE_NAME>

So my current conclusion is that my Mapserver does not escape “&” correctly when it is used inside a mapfile and when I do GetCapabilities request. However, when data come from Spatialite database and they are consumed by GetFeature then escaping happens correctly.

We are still comparing different things because you have PostGIS and I have Spatialite.

-Jukka Rahkonen-


Ian Walberg wrote:

Jukka,

I am not sure I understand the test you did.

The data we are referring to is from the database field for the individual features name.

Regards

Ian

From: Rahkonen Jukka (MML) [mailto:jukka.rahkonen at maanmittauslaitos.fi]
Sent: Thursday, April 14, 2016 10:19 PM
To: Ian Walberg <ian.walberg at airborne.aero<mailto:ian.walberg at airborne.aero>>; MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>
Subject: Re: WFS layer - XML/JSON safe chars

Hi Ian,

Thanks for the clarification.
I made a simple test by adding an abstract into layer metadata. This shows “test ä” as an abstract
"wfs_abstract" "test ä”

This one shows an empty abstract
"wfs_abstract" "test ä &"

So it looks like Mapserver doesn’t know to convert “&” into “&” for XML.

-Jukka Rahkonen-

Ian Walberg wrote:

Jukka,

Our question was for the data/text read from the database and then published as XML by the WFS service.

So a pub with the name ‘Dog & bone’ created illegal xml as the & is not converted to &

Regards

Ian

From: Rahkonen Jukka (MML) [mailto:jukka.rahkonen at maanmittauslaitos.fi]
Sent: Thursday, April 14, 2016 3:10 PM
To: Ian Walberg <ian.walberg at airborne.aero<mailto:ian.walberg at airborne.aero>>; MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>
Subject: Re: WFS layer - XML/JSON safe chars

Hi,

You can’t have & in feature type names or attribute names in WFS because they are defined in the XML schema to be “QName”. The prefix and LocalPart are of type NCName https://en.wikipedia.org/wiki/QName and from http://stackoverflow.com/questions/1631396/what-is-an-xsncname-type-and-when-should-it-be-used

The practical restrictions of NCName are that it cannot contain several symbol characters like :, @, $, %, &, /, +, ,, ;, whitespace characters or different parenthesis. Furthermore an NCName cannot begin with a number, dot or minus character although they can appear later in an NCName.

-Jukka Rahkonen-

Lähettäjä: mapserver-users [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta Ian Walberg
Lähetetty: 14. huhtikuuta 2016 19:23
Vastaanottaja: MapserverList OSGEO
Aihe: [mapserver-users] WFS layer - XML/JSON safe chars

Folks,

Can mapserver produce XML or JSON safe characters for WFS served data or do we need to ensure the source data has the escaped values.

We got tripped up today as there were some ‘&’ in our names which we had not considered.

Thanks

Ian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20160415/b8d1b27d/attachment-0001.html>


More information about the mapserver-users mailing list