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

Even Rouault even.rouault at spatialys.com
Fri Apr 15 09:14:41 PDT 2016


Le vendredi 15 avril 2016 17:32:36, Ian Walberg a écrit :
> If I understand this we would not get the issue if we use a WFS version
> 1.0.0 request.
> 
> We have just tested that and it appears that changing the version does not
> change the behavior.
> 
> This is with mapserver version 7.0.1.

We are probably talking about different things.

In 
https://github.com/mapserver/mapserver/commit/105877468590e99401d234e1bbac13d7645b77d0 
, I have just fixed issues in GetCapabilities response generation, but your 
issues might be different.

I've also just tested reading from a CSV (the input datastore type shouldn't 
matter) file a field with & and it is properly escaped as & in the GML 
output of WFS 1.0, 1.1 and 2.0

Without a mapfile + data + request you issue, it is difficult to be sure we're 
talking about the same thing.

> 
> Thanks
> 
> Ian
> 
> -----Original Message-----
> From: mapserver-users [mailto:mapserver-users-bounces at lists.osgeo.org] On
> Behalf Of Even Rouault Sent: Friday, April 15, 2016 7:50 AM
> To: mapserver-users at lists.osgeo.org
> Subject: Re: [mapserver-users] WFS layer - XML/JSON safe chars
> 
> Le vendredi 15 avril 2016 16:41:28, Richard Watson a écrit :
> > I am using Map Server 6.4.1.  I have a map project file which has the
> > 
> > following title:
> >   WEB
> >   
> >     METADATA
> >     
> >       [ text omitted]
> >       "wms_title" "(*#(@#*$_)@#&\\\///"
> >     
> >     END # METADATA
> >   
> >   END # WEB
> > 
> > When a GetCapabilties is done on the project then this is the source
> > XML which is returned:
> > 
> > <Service>
> > <Name>WMS</Name>
> > <Title>(*#(@#*$_)@#&\\///</Title>
> > It seems to be escaping as required.
> 
> WMS and WFS 1.0 use MapServer manual XML composition with its own XML
> escaping routines. Some other services (such as WFS 1.1 & 2.0) use libxml
> (sometimes not in an appropriate way).
> 
> > On Fri, Apr 15, 2016 at 9:21 AM, Rahkonen Jukka (MML) <
> > 
> > jukka.rahkonen at maanmittauslaitos.fi> wrote:
> > > 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
> > > <jukka.rahkonen at maanmittauslaitos.fi>]
> > > *Sent:* Thursday, April 14, 2016 10:19 PM
> > > *To:* Ian Walberg <ian.walberg at airborne.aero>; MapserverList OSGEO <
> > > 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
> > > <jukka.rahkonen at maanmittauslaitos.fi>]
> > > *Sent:* Thursday, April 14, 2016 3:10 PM
> > > *To:* Ian Walberg <ian.walberg at airborne.aero>; MapserverList OSGEO <
> > > 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-w
> > > hen-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
> > > <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
> > > 
> > > _______________________________________________
> > > mapserver-users mailing list
> > > mapserver-users at lists.osgeo.org
> > > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> 
> --
> Spatialys - Geospatial professional services http://www.spatialys.com
> _______________________________________________ mapserver-users mailing
> list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the mapserver-users mailing list